Главная » Полезные статьи » Язык PHP » Отправка писем на php. Сборник рецептов
Распечатать статью

Отправка писем на php. Сборник рецептов

Отправка писем в php осуществляется с помощью функции mail()

 

mail(to, subject, message, mailheaders);

to — емайл получателя
subject — заголовок письма
message — текст письма, сообщение
mailheaders — почтовые заголовки

Отправка обычного текстового письма

Это самый простой способ отправки писем. Вы просто указываете емайл получателя, отправителя и формат text/plain в заголовке. Далее идет пример

<?php $to = "rockbattle@mail.ru"; // емайл получателя $subject = "Проверка отправки писем"; // тема письма $message = "Здравствуйте Если вы читаете это письмо значит все ок Почтовый робот"; // текст сообщения $mailheaders = "Content-type:text/plain;charset=windows-1251rn"; // почтовый заголовок, указывает формат письма - текстовый и кодировку $mailheaders .= "From: SiteRobot <noreply@siterobot.ru>rn"; // почтовый заголовок, указывает емайл отправителя $mailheaders .= "Reply-To: noreply@siterobot.rurn"; // почтовый заголовок, указывает емайл для ответа // лучше если емайл для ответа совпадает с емайлом отправителя, иначе некоторые почтовые сервисы могут классифицировать письмо как спам mail($to, $subject, $message, $mailheaders); // отправляем письмо ?>

 

Отправка html-письма, в которое можно вставлять таблицы, рисунки, различные шрифты, стили оформления

Отправка писем в html формате почти ничем не отличается от отправки писем в текстовом формате. В заголовке вы указываете формат письма text/html а в самом письме вместо обычного текста помещаете html-код.

Рассмотрим на примере

<?php $to = "rockbattle@mail.ru"; // емайл получателя $subject = "Проверка отправки писем"; // тема письма $message = "Здравствуйте<br><br>Если вы это читаете значит все ок <br><br>Почтовый робот "; // текст сообщения, здесь вы можете вставлять таблицы, рисунки, заголовки, оформление цветом и т.п. $mailheaders = "Content-type:text/html;charset=windows-1251rn"; // формат письма html $mailheaders .= "From: SiteRobot <noreply@siterobot.ru>rn"; $mailheaders .= "Reply-To: noreply@siterobot.rurn"; // емайл отправителя и емайл для ответа mail($to, $subject, $message, $mailheaders); // отправляем письмо ?>

 

Отправка письма с вложением

Чтобы прикрепить файл к письму потребуется немного более длинный код, но это тоже довольно просто. В приведенном далее коде пропишите имя вашего файла который вы хотите отправить а также его расположение

<?php $to = "rockbattle@mail.ru"; // емайл получателя $subject = "Письмо с вложением"; // тема письма $message = "Здравствуйте Если с этим письмом вы получили прикрепленный файл значит все ок Почтовый робот "; // текст сообщения $filename = "file.doc"; // название файла $filepath = "files/file.doc"; // месторасположение файла // письмо с вложением состоит из нескольких частей, которые разделяются разделителем $boundary = "--".md5(uniqid(time())); // генерируем разделитель $mailheaders = "MIME-Version: 1.0n"; $mailheaders .="Content-Type: multipart/mixed; boundary="$boundary"n"; // разделитель указывается в заголовке в параметре boundary $mailheaders .= "From: SiteRobot <noreply@siterobot.ru>rn"; $mailheaders .= "Reply-To: noreply@siterobot.rurn"; $multipart = "--$boundaryn"; $multipart .= "Content-Type: text/plain; charset=windows-1251nn"; $multipart .= "$messagenn"; // первая часть само сообщение $fp = fopen($filepath,"r"); if (!$fp) { print "Файл не может быть прочитан"; exit(); } $file = fread($fp, filesize($filepath)); fclose($fp); // чтение файла $message_part = "--$boundaryn"; $message_part .= "Content-Type: application/octet-stream; name = "".$filename.""n"; $message_part .= "Content-Transfer-Encoding: base64n"; $message_part .= "Content-Disposition: attachment; filename = "".$filename.""nn"; $message_part .= chunk_split(base64_encode($file))."n"; // второй частью прикрепляем файл, можно прикрепить два и более файла $multipart .= $message_part; mail($to,$subject,$multipart,$mailheaders); // отправляем письмо ?>

 

Отправка писем сразу нескольким адресатам

Чтобы отправить письмо сразу нескольким адресатам, лучше всего использовать заголовок Bcc: который отправляет копию письма на указанный емайл

Например

<?php $to = "rockbattle@mail.ru"; // емайл получателя $subject = "Проверка отправки писем"; // тема письма $message = "Здравствуйте Если вы читаете это письмо значит все ок Почтовый робот"; // текст сообщения $mailheaders = "Content-type:text/plain;charset=windows-1251rn"; $mailheaders .= "From: SiteRobot <noreply@siterobot.ru>rn"; $mailheaders .= "Reply-To: noreply@siterobot.rurn"; // почтовые заголовки $mailheaders .= "Bcc: email1@mail.rurn"; $mailheaders .= "Bcc: email2@mail.rurn"; $mailheaders .= "Bcc: email3@mail.rurn"; // заголовков Bcc может быть неограниченное количество mail($to, $subject, $message, $mailheaders); // отправляем письмо ?>
Источник: internet-technologies.ru
Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

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

Похожие статьи