RSS Feed Подписка на RSS

Все, чем интересуются wap мастера.

Сервис сокращения ссылок
Рекомендуем хорошую wap баннерную сеть
Обзор китайских товаров
Хороший и качественный хостинг, VDS, VPS, Dedicated с поддержкой

Отправляем письмо на mail.ru со скрипта.

К сожалению mail.ru почему-то не хочет принимать письма, отправленные функцией mail(), что сильно усложняет жизнь. Хороший выход с данной ситуации – отправка письма по протоколу SMTP. Все чудесно работает, и все довольны :)

Покажу на примере отправки письма с ящика mail.ru.

$smtp_name = 'mymail@mail.ru';
$smtp_pass = 'password';
$smtp_port = '25';
$smtp_host = 'smtp.mail.ru';
$smtp_charset = 'utf-8';
$smtp_from = "от ThisWAP.com";
$subject = "тестируем отправку сообщений";
$mail_to = "test@mail.ru";
$message = "Содержание нашего письма ;) ";
$socket=fsockopen($smtp_host, $smtp_port);
fgets($socket);
fputs($socket, "EHLO $smtp_host\r\n");
fgets($socket);
fgets($socket);
fgets($socket);
fgets($socket);
fgets($socket);
fputs($socket, "AUTH LOGIN\r\n");
fgets($socket);
fputs($socket, base64_encode($smtp_name) . "\r\n");
fgets($socket);
fputs($socket, base64_encode($smtp_pass) . "\r\n");
fgets($socket);
fputs($socket, "MAIL FROM: <$smtp_name>\r\n");
fgets($socket);
fputs($socket, "RCPT TO: <$mail_to>\r\n");
fgets($socket);
fputs($socket, "DATA\r\n");
fgets($socket);
$msg='';
$msg .= "Reply-To: $smtp_name\r\n";
$msg .= "MIME-Version: 1.0\r\n";
$msg .= "Content-Type: text/plain; charset=\"$smtp_charset\"\r\n";
$msg .= "Content-Transfer-Encoding: 8bit\r\n";
$msg .= "From: \"$smtp_from\" <$smtp_name>\r\n";
$msg .= "To: $mail_to <$smtp_mail>\r\n";
$msg .= "Subject: =?UTF-8?B?" . base64_encode($subject) . "?=\r\n";
$msg .= "X-Priority: 3\r\n\r\n";
$msg .= $message."\r\n";
fputs($socket, $msg."\r\n.\r\n");
fgets($socket);

Давайте подробно разберемся что к чему:
$smtp_name = ‘mymail@mail.ru’; – это имя пользователя
$smtp_pass = ‘password’; – пароль пользователя
$smtp_port = ’25′; – порт подключения
$smtp_host = ‘smtp.mail.ru’; – адрес smtp сервера
$smtp_charset = ‘utf-8′; – кодировка нашего письма
$smtp_from = "от ThisWAP.com"; – имя отправителя, то есть наше имя (поле от кого)
$subject = "тестируем отправку сообщений"; – тема письма
$mail_to = "test@mail.ru"; – адрес получателя (кому отправляем)
$message = "Содержание нашего письма ;) "; – наше сообщение
С настройками мы закончили, теперь разберем процесс самой отправки письма:
$socket=fsockopen($smtp_host, $smtp_port); – открываем сокет
fgets($socket); – будем принимать ответы
fputs($socket, "EHLO $smtp_host\r\n"); – присоединяемся серверу
fputs($socket, "AUTH LOGIN\r\n"); – запрашиваем авторизацию
Дальше мы посылаем логин и пароль для авторизации, а также информацию от кого письмо и адрес получателя.
fputs($socket, "DATA\r\n"); – сигнализирует сервер о том, что сейчас будет передаваться письмо
В переменной $msg мы формируем наше письмо (посылаем нужные заголовки для корректного принятия письма получателем).
fputs($socket, $msg."\r\n.\r\n"); – отправляем письмо.

Теперь можем радоваться, все пользователи 100% получат письмо и больше не будет жалоб на то, что письма к ним не доходят.

Метки: , ,

Один комментарий к “Отправляем письмо на mail.ru со скрипта.”

  1. 1
    Нурбол

    Спасибо большое! Я очень долго не мог разобраться!

Оставить комментарий


Спонсор:
эротические галереи фото бесплатно