В PHP достаточно популярно использовать скрипты которые автоматизируют процесс отправки писем. В данной статье мы рассмотрим простой скрипт который выполняем отправку писем на почту получателей по средствам SMTP(Simple Mail Transfer Protocol). Было бы слишком просто ограничится только этим функционалом, скрипт поддерживает и вложения то есть, вы сможете прикрепить pdf, txt или doc файл в своем письме.
Настройка скрипта довольно проста, от вас требуется только данные отправителя логин, пароль от электронной почты с которого будут отправляться письма.
Скрипт работает с классом km_smtp_class.php, класс хорош тем, что поддерживает разные протоколы SSL и TLS которые предоставляют защищенную передачу данных.
Вот и сам скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
<?php /** * Отправка почты через PHP (SMTP) * Сделано в Live-code.ru * Автор: Mowshon * Дата: 11.11.11 */ // Подключаем SMTP класс для работы с почтой include_once('km_smtp_class.php'); // Конфигурационный массив $SenderConfig = array( "SMTP_server" => "smtp.mail.ru", "SMTP_port" => "25", "SMTP_email" => "user@mail.ru", "SMTP_pass" => "1111111", "SMTP_type" => "null" ); // Email получателя $Receiver = "admin@yahoo.com"; // Тема сообщения $Subject = "Отправляем письмо из PHP"; // Текст сообщения (в HTML) $Text = "Привет!<br /> Сообщение отправлено из скрипта <strong>Mowshon</strong> Сайт: http://live-code.ru"; // Вложение в письме - адрес к файлу $Attachment = ''; /* $mail = new KM_Mailer(сервер, порт, пользователь, пароль, тип); */ /* Тип может быть: null, tls или ssl */ $mail = new KM_Mailer($SenderConfig['SMTP_server'], $SenderConfig['SMTP_port'], $SenderConfig['SMTP_email'], $SenderConfig['SMTP_pass'], $SenderConfig['SMTP_type']); if($mail->isLogin) { // Прикрепить файл if($Attachment) {$mail->addAttachment($Attachment);} // Добавить ещё получателей $mail->addRecipient('user@mail.ru'); $mail->addRecipient('user@yandex.ru'); /* $mail->send(От, Для, Тема, Текст, Заголовок = опционально) */ $SendMail = $mail->send($SenderConfig['SMTP_email'], $Receiver, $Subject, $Text); // Очищаем список получателей $mail->clearRecipients(); $mail->clearCC(); $mail->clearBCC(); $mail->clearAttachments(); } else { echo "Возникла ошибка во время подключения к SMTP-серверу"; } ?> |
Настройка скрипта лежим в основном на массиве $SenderConfig, тут мы должны указать SMTP:сервер, порт, логин и пароль от электронной почты. Опишем каждый ключ массива:
SMTP_server - адрес SMTP сервера (индивидуальный адрес для разных почт)
Почта Mail.ru: smtp.mail.ru порт: 25, 587 и 465 (с шифрованием SSL)
Почта Yandex: smtp.yandex.ru порт: 25, 587 465 (SSL порт)
Почта Rambler: mail.rambler.ru порт: 25, 587 465 (SSL порт)
Почта Yahoo: smtp.mail.yahoo.com SSL-порт: 465
(Если понадобится адрес smtp серверов которые нет в списке - пишите в комментариях)
SMTP_port - Мы его сверху уже описали для каждого smtp сервера.
SMTP_email - точнее было бы user но для ясности написал email, указываем адрес электронной почты.
SMTP_pass - Пароль от электронной почты которая была указана как значение в ключе SMTP_email
SMTP_type - По умолчанию NULL. Протокол по которому будут отправлены письма. Протоколы: SSL и TLS
Вложения в письмо можно добавить просо указывая полный адрес к файлу в переменную $Attachment (/var/patch/to/file/File.pdf)
>> Скачать скрипт
Если будут вопросы пишите их в комментариях ниже.