отправка email в формате html в пхп через sendMail

Можно ли отправлять html письма через простой sendmail? или обязательно использовать что-то типа phpMailer?
буду благодарен за примеры кода.

1 ответов


Phpmailer - библиотека, которая упрощает работу с отправкой письма и поддерживает большое количество дополнительных функций

В конечном счете вся почта уходит именно так, как настроен ваш php (в большинстве случаев это именно sendmail).

Если у вас достаточно простой код и не требует вмешательства библиотек, то воспользуйтесь обычной функцией mail

Обычный текст отправляется так
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

Если нужно отправить HTML страницу:

// Кому
$to  = 'example@example.com';
// subject
$subject = 'Привет от почтового сервера';
// Само сообщение
$message = "
<html><head><title>Привет от почтового сервера</title></head><body>
<p>Это почтовое сообщение пришло к вам с помощью mail функции!</p>
</body></html>"
;
// Что бы отправлять HTML, устанавливаем Content-type заголовки
$headers  = 'MIME-Version: 1.0' . "\r\n";
// тут установить ту кодировку с которой вы работатете
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
// Отправляем
mail($to, $subject, $message, $headers);

Лучше всего использовать готовую библиотеку типа phpMailer, но при желании можно это делать и руками. Вот тут есть пример: http://webcheatsheet.com/php/send_email_text_html_attachment.php


Для большинства целей можно использовать PEAR Mail и к нему еще Mail Mime - тут и отправка файлов и хтмл и отправка через smtp итд


насколько я понял из вопроса человек пытаеться отправить почту средствами только HTML и sendmail.
ответ - Нет, нельзя.


Да, отправлять можно, только нужно прописывать правильные заголовки, учитывать кодировки, правильно обрабатывать картинки в html и т.д. Мучался где-то полгода, периодически вылезали проблемы то при чтении в web-интерфейсе, то в какой-то из почтовых программ (Thunderbird самая капризная), то письма с нашего сервера на почтовые ящики на нашем же сервере стали приходить как plain text (на другие ящики без проблем). Плюнул и поставил phpMailer - неделя прошла, полет нормальный.
Считаю, что писать отправку почты самому нужно лишь в целях самообразования, а в коммерческих проектах пользоваться отлаженными механизмами.


не как бы есть же в php фукнция mail, которая и посылает письмо. 3-им параметров в функции идет тело письма, в которое можно засунуть сам html. Но тогда нужно и в заголовках указать что у тя не plain text, а html.
Ну а вообще лучше исспользовать аля phpMailer.