PDA

Просмотр полной версии : Нужен скрипт!


Cawabunga
25.07.2007, 01:20
Извените если не туда написал но немогу найти хороший скрипт почтовика может кто подскажет?

Piflit
25.07.2007, 01:25
тема была пару дней назад. поиск

Cawabunga
25.07.2007, 01:29
я не нашел!

Piflit
25.07.2007, 01:35
http://forum.antichat.ru/thread44754-mail+%F1%EA%F0%E8%EF%F2.html

Cawabunga
25.07.2007, 01:50
Там хорошего скрипта не нашел ((

CrazyLis
25.07.2007, 02:12
Вот целая коллекция скриптов
http://forum.antichat.ru/threadnav43806-1-10-%F1%EA%F0%E8%EF%F2%FB.html
там есть около 40 почтовых скриптов

Cawabunga
25.07.2007, 02:19
Можешь залить на dump.ru только почтовые скрипты?

stalles
26.07.2007, 22:16
http://woweb.ru/load/64

Cawabunga
26.07.2007, 22:35
Там не почтовые скрипты а для ананимной отправки мыл!

Alexsize
26.07.2007, 23:07
Короче не могу ссылку никак запостьть. Суть. Тока без обид. В поисковой строчке гугла (google.com) бьешь "скрипт почтовика" без ковычек. ВСЕ. Не нашел НИЧЕГО информативнее и разнообразнее.

drmist
01.08.2007, 12:20
calintz
Вам на каком языке скрипт нужен?

Cawabunga
01.08.2007, 20:34
желательно php

drmist
02.08.2007, 11:54
Как заказывали:
<?php

/*

FIle id: mailer.class.php

Kласс посылки почты
Работает с smtp сервером через сокеты
Письма отправляются в кодировке UTF-8

Файл global.conf.php должен содержать следующие переменные:

$_CONFIG["smtp_server"] - smtp сервер, через который шлется почта
$_CONFIG["smtp_port"] - порт smtp сервера
$_CONFIG["smtp_login"] - имя пользователя, под которым скрипт должен логиниться на сервере.
Если эта переменная равна пустой строке - аудентификация не производится.
$_CONFIG["smtp_pass"] - пароль пользователя
$_CONFIG["smtp_from"] - строка, которая будет записана в заголовоки письма From и Reply-To в UTF-8.
Может быть как просто email адресом так и строкой вида "Имя пользователя <почтовый ящик>"



(c) drmist\STNC, web: www.security-teams.net

*/

class Mailer {
private $body = '';

// конструктор
function Mailer() {
// ..
}

// установить текст письма
function SetBody($body) {
$this->body = $body;
}

// сделать замену в тексте письма
function BodyReplace($from, $to) {
$this->body = str_replace("%$from", $to, $this->body);
}

// разорвать соединение с SMTP сервером
// 1 в случае успеха, 0 в случае ошибки
private function SMTPQuit($sock) {
@fwrite($sock, "QUIT\r\n");
$tmp = intval(@fgets($sock));
@fclose($sock);
return $tmp == 221;
}

// соединиться с SMTP сервером
// сокет в случае успеха, 0 иначе
private function SMTPConnect() {
global $_CONFIG;
$sock = fsockopen($_CONFIG["smtp_server"], $_CONFIG["smtp_port"]);
if($sock === false) return 0;

if(intval(fgets($sock)) != 220) {
$this->SMTPQuit($sock);
return 0;
}

@fwrite($sock, "HELO localhost\r\n");

if(intval(@fgets($sock)) != 250) {
$this->SMTPQuit($sock);
return 0;
}

return $sock;
}

// проходим аудентификацию, если нужно
// 1 в случае успеха, 0 иначе
private function SMTPAuth($sock) {
global $_CONFIG;
if(!$_CONFIG["smtp_login"]) return 1;

@fwrite($sock, "AUTH LOGIN\r\n");
if(intval(@fgets($sock)) != 334)
return 0;

@fwrite($sock, base64_encode($_CONFIG["smtp_login"])."\r\n");
if(intval(@fgets($sock)) != 334)
return 0;

@fwrite($sock, base64_encode($_CONFIG["smtp_pass"])."\r\n");
if(intval(@fgets($sock)) != 235)
return 0;
return 1;
}

// шлем письмо по протоколу SMTP
// 1 в случае успеха, 0 иначе
private function SMTPSend($sock, $to, $from, $subj) {
$from = trim($from);

if(ereg("^([^\<]+) \<([^\>]+)\>$", $from, $g))
$from = "=?UTF-8?B?".base64_encode($g[1])."?= <".$g[2].">";

@fwrite($sock, "MAIL FROM: $from\r\n");
if(intval(@fgets($sock)) != 250)
return 0;

@fwrite($sock, "RCPT TO: $to\r\n");
if(intval(@fgets($sock)) != 250)
return 0;

@fwrite($sock, "DATA\r\n");
if(intval(@fgets($sock)) != 354)
return 0;

$subj = "=?UTF-8?B?".base64_encode($subj)."?=";

$msg = "MIME-Version: 1.0\r\n";
$msg .= "To: $to\r\n";
$msg .= "From: $from\r\n";
$msg .= "Reply-To: $from\r\n";
$msg .= "Subject: $subj\r\n";
$msg .= "Content-type: text/html; charset=UTF-8\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "\r\n";
$msg .= chunk_split(base64_encode($this->body), 68, "\n");
$msg .= "\r\n.\r\n";

@fwrite($sock, $msg);
return (intval(@fgets($sock)) == 250);
}

// послать письмо
// 1 в случае успеха, 0 иначе
function Send($to, $from, $subj) {
// соединяемся с сервером
if(!($sock = $this->SMTPConnect()))
return 0;

// проходим аудентификацию, если требуется
if(!$this->SMTPAuth($sock)) {
$this->SMTPQuit($sock);
return 0;
}

// шлем письмо
if(!$this->SMTPSend($sock, $to, $from, $subj)) {
$this->SMTPQuit($sock);
return 0;
}

// выходим
return $this->SMTPQuit($sock);
}
}

?>

Надеюсь, имелся ввиду не почтовый клиент.