4Oct/120
Как да изпращаме HTML писма на кирилица, чрез PHP
Ако желаете да изпращате писма съдържащи кирилица, и форматиращи тагове, от PHP скрипт, можете да използвате следната функция:
function email_html($target, $sender, $subject, $htmlbody){ $headers = "MIME-Version: 1.0\r\n"; $headers .= "From: {$sender}\r\n"; $headers .= "Reply-To: {$sender}\r\n"; $headers .= "Return-Path: {$sender}\r\n"; $headers .= "Content-Type: text/html; charset=UTF-8; format=flowed\r\n"; $headers .= "Content-Transfer-Encoding: base64 \r\n"; $headers .= "X-Mailer: PHP/" . phpversion(); $html = '<'.'!DOCTYPE'.' HTML>'.'<'.'head><'.'meta http-equiv="Content-Type" content="text/html; charset=utf-8">'.$htmlbody.'<'.'/body'.'><'.'/html>'; $message = chunk_split(base64_encode($html)); $subject = '=?UTF-8?B?'.base64_encode($subject).'?='; return @mail($target, $subject, $message, $headers); }
Употребата и е проста (приемаме, че ще изпращаме писма с UTF-8 кодировка, съответно php скрипта ни или данните ни от базата също трябва да са в нея ... ):
$target = "targetmail@example.com"; $sender = "spammer@spammerhouse.com"; $subject = "Важно : това заглавие съдържа кирилица, но ще се покаже коректно в gmail.com и abv.bg"; $htmlbody = "Начало на тялото на съобщението....Това е заглавен ред
А това е наклонен текст."; email_html($target, $sender, $subject, $htmlbody);