Отправка почты средствами php
Для отправки почты всегда можно подключить класс вроде PHPMailer. Но что если не хочется для такого простого действия тащить лишнюю библиотеку, а стандартная функция mail() отправляет некрасивые заголовки. Рассмотрим расширенную на пару строк функцию mail(), которая избавляет от этой проблемы
Главная проблема при использовании стандартной функции mail() - это правильные заголовки. Напишем функцию
function sendMail($subj, $from_site, $from_email, $to_email, $message) { $headers = "Content-type: text/html; charset=utf-8 \r\n"; $headers .= 'From: =?utf-8?B?' . base64_encode($from_site) . '?=<' . $from_email . '>'; return mail($to_email, $subj, $message, $headers); } $message = 'Поздравляем! Вы успешно зарегистрировались на сайте mysite.com' if (sendMail('Регистрация на сайте mysite.com', 'Интернет-магазин игрушек mysite.com', 'noreply@mysite.com', 'test@yandex.ru', $message)) echo 'Письмо успешно отправлено!'; else echo 'Что-то пошло не так...';
Главное отличие этого примера от отправки mail() без последнего параметра заключается в том, что теперь мы можем сами указывать в качестве отправителя письма нужные значения, например. И тогда получивший письмо в своем почтовом клиенте в поле От кого увидит не страшную надпись вроде "andrey.petrov@provider-name.com" (из собственного опыта), а вполне человеческое "Интернет-магазин одежды и обуви Рога и Копыта"
Истории из жизни айти и обсуждение кода.