PHP 5 для начинающих |
Страница 569 из 813 Практика Отправка e-mail-сообщения Вызванная в PHP-приложении функция mail() отправляет письма через стандартный MTA-агент. Логично предположить, что функция требует, как минимум, адреса получателя, тему сообщения и само сообщение (которое обычно называется телом). Чтобы добавить адрес отправителя (From) или любую другую дополнительную информацию, при формировании e-mail можно включить дополнительные заголовки. Рассмотрим небольшой сценарий mail.php (не забудьте заменить e-mail-адрес в переменной $to — предположим, что письмо необходимо отправить самому себе): < ?php $to = "edit@contechst.com"; $subject = "Ваше письмо отправлено"; $body = "Тестовое письмо"; if(mail($to,$subject,$body)){ echo "<b>PHP отправил Ваше e-mail-письмо<b>"; } ?> Если сетевое соединение установлено и SMTP-сервер работает правильно, то в окне браузера будет выведено подтверждающее сообщение. Следует, однако, отметить, что успешная отправка письма не означает, что это письмо будет принято получателем. Существует множество причин, по которым почта не доходит до получателя ------ указанный в письме адрес получателя может не соответствовать адресу на принимающем сервере, принимающий сервер может быть временно недоступен и т.д. PHP-функция mail() позволяет пользователю отправлять e-mail-сообщения, указав несколько аргументов (таких как адрес получателя). Это булева функция, т.е. она возвращает TRUE при успешном завершении (почта была отправлена) и FALSE в противном случае. Аргументы можно указывать в виде текстовых строк или в виде переменных, содержащих соответствующие данные. Предположим, что письмо дошло до адресата. Результат показан на рис. 15.1. Рассмотрим каждый аргумент, принятый функцией mail() . Заголовок ''To:'' автоматически добавляется функцией, а данные для него считы-ваются из первого аргумента. Эти данные можно жестко запрограммировать, принять как переменную, сгенерированную в результате отправки пользователем формы (этот случай иллюстрируется далее) либо получить их из записей в базе данных или иного источника информации. В этом поле можно указать несколько получателей, разделяя e-mail-адреса запятыми (без пробелов). Запятые должны находиться между кавычками, окружающими e-mail-адреса, иначе они будут интерпретированы функцией как следующий аргумент. Тема e-mail-сообщения автоматически считывается из второго аргумента функции. Тему также можно жестко запрограммировать, принять как значение переменной, полученное в результате отправки формы, или вставить из любого источника данных. Конечно, было бы немного странно отправлять всем получателям разные темы (если вы не спамер), но это определенно возможно. Тело сообщения состоит из текста, и в него можно добавить слова приветствия и подпись. Тело сообщения ------ просто текст, и любые начальные и конечные фрагменты или другие компоненты добавляются с помощью оператора конкатенации (.). |