отправка email в формате html в пхп через sendMail
буду благодарен за примеры кода.
1 ответов
В конечном счете вся почта уходит именно так, как настроен ваш php (в большинстве случаев это именно sendmail).
Если у вас достаточно простой код и не требует вмешательства библиотек, то воспользуйтесь обычной функцией mail
Обычный текст отправляется так
$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
насколько я понял из вопроса человек пытаеться отправить почту средствами только HTML и sendmail.
ответ - Нет, нельзя.
Да, отправлять можно, только нужно прописывать правильные заголовки, учитывать кодировки, правильно обрабатывать картинки в html и т.д. Мучался где-то полгода, периодически вылезали проблемы то при чтении в web-интерфейсе, то в какой-то из почтовых программ (Thunderbird самая капризная), то письма с нашего сервера на почтовые ящики на нашем же сервере стали приходить как plain text (на другие ящики без проблем). Плюнул и поставил phpMailer - неделя прошла, полет нормальный.
Считаю, что писать отправку почты самому нужно лишь в целях самообразования, а в коммерческих проектах пользоваться отлаженными механизмами.
не как бы есть же в php фукнция mail, которая и посылает письмо. 3-им параметров в функции идет тело письма, в которое можно засунуть сам html. Но тогда нужно и в заголовках указать что у тя не plain text, а html.
Ну а вообще лучше исспользовать аля phpMailer.