2010-09-09 3 views
0

Я doingsome тесты, я попробовал два решения до сих пор:Можно ли отправлять смешанные письма txt/html с помощью функции php mail?

Первый отправляет сообщение внутри заголовков (параметр сообщения в почте() функция пусто) []

$boundary = "nextPart"; 
    $headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "From: ".$from_name." <".$from.">\r\n"; 
    $headers .= "Content-Type: multipart/alternative; boundary = $boundary\r\n"; 
    //Html 
    $headers .= "\n--$boundary\n"; 
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
    $headers .= $html; 
    //Text 
    $headers .= "\n--$boundary\n"; 
    $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 
    $headers .= $text; 

второй - это: http://www.webcheatsheet.com/PHP/send_email_text_html_attachment.php#attachment (установить заголовки и отправляет их внутри сообщения)

Non из них работает должным образом (первый не работает вообще, второй работает в gmail, но это не правильно отформатированный адрес электронной почты, и некоторый клиент не может справиться с этим). Раскрывая код php mailer (http://phpmailer.worxware.com/index.php?pg=phpmailer), я увидел, что он даже не пытается отправлять многостраничные электронные письма.

Итак, мне интересно, можно ли отправить многопользовательскую электронную почту PROPERLY с помощью функции php mail.

Спасибо

с.с. Я знаю и использую грушевую почту, я просто хочу понять эту вещь.

+0

Возможно, выделите, что "P.S." - в противном случае ответы «использовать Swiftmailer» получат десятки :) Даже если вы не хотите использовать их здесь, вы можете посмотреть на результат, который создаются этими библиотеками, и проверить исходный код почтовых сообщений для различий , –

+2

После каждого типа содержимого вам может понадобиться вторая пара «\ r \ n». И, возможно, используйте \ 015 \ 012 для совместимости с Windows. – mario

ответ

2

Да, возможно. Функция mail(); PHP - это не более чем удобная функция для доставки вашего «сырого» сообщения почтовому обработчику базовой операционной системы (например, sendmail).

Итак, если ваши заголовки сообщений и тело сообщения объединены в правильное кодированное MIME сообщение, все будет работать нормально.

Чтобы выяснить детали, найдите простой почтовый клиент и проанализируйте его электронные письма. Объедините это с MIME specifications, и вы должны туда добраться.

1

Из того, что я знаю, mail() просто отправляет то, что ему дано, так что да, вполне возможно отправить все, что вы хотите, включая multipart mimes. Фактически, это именно то, что делают почтовые классы (груша, phpmailer) за кулисами, хотя они также могут быть настроены на использование других транспортов.

Другими словами, класс почты сравнивается с «mail()», как механизм шаблонов, сравнивается с «echo».

Смежные вопросы