Intereting Posts
Настройка переменных среды со встроенным веб-сервером PHP Как определить угол съемки фотографии и автоматический поворот для отображения веб-сайта, например, на настольных приложениях? Бизнес-логика в PHP или MySQL? Ошибка twilio catching не работает Возьмите массив с выражением while проверьте, находится ли время (с часовым поясом) в заданном интервале времени как сделать общий заголовок и нижний колонтитул .. большая проблема? Как запустить программу командной строки (например, lame или svn) с помощью PHP? Отформатируйте поплавок до двух знаков после запятой как использовать хэш-функцию для хранения ~ 4 миллионов изображений в файловой системе Множественные отношения к одной таблице в CakePHP Создать таблицу с PHP и заполнить из MySQL Зачем использовать единую страницу index.php для всего сайта? Есть ли простой способ «получить» размер изображения в PHP без javascript? Ошибка PHPExcel в Codeigniter

Отправить HTML-сообщение по электронной почте через PHP?

Как отправить электронное письмо в формате HTML с помощью PHP? Я хочу иметь страницу с некоторыми настройками и вывод HTML, который отправляется по электронной почте на адрес. Что мне делать? Основная проблема заключается в прикреплении файлов. Как я могу это сделать?

Solutions Collecting From Web of "Отправить HTML-сообщение по электронной почте через PHP?"

Это довольно просто, оставьте изображения на сервере и отправьте им PHP + CSS …

 $to = 'bob@example.com'; $subject = 'Website Change Reqest'; $headers = "From: " . strip_tags($_POST['req-email']) . "\r\n"; $headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n"; $headers .= "CC: susan@example.com\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=UTF-8\r\n"; $message = '<p><strong>This is strong text</strong> while this is not.</p>'; mail($to, $subject, $message, $headers); 

Именно эта строка сообщает почтовой программе и получателю, что письмо содержит (надеюсь) хорошо сформированный HTML, который он должен будет интерпретировать:

 $headers .= "Content-Type: text/html; charset=UTF-8\r\n"; 

Вот ссылка, в которой я получил информацию .. ( ссылка … )

Вам понадобится безопасность, хотя …

Вам нужно закодировать свой html, используя абсолютный путь для изображений. По Абсолютному пути означает, что вы должны загружать изображения на сервере и в атрибуте src изображений, которые вы должны указать прямому пути, подобному этому <img src="http://img.ruphp.com/send/f"> .

Ниже приведен код PHP для вашего повторения: – Его взято из http://www.php.net/manual/en/function.mail.php

 <?php // multiple recipients $to = 'aidan@example.com' . ', '; // note the comma $to .= 'wez@example.com'; // subject $subject = 'Birthday Reminders for August'; // message $message = ' <p>Here are the birthdays upcoming in August!</p> '; // To send HTML mail, the Content-type header must be set $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; // Additional headers $headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n"; $headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n"; // Mail it mail($to, $subject, $message, $headers); ?> 

У меня есть этот код, и он отлично работает для моего сайта

  public function forgotpassword($pass,$name,$to) { $body ="<table width=100% border=0><tr><td>"; $body .= "<img width=200 src='"; $body .= $this->imageUrl(); $body .="'></img></td><td style=position:absolute;left:350;top:60;><h2><font color = #346699>PMS Pvt Ltd.</font><h2></td></tr>"; $body .='<tr><td colspan=2><br/><br/><br/><strong>Dear '.$name.',</strong></td></tr>'; $body .= '<tr><td colspan=2><br/><font size=3>As per Your request we send Your Password.</font><br/><br/>Password is : <b>'.$pass.'</b></td></tr>'; $body .= '<tr><td colspan=2><br/>If you have any questions, please feel free to contact us at:<br/><a href="mailto:support@pms.com" target="_blank">support@pms.com</a></td></tr>'; $body .= '<tr><td colspan=2><br/><br/>Best regards,<br>The PMS Team.</td></tr></table>'; $subject = "Forgot Password"; $this->sendmail($body,$to,$subject); } 

