Отправка почты на PHP

Author Роман Чернышов    Category PHP     Tags , Комментариев 0 Дата 22 Сен

mail Отправка почты на PHP

Наверняка каждый начинающий веб-программист сталкивался с функцией PHP mail(), которая служит для отправки почты на e-mail пользователя. Работая на прямую с данной функцией, очень часто приходится самостоятельно подготавливать и передавать все заголовки письма, содержащие множество служебной информации. В большинстве случаев все происходит без каких либо неожиданностей, но бывают и исключения. Как правило самостоятельно составление заголовков, подготовка тела письма и последующая его отправка может сопровождаться ошибками в кодировке письма, его формате и т.д.

Пример работы функции mail():

<?php  mail("support@example.com", "Тема письма", "Строка 1\n Строка 2\n Строка 3");  ?>

Следующий пример более расширен, в него добавлена работа с заголовками письма:

<?php  $to  = "user1@example.com>, " ;
$subject = 'Тема письма';
$to .= "user2@example.com>";
$message = '
<html>
<head></head>
<body>
<p>Это письмо отправлено всем пользователям нашего портала!</p>
</body>
</html>';
$headers  = "Content-type: text/html; charset=windows-1251 \r\n";  // Тип писма HTML, в кодировке windows-1251
$headers .= "From: Администрация сайта <admin@example.com>\r\n";
$headers .= "Bcc: archive@example.com\r\n"; 
mail($to, $subject, $message, $headers)
?>

Такой способ отправки весьма удобен, при выполнении небольших скриптах или системах. Когда надежность и удобство использования стоит на втором и более, месте. И как я говорил ранее, в такой реализации отправки письма может быть допущена ошибка. Например если мы пошлем такое письмо, с указанными выше заголовками на почтовый ящик @yahoo.com, то всего скорее оно придет к нам в нечитабельном виде. Вместо текста мы увидим множество иероглифов. связано это в первую очередь с тем, что мы указали кодировку windows-1251, русскоязычные символы которай не корректно обрабатываются сервисом @yahoo.com

Но если мы планируем подойти к вопросу организации почтовых рассылок в нашем проекте более серьезно, то следует использовать для этих целей решение реализованное в классе PHP. Отправка почты с помощью специально подготовленного класса, может выглядеть следующим образом:

include "libmail.php";
$m= new Mail('windows-1251');  // можно сразу указать кодировку, можно ничего не указывать ($m= new Mail;)
$m->From( "asd@asd.com" ); // от кого
$m->To( "kuda@asd.ru" );   // кому
$m->Subject( "тема сообщения" );
//$m->charset("UTF-8"); // кодировка письма
$m->Body("Сообщение. Текст письма");
$m->Cc( "kopiya@asd.ru");  // кому отправить копию письма
$m->Bcc( "skritaya_kopiya@asd.ru"); // кому отправить скрытую копию
$m->Priority(4) ;	// установка приоритета
$m->Attach( "/toto.gif", "", "image/gif" ) ;	// прикрепленный файл типа image/gif. типа файла указывать не обязательно
$m->smtp_on("smtp.asd.com","login","passw", 25, 10); // используя эу команду отправка пойдет через smtp
$m->Send();	// отправка
echo "Письмо отправлено, вот исходный текст письма:<i>", $m->Get(), "</i>";

В этом примере все достаточно расписано, процесс отправки прост и понятен. Ксе заголовки письма формируются автоматически, кодировка письма UTF-8, хотя вы всегда можете указать свою. Так же поддерживаются вложения в теле письма, таким образом, что вы можете прикрепить файл или несколько файлов если это понадобится.

Сам же класс вы можете скачать по данной ссылке, в его коде все достаточно хорошо прокомментировано, так, что ядумаю проблем у вас с ним не возникнет. Класс работает с PHP 4 и выше, в ближайшее время выложу переработанный класс для PHP 5, думаю он не особо будет отличаться, но несколько новых фишек в нем появится.

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

О блоге и авторе

Добро пожаловать на блог веб-разработчика! На протяжении многих лет, начиная с 2009 года, я занимаюсь созданием специализированных сайтов, сервисов и крупных веб-порталов. Мною было создано несколько сотен сайтов, большинство из которых работают на ПО созданном под заказ, а также на готовом ПО которое я разрабатываю на протяжении всего периода моей деятельности. Это: CMS "Совместные покупки", CMS "osRealty", CMS "Спорт прогнозы" и многое другое.

На страницах моего блога вы найдете множество информации о программировании, о появлении новых разработок, сможете ознакомиться с товарами и услугами которые я предоставляю. А также сможете получить консультацию, заказать разработку сайта или приобрести готовое решение, для реализации собственного проекта.

Поиск по блогу
Категории
Архив
Новое на сайте
Блогеры пишут
  • Роман Чернышов: Для работы капчи на PHP 5.6, замените в файле class.captcha.php строку 264 $ifunc( $this -> i [...]
  • Роман Чернышов: Схема такая: 1) На сайте есть виртуальные кошельки (далее ВК) 2) При пополнении пользователем ВК, [...]
  • Александр: Может скрипт комментариев блокирует сообщения с кодом? Или как длинный текст не проходит?
  • Александр: Пытаюсь в который раз здесь показать код, но страница обновляется, и не сообщения, ни любого оповеще [...]
  • Роман Чернышов: Лично у меня интерес к продаже ссылок пропал уже давно. Преимущество сапы, это то - что ссылки можно [...]
Портфолио Все работы


www.detskiy-mir.net
www.detskydoctor.ru
www.betelit.ru
www.all-alliance.ru
www.videogonok.ru
www.carpfishing.by
www.property-greek.com
www.domcons.ru

с 2009 года по сегодняшний день, создано более 300 сайтов...