PHPMailer – отправка почты через SMTP
В последнее время письма отправляемые с хостингов через функции mail() и mb_send_mail() часто попадают или совсем не доходят до адресатов. Альтернатива – это отправка e-mail через SMTP с реального почтового ящика с использованием расширения PHPMailer.
Пример отправки письма с вложением
require_once ‘/PHPMailer/PHPMailerAutoload.php’;
$mail = new PHPMailer;
$mail->CharSet = ‘UTF-8’;
// Настройки SMTP
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->SMTPDebug = 0;
$mail->Host = «ssl://smtp.gmail.com»;
$mail->Port = 465;
$mail->Username = «Логин»;
$mail->Password = «Пароль»;
// От кого
$mail->setFrom(‘mail@snipp.ru’, ‘Snipp.ru’);
// Кому
$mail->addAddress(‘mail@site.com’, »);
// Тема письма
$mail->Subject = $subject;
// Тело письма
$body = ‘
«Hello, world!»
‘;
$mail->msgHTML($body);
// Приложение
$mail->addAttachment (__DIR__ . ‘/image.jpg’);
$mail->send();
Настройки SMTP у почтовых сервисов и хостингов
$mail->Host ="ssl://smtp.yandex.ru";
$mail->Port =465;
$mail->Username ="Логин@yandex.ru";
$mail->Password ="Пароль";
MAIL.RU
$mail->Host ="ssl://smtp.mail.ru";
$mail->Port =465;
$mail->Username ="Логин@mail.ru";
$mail->Password ="Пароль";
GMAIL.COM
$mail->Host ="ssl://smtp.gmail.com";
$mail->Port =465;
$mail->Username ="Логин@gmail.com";
$mail->Password ="Пароль";
Если возникает ошибка при отправки почты, то нужно отключить двухфакторную авторизацию и разблокировать «ненадежные приложения» в настройках конфиденциальности аккаунта https://myaccount.google.com/security?pli=1