Forum Webscript.Ru

Программирование => PHP => Тема начата: bold от 30 Июня 2003, 20:47:37

Название: Sendmail через SMTP порт
Отправлено: bold от 30 Июня 2003, 20:47:37
Короче сервер один есть, в котором ф-ция mail() не работает, а SMTP порт установлен.
Мне надо написать функцию:

function sendmail ($email, $subject, $body, $headers) {
  //...
}

Так вот не через mail, а как-то надо подключиться к SMTP порту:
Хост: "localhost"
Порт: "25"
Юзер: ""
Пароль: ""
Вроде через сокет как-то можно :insane: :super:
Название: Sendmail через SMTP порт
Отправлено: Макс от 30 Июня 2003, 21:25:18
берешь pear::mail и

$recipients = $email;
$headers[\'From\'] = \'richard@example.com\';
$headers[\'To\'] = $email;
$headers[\'Subject\'] = $subject;

$body = $body;
$params[\'host\'] = \'localhost\';
$params[\'port\'] = 25;
$params[\'auth\'] = true;
$params[\'username\'] = \'\';
$params[\'password\'] = \'\';

// Create the mail object using the Mail::factory method
$ml =& Mail::factory(\'smtp\', $params);
$ml->send($recipients, $headers, $body);

 http://pear.php.net/manual/en/package.mail.php
Название: Sendmail через SMTP порт
Отправлено: bold от 01 Июля 2003, 05:51:37
Спасибо... попробую, напишу результат :)
Название: Sendmail через SMTP порт
Отправлено: bold от 01 Июля 2003, 11:22:04
Блин и где этот mail.php взять, чтобы класс mail существовал? На том сайте так и не нашел :(
Название: Sendmail через SMTP порт
Отправлено: NAS от 01 Июля 2003, 12:26:50
Плохо искал
http://pear.php.net/package-info.php?pacid=72
Название: Sendmail через SMTP порт
Отправлено: madcode от 06 Июля 2003, 15:23:16
попробуй через сокеты


function send($server, $to, $from, $subject="", $headers="") {

    $headers="To: $to\\nFrom: $from\\nSubject: $subject\\nX-Mailer: The Mouse!\\n$headers";
    $fp = fsockopen($server, 25, &$errno, &$errstr, 30);
    if (!$fp)
       die("Server $server. Connection failed: $errno, $errstr");
    fputs($fp,"HELO $server\\n");
    fputs($fp,"MAIL FROM: $from\\n");
    fputs($fp,"RCPT TO: $to\\n");
    fputs($fp,"DATA\\n");
    fputs($fp,$this->headers);
    if (strlen($headers))
      fputs($fp,"$headers\\n");
    fputs($fp,$this->mime);
    fputs($fp,"\\n.\\nQUIT\\n");
    while(!feof($fp))
      $resp.=fgets($fp,1024);
    fclose($fp);
  }