почтовая функция

  function sendmail($body,$to,$subject) { //require_once 'init.php'; $from='testing@gmail.com'; $headersfrom=''; $headersfrom .= 'MIME-Version: 1.0' . "\r\n"; $headersfrom .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headersfrom .= 'From: '.$from.' '. "\r\n"; mail($to,$subject,$body,$headersfrom); } 

image url функция используется, если вы хотите изменить изображение, которое у вас есть, изменить только в одной функции, у меня есть много почтовых функций, таких как забытый пароль, создайте пользователя там, где я использую функцию url изображения, которую вы можете прямо установить путь.

 function imageUrl() { return "http://".$_SERVER['SERVER_NAME'].substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], "/")+1)."images/capacity.jpg"; } 

Отправка html-адреса не сильно отличается от отправки обычных сообщений электронной почты с использованием php. Что необходимо добавить, это тип контента по параметру заголовка функции php mail (). Вот пример.

 <?php $to = "toEmail@domain.com"; $subject = "HTML email"; $message = " <html> <head> <title>HTML email</title> </head> <body> <p>A table as email</p> <table> <tr> <th>Firstname</th> <th>Lastname</th> </tr> <tr> <td>Fname</td> <td>Sname</td> </tr> </table> </body> </html> "; // Always set content-type when sending HTML email $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\b"; $headers .= 'From: name' . "\r\n"; mail($to,$subject,$message,$headers); ?> при <?php $to = "toEmail@domain.com"; $subject = "HTML email"; $message = " <html> <head> <title>HTML email</title> </head> <body> <p>A table as email</p> <table> <tr> <th>Firstname</th> <th>Lastname</th> </tr> <tr> <td>Fname</td> <td>Sname</td> </tr> </table> </body> </html> "; // Always set content-type when sending HTML email $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\b"; $headers .= 'From: name' . "\r\n"; mail($to,$subject,$message,$headers); ?> 

Вы также можете проверить здесь более подробные объяснения w3schools

Самый простой способ – это просто использовать Zend Framework или любую другую структуру, такую ​​как CakePHP или Symphony.

Вы можете сделать это и со стандартной функцией mail , но вам потребуется немного больше знаний о том, как прикреплять изображения.

Кроме того, просто размещайте изображения на сервере, а не присоединяйте их. Отправка HTML-почты документируется в документации по функциям mail .

Вы можете легко отправить электронное письмо с содержимым HTML через PHP. Используйте следующий скрипт.

 <?php $to = 'user@example.com'; $subject = "Send HTML Email Using PHP"; $htmlContent = ' <html> <body> <h1>Send HTML Email Using PHP</h1> <p>This is a HTMl email using PHP by CodexWorld</p> </body> </html>'; // Set content-type header for sending HTML email $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; // Additional headers $headers .= 'From: CodexWorld<info@codexworld.com>' . "\r\n"; $headers .= 'Cc: welcome@example.com' . "\r\n"; $headers .= 'Bcc: welcome2@example.com' . "\r\n"; // Send email if(mail($to,$subject,$htmlContent,$headers)): $successMsg = 'Email has sent successfully.'; else: $errorMsg = 'Email sending fail.'; endif; ?> 

Исходный код и демо-версию можно найти здесь – Отправьте красивую электронную почту HTML с помощью PHP

Используйте PHPMailer,

Чтобы отправить HTML-почту, вы должны установить только $ mail-> isHTML (), и вы можете настроить свое тело на теги HTML

Вот хорошо написанный учебник:

rohitashv.wordpress.com/2013/01/19/how-to-send-mail-using-php/

Хитрость заключается в том, чтобы знать идентификатор содержимого части изображения mime при создании части тела html. Это сводится к созданию тега img

https://github.com/horde/horde/blob/master/kronolith/lib/Kronolith.php

Посмотрите на функцию buildMimeMessage для рабочего примера.