Отправка писем через SMTP с авторизацией
В этой заметке рассмотрим как отправлять почту через SMTP с авторизацией с помощью PHP. Рассматривать будем вариант отправки именно с авторизацией, так как SMTP-сервер без авторизации — находка для спаммеров. Потому практически на всех серверах существует обязательная авторизация на исходящие сообщения.
Для начала нам необходим почтовый ящик, зарегистрированный на каком-либо сервере, например mail.ru или yandex.ru и, соответственно логин и пароль от этого ящика. Именно с этого адреса будем отправлять сообщение.
Для отправки письма через SMTP будем использовать сокеты.
$smtp_server = "smtp.mail.ru";
$port = 25;
$mydomain = "myserver.com";
$username = "user";
$password = "password";
$sender = "me@myserver.com";
$recipient = "joe@company.com";
$subject = "test";
$content = "test";
// Initiate connection with the SMTP server
$handle = fsockopen($smtp_server, $port);
fputs($handle, "EHLO $mydomain\r\n");
// SMTP authorization
fputs($handle, "AUTH LOGIN\r\n");
fputs($handle, base64_encode($username)."\r\n");
fputs($handle, base64_encode($password)."\r\n");
// Send out the e-mail
fputs($handle, "MAIL FROM:<$sender>\r\n");
fputs($handle, "RCPT TO:<$recipient>\r\n");
fputs($handle, "DATA\r\n");
fputs($handle, "To: $recipient\r\n");
fputs($handle, "Subject: $subject\r\n");
fputs($handle, "$content\r\n");
fputs($handle, ".\r\n");
// Close connection to SMTP server
fputs($handle, "QUIT\r\n");
?>
Ссылки по теме: