Отправляем почту из php
Вот тоже сюда положу, чтоб не искать потом.
Будет использоваться библиотека Pear, у кого не установлена, тому сюда:
Сообщение должно проходить от авторизованного пользователя.
Будет использоваться библиотека Pear, у кого не установлена, тому сюда:
Цель:
Отправить письмо пользователю с русским заголовком и русским html текстом.Сообщение должно проходить от авторизованного пользователя.
Реализация:
// Подключаем библиотеку
include('Mail.php');
include('Mail/mime.php');
// Задаем начальные значения
$html = '<html><body>Пишем по-русски!</body></html>';
$crlf = "\r\n";
// Отправитель и заголовок письма
$hdrs = array(
'From' => 'ivanov.i@domain.ru',
'Subject' => 'Автоматическое сообщение'
);
// Правильные параметры, что бы писать по-русски
$params = array(
'text_encoding' => '8bit',
"head_charset" => "windows-1251",
"text_charset" => "windows-1251",
"html_charset" => "windows-1251",
);
// Проводим инициализацию
$mime = new Mail_mime($crlf);
$mime->setHTMLBody($html);
$body = $mime->get($params);
$hdrs = $mime->headers($hdrs);
$mail =& Mail::factory('mail');
// А теперь хитрость
// Сообщение будем отправлять по smtp с авторизацией
// Иначе получатель в отправителях увидит не "Иванов И.И.", а ivanov.i.domain.ru
// Да что там получатель, анти-спам фильтр может обидится
$host = "mail.domain.ru";
$port = 25;
$username = "domain\ivanov";
$password = "password";
$smtp = Mail::factory("smtp",
array(
"host" => $host,
"port" => $port,
"auth" => true,
"username" => $username,
"password" => $password));
// Адрес получателя
$to_email = "petrov.p@domain.ru";
// Отправляем письмо
$mail = $smtp->send($to_email, $hdrs, $body);