вот вам класс для отправки по SMTP включая с авторизацией..
| Цитата | Библиотека предназначена для удобного составления и организации надежной отправки писем с аттачами или без. В отличие от PHPMailer-а, умеет: 1) правильно кодировать заголовки (поддерживаются плейсхолдеры при их составлении) 2) отправлять письма по SMTP с использованием AUTH CRAM-MD5
Класс Letter Составляет письмо с заголовками, сообщением и аттачами. Лепит из всех этих составляющих тело письма.
Envelope (наследует Letter) API к наиболее часто используемым заголовкам: from, to, subject, reply-to, cc, bcc Самостоятельно определяет всех получателей, интеллектуально составляет тело письма на основании родительских методов. Есть инструмент для создания закодированных заголовков. Поддерживает плейсхолдеры.
SMTP_Socket Инструмент для коннекта к SMTP-серверу и выполнения на нем команд. Анализирует коды ответа сервера в каждой команде и сопоставляет с указанным набором. Может сохранять лог протокола
Mailman "Фабрика" Утилита для составления писем, построения их в очередь и отправки указанным способом. Постоянно держит наготове объект-письмо-конверт, куда можно пихать сообщения, заголовки, аттачи. Можно текущее письмо поместить в очередь и при этом создать новое. Можно всю очередь писем отправить в 1 соединение с SMTP-сервером. Это происходит так: 1) создает соединение, пытается пройти аутентификацию, если указаны логин+пароль 1.1) аутентификация происходит в порядке "AUTH CRAM-MD5", "AUTH LOGIN" 2) пытается отправить каждое письмо из очереди. При этом отправленные удаляются из очереди 3) возвращает количество отправленных писем (очередь неотправленных при этом остается)
Пример отправки 1 простейшего письма
| Код | <?php $m=new Mailman(); $m->letter->add_to('[email protected]'); $m->letter->set_from('[email protected]'); $m->letter->set_subject('Превед'); $m->letter->set_message('Идет Медвед по лесу...'); if ($m->send_via_smtp('smtp.mail.ru', 'preved', 'medved')) echo 'ok'; else echo 'Not ok'; ?>
|
Пример отправки письма с кучей заголовков и 2 аттачами
| Код | <?php // создается очередь и 1 письмо в кодировке UTF-8 $queue = new Mailman();
$queue->letter->add_to('[email protected]'); $queue->letter->add_to('[email protected]', 'Имя получателя'); // так же работают методы add_cc, add_bcc $queue->letter->set_from('[email protected]', 'Ваше имя'); $queue->letter->set_reply_to('[email protected]', 'Еще какое-нить имя'); // простое текстовое сообщение $queue->letter->set_message('бу-бу-бу'); /* // а можно и HTML-код $html_code='...'; $queue->letter->set_message($html_code, text/html, 'windows-1251'); */ // можно приаттачить файл, можно содержимое $queue->letter->attach($path_to_file); $queue->letter->attach($file_contents, 'application/rtf', '1.rtf'); // или добавить какой-нибудь заголовок $queue->letter->add_header($queue->letter->base64_placeholders( 'X-Mailer: #?#', 'Типа почтовый клиент.')); // можно просто сформировать и получить тело письма $ltr=$queue->letter->fetch();
// а так письма можно попытаться отправить в любой момент // последнее письмо не нужно отправлять в очередь $queue->send_via_smtp('an.smtp.host'); ?>
|
|
|