Как отправить электронное письмо в формате HTML с помощью PHP? Я хочу иметь страницу с некоторыми настройками и вывод HTML, который отправляется по электронной почте на адрес. Что мне делать? Основная проблема заключается в прикреплении файлов. Как я могу это сделать?
Отправить HTML-сообщение по электронной почте через PHP?
Ответ 1
Это довольно просто, оставьте изображения на сервере и отправьте им PHP + CSS...
$to = '[email protected]';
$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: [email protected]\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";
Вот ссылка, в которой я получил информацию.. (ссылка...)
Вам понадобится безопасность, хотя...
Ответ 2
Вам нужно закодировать свой html, используя абсолютный путь для изображений. По Абсолютному пути означает, что вы должны загружать изображения на сервере и в атрибуте src
изображений, которые вы должны указать прямому пути, подобному этому <img src="http://yourdomain.com/images/example.jpg">
.
Ниже приведен код PHP для вашего повторения: - Его взято из http://www.php.net/manual/en/function.mail.php
<?php
// multiple recipients
$to = '[email protected]' . ', '; // note the comma
$to .= '[email protected]';
// 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 <[email protected]>, Kelly <[email protected]>' . "\r\n";
$headers .= 'From: Birthday Reminder <[email protected]>' . "\r\n";
// Mail it
mail($to, $subject, $message, $headers);
?>
Ответ 3
У меня есть этот код, и он отлично работает для моего сайта
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:[email protected]" target="_blank">[email protected]</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='[email protected]';
$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);
}
Функция url изображения используется, если вы хотите изменить изображение, которое у вас есть, изменилось только в одной функции. У меня есть много почтовых функций, таких как забытый пароль. Создайте пользователя, чтобы я использовал функцию url изображения, которую вы можете прямо установить.
function imageUrl()
{
return "http://".$_SERVER['SERVER_NAME'].substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], "/")+1)."images/capacity.jpg";
}
Ответ 4
Отправка html-адреса не сильно отличается от отправки обычных электронных писем с использованием php. Что необходимо добавить, это тип контента по параметру заголовка функции php mail(). Вот пример.
<?php
$to = "[email protected]";
$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
Ответ 5
Простейшим способом, вероятно, является использование Zend Framework или любой другой структуры, такой как CakePHP или Symphony.
Вы можете сделать это со стандартной функцией mail
, но вам потребуется немного больше знаний о том, как прикреплять изображения.
Кроме того, просто размещайте изображения на сервере, а не присоединяйте их. Отправка HTML-почты документируется в документации по функциям mail
.
Ответ 6
Вы можете легко отправить электронное письмо с содержимым HTML через PHP. Используйте следующий script.
<?php
$to = '[email protected]';
$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<[email protected]>' . "\r\n";
$headers .= 'Cc: [email protected]' . "\r\n";
$headers .= 'Bcc: [email protected]' . "\r\n";
// Send email
if(mail($to,$subject,$htmlContent,$headers)):
$successMsg = 'Email has sent successfully.';
else:
$errorMsg = 'Email sending fail.';
endif;
?>
Исходный код и живая демонстрация можно найти здесь - Отправить красивую электронную почту HTML с помощью PHP
Ответ 7
Использовать PHPMailer,
Чтобы отправить HTML-почту, вы должны установить только $mail- > isHTML(), и вы можете установить свое тело с помощью HTML-тегов
Вот хорошо написанный учебник:
rohitashv.wordpress.com/2013/01/19/how-to-send-mail-using-php/
Ответ 8
Хитрость заключается в том, чтобы знать идентификатор содержимого части изображения mime при создании части тела html. Это сводится к созданию тега img
https://github.com/horde/horde/blob/master/kronolith/lib/Kronolith.php
Посмотрите на функцию buildMimeMessage для рабочего примера.