Делаем простенькую функцию для отправки e-mail средствами php. Например, ее можно будет использовать для уведомлений в каком-нибудь сервисе. Мы используем пример отправки письма, сообщающего об удачном добавлении сайта в каталог.
Итак, какие параметры будет принимать наша функция:
Будем считать, что данные у нас в кодировке win-1251, а отправлять письмо мы будем в (самой распространенной для e-mail) кодировке koi8-r. Время в письмо будет поставляться текущее.
Шаблон письма не будем держать в коде, а вынесем в отдельный текстовый файлик, в котором будут специальные места для подстановки данных. Пример файлика:
Здравствуйте, {name}! Кто-то, возможно это Вы и есть, указал этот e-mail при заполнении заявки на добавление сайта {url} в каталог Alt-F4. Если Вы этого не делали, просто удалите данное письмо. Ваша заявка успешно прошла модерацию и сайт добавлен в каталог. С уважением, администрация сайта www.alt-f4.ru Е-mail: info@alt-f4.ru {date}
Пусть файлик будет называться 'letter.txt' (кстати говоря, этот шаблон можно хранить в базе данных). Теперь смотрим на листинг функции:
function sendMail($name, $subject, $url, $to, $from) {
$letter_tpl = file_get_contents('letter.txt'); // считываем из файла шаблон письма
$date = date("d.m.Y", time()); // форматируем текущую дату
$searches = array("/\{name\}/", "/\{url\}/", "/\{date\}/");
$replacements = array($name, $url, $date);
// подставляем данные в шаблон
$letter = preg_replace($searches, $replacements, $letter_tpl);
$from = convert_cyr_string($from, "w","k"); // перекодируем поле 'от кого'
$letter = convert_cyr_string($letter, "w","k"); // перекодируем тело письма
// составляем заголовки - очень важно!
$headers = "Content-type: text/plain; charset=koi8-r\r\n";
$headers .= "From: ".$from."\r\n";
$subject = '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject, "w","k")).'?=';
if (mail($to, $subject, $letter, $headers)) {
return true;
}else {
return false;
}
}
Стоит заметить, что в переменную $from следует писать что-то вроде:
$from = "Администрация сайта Alt-F4.ru <no-reply@alt-f4.ru>"
Вот и все. Эта функция будет отправлять письма, построенные по всем правилам и в верной кодировке. Буду рад если вам поможет эта заметка.
Комментарии
Отправить комментарий