Как настроить способ отправки сообщений электронной почты из сценария php mail()

Поэтому я не могу правильно сформулировать вопрос - но я хотел бы знать, как бы вы изменили способ

$Body = "";
$Body .= "Name: "; 
$Body .= $Name;
$Body .= "\n";
$Body .= "City: ";
$Body .= $City;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";

смотрит, когда он достигает моего сообщения электронной почты. Когда я получаю электронное письмо (используя его как форму контакта), я получаю это ->

Name: lloan
City: SomeCity
Email: [removed_email]
Message: Testing

Я попробовал <span> $Body.= "Name: ";</span> и это не сработало - я также попробовал его как $Body.= "<span> Name: </span>"; и снова ничего. Может кто-то указать мне верное направление? Я действительно хочу узнать, как это сделать - я пару раз искал его, но я думаю, что так я формулирую свой вопрос, что не помогал мне.

EDIT: Так что я могу сделать это сейчас - $Body.= "<span>Name: </span>"; используя приведенные ниже предложения о добавлении заголовков, а затем добавляя это к функции mail() - однако, как я могу использовать его в более крупном масштабе? Например - Что делать, если я хочу иметь цветной фон или что нет? Я также могу использовать CSS в такой ситуации? Остальные вопросы на SO не отвечают на это целиком.

3 ответа

Вот как:

$to = '[removed_email]';

$subject = 'Your email subject';

$headers = "From: [removed_email] \r\n";
$headers .= "Reply-To: [removed_email] \r\n";
$headers .= "CC: [removed_email]\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

$message = 'Put your html message here';
$message .= "<b>HTML feature is now enabled</b>";
$message .= "<table border="1"><tbody><tr><td>Hello</td><td>World</td></tr></tbody></table>";
$message .= "For the styling, you can use inline styling:";
$message .= "<span>This is red color</span>";
mail($to,$subject,$message,$headers,$parameters);

Самая важная часть ответа на ваш вопрос - вот эта строка:

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

Это указывает системе на создание электронной почты в формате HTML.

Надеюсь это поможет


В функции почты добавьте такие заголовки параметров, как это:

$ headers = 'MIME-Version: 1.0'. "\ Г\п"; $ headers. = 'Content-type: text/html; charset = iso-8859-1 '. "\ Г\п";

и вызовите функцию почты следующим образом:

mail ($ to, $ subject, $ Body, $ headers)

Если вы хотите отформатировать свое сообщение (содержимое переменной $ Body), вы можете использовать столько HTML, сколько хотите.


Если вы хотите отправить HTML-письмо, вам также нужно отправить текстовую версию, так как не все почтовые клиенты поддерживают HTML, а некоторые почтовые системы специально разделяют версии HTML.

Это означает, что вам нужен заголовок Content-type:multipart и несколько разделов с собственными заголовками, каждый из которых ограничен определенной границей. Фактический формат - это код, поэтому используйте библиотеку, такую как swiftmail или PHPMailer

licensed under cc by-sa 3.0 with attribution.