Для отправки писем через SMTP в PHP будем использовать библиотеку PHPMailer. Для этого ее необходимо скачать:
github.com/PHPMailer/PHPMailer или скачать с кодер.укр.
Распаковать архив в папку с расширениями (дополнениями).
Или установить с помощью composer:
composer require phpmailer/phpmailer
И приступаем к использованию.
Минимальный код для отправки писем с помощью SMTP
Использование библиотеки довольно простое, для примера отправим письмо с яндекс почты через SMTP:
<?php
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.yandex.ru';
$mail->SMTPAuth = true;
$mail->Username = 'robot@devreadwrite.com'; //Логин
$mail->Password = '*******'; //Пароль
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->setFrom('robot@devreadwrite.com', 'Robot');
$mail->isHTML(true);
$mail->Subject = 'Тема письма';
$mail->Body = '<b>HTML</b> версия письма';
$mail->AltBody = 'Текстовая версия письма, без HTML тегов (для клиентов не поддерживающих HTML)';
//Отправка сообщения
if(!$mail->send()) {
echo 'Ошибка при отправке. Ошибка: ' . $mail->ErrorInfo;
} else {
echo 'Сообщение успешно отправлено';
}
Этого минимального кода хватит для 90% задач по отправке писем.
Подробный пример отправки писем через SMTP
<?php
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
//Дебаг
//0 = off (for production use)
//1 = клиентские сообщения
//2 = серверные и клиентские сообщения
//$mail->SMTPDebug = 2;
$mail->isSMTP();
$mail->Host = 'smtp.yandex.ru'; //gmail: smtp.gmail.com
$mail->SMTPAuth = true;
$mail->Username = 'robot@devreadwrite.com';
$mail->Password = '*******';
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->setLanguage('ru');
$mail->setFrom('robot@devreadwrite.com', 'Robot');
$mail->addAddress('my.friend@gmail.com', 'My Friend'); //Получатель
//$mail->addAddress('my.friend2@gmail.com'); //Еще получатель
//$mail->addReplyTo('my.friend3@gmail.com', 'My Friend 3');
//$mail->addCC('my.friend.cc@example.com'); //Копия
//$mail->addBCC('my.friend.bcc@example.com'); //Скрытая копия
//$mail->addAttachment('/path/to/file.zip'); //Прикрепить файл
//$mail->addAttachment('/path/to/image.jpg', 'new.jpg'); //Прикрепить файл + задать имя
$mail->isHTML(true);
$mail->Subject = 'Тема письма';
$mail->Body = '<b>HTML</b> версия письма';
$mail->AltBody = 'Текстовая версия письма, без HTML тегов (для клиентов не поддерживающих HTML)';
//Отправка сообщения
if(!$mail->send()) {
echo 'Ошибка при отправке. Ошибка: ' . $mail->ErrorInfo;
} else {
echo 'Сообщение успешно отправлено';
}
Дополнительная документация: https://github.com/PHPMailer/PHPMailer/wiki.
Приятного использования.
devreadwrite.com



Подборка адаптивных шаблонов для вашей CMS
Статьи по
Как получить и установить HTTPS сертификат на сайта

Комментарии
Добавляю в избранное, теперь не придется искать по старым проектам.
ОтветитьВот только файлы на гитхабе другие ...
ОтветитьПроект развивается, поэтому и файлы могут быть теперь другими, возможно уже пора обновлять статью
Ответитьвсе работает, только у кирилицы кодировка ломается. получается чтото вроде пâпâ£Ð¿â¨Ñâ
Ответитьпробовал конвертировать сообщение в другую кодировку - лишь другие загогулины приходят.
PHPMailer
поменяй на UTF-8 и все исправишь Ответитьclass.phpmailer.php
48 строка там
Очередной нерабочий код, весь интернет таким захламили
ОтветитьЕсли нет композера:
Ответитьcd /tmp && curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer