Admin Admin
Сообщения : 74 Очки : 71 Дата регистрации : 2010-08-23
| Тема: Отправка писем на php. Сборник рецeптов Пт Сен 10, 2010 3:10 am | |
| Отправка писем в 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); // отправляем письмо
?> | |
|