22.04.2014 Views

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

php_mysql_dreamweaver_mx_2004 разработка web сайтов.pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Глава 16. Организация почтовой рассылки 371<br />

письмо. Четвертая строка — это тема. А все эти четыре строки составляют<br />

заголовок.<br />

После заголовка обязательно должна идти пустая строка. Она отделяет заголовок<br />

от тела письма. А заканчиваться тело (да и все письмо) должно символом<br />

точки.<br />

Так вот, о заголовке. Первые три строки формируются самим PHP. PHP<br />

автоматически подставляет почтовый адрес отправителя, а почтовый адрес<br />

получателя и тема берутся из первых двух аргументов функции mail. Значение<br />

третьего аргумента подставляется в качестве тела письма.<br />

Но текстовую кодировку РНР сам задавать не умеет. Нам придется самим<br />

передать нужную строку четвертым аргументом функции mail. Вот так:<br />

mail("otheruser@otherserver.ru", "Test!!!",<br />

^"Это всего лишь тестовое письмо. Не пугайтесь!",<br />

Ч>"Content-Type: text/plain; charset=windows-1251");<br />

Осталось только сказать, что функция mail возвращает значение true в случае<br />

успешной отправки письма.<br />

Прямая отправка письма на почтовый сервер<br />

Для тех, кто не имеет собственного почтового сервера, РНР предлагает<br />

другой способ отправки электронных писем — напрямую на любой доступный<br />

почтовый сервер. Мы просто соединяемся с почтовым сервером и посылаем<br />

ему команды на отправку письма. Конечно, это немного сложнее, и<br />

кода придется написать заметно больше, но во многих случаях это единственный<br />

выход.<br />

Предположим, что мы имеем свой почтовый ящик <strong>php</strong> на популярном бесплатном<br />

сервере Mail.ru (http://www.mail.ru). И с этого ящика нам нужно<br />

отправить какое-либо письмо.<br />

Итак, сначала нам нужно установить соединение с почтовым сервером. Для<br />

этого мы используем встроенную функцию f sockopen. Вот формат ее вызова:<br />

fsockopen(, );<br />

Мы передаем функции fsockopen интернет-адрес почтового сервера, с которым<br />

нужно соединиться, и номер порта TCP/IP. Протокол SMTP (Simple<br />

Mail Transferring Protocol, простой протокол передачи почты), по которому<br />

серверу передается почта, использует порт 25.<br />

Если соединение нормально установлено, функция fsockopen вернет идентификатор<br />

соединения. Его нам будет нужно сохранить в какой-либо переменной,<br />

поскольку он нам потом понадобится. Если соединение не было<br />

установлено, возвращается false.<br />

$connection = fsockopen("smtp.mail.ru", 25);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!