如何自定义从php mail()脚本发送的电子邮件的方式

时间:2013-07-03 23:19:14

标签: php html contact-form

所以我似乎无法正确地说出这个问题 - 但我想知道你将如何改变这个方式

$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: some@email.com
Message: Testing

我尝试了<strong> $Body .= "Name: ";</strong>但是没有用 - 我也尝试了$Body .= "<strong> Name: </strong>";而且没有尝试过。谁能指出我正确的方向?我真的想学习如何做到这一点 - 我已经用Google搜索了几次,但我认为这就是我写问题的方式并没有帮助我。

编辑:所以我现在可以这样做 - $Body .= "<strong>Name: </strong>";使用以下建议添加标题然后将其添加到mail()函数 - 但是,我该如何在规模更大?例如 - 如果我想要有彩色背景或者没有彩色背景怎么办?我是否也能在这种情况下使用CSS?关于SO的其他问题并没有全部回答这个问题。

3 个答案:

答案 0 :(得分:1)

在mail函数中添加如下参数标题:

$ headers ='MIME-Version:1.0'。为 “\ r \ n” 个; $ headers。='Content-type:text / html; charset = iso-8859-1'。为 “\ r \ n” 个;

并像这样调用邮件功能:

邮件($ to,$ subject,$ Body,$ headers)

如果您想格式化邮件(变量$ Body的内容),您可以随意使用尽可能多的HTML。

答案 1 :(得分:1)

以下是:

$to = 'yourmailtarget@example.com';

$subject = 'Your email subject';

$headers = "From: abc@abc.com \r\n";
$headers .= "Reply-To: no-reply@abc.com \r\n";
$headers .= "CC: abc@abc.com\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<br>';
$message .= "<b>HTML feature is now enabled</b><br>";
$message .= "<table border="1"><tr><td>Hello</td><td>World</td></tr></table>";
$message .= "For the styling, you can use inline styling:<Br>";
$message .= "<span style='color:#FF0000;'>This is red color</span>";
mail($to,$subject,$message,$headers,$parameters);

回答你问题最重要的部分是这一行:

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

告诉系统使用HTML格式生成电子邮件。

希望这有帮助

答案 2 :(得分:0)

如果您想发送HTML电子邮件,您还需要发送纯文本版本,因为并非所有邮件客户端都支持HTML,而某些邮件系统专门删除HTML版本。

这意味着您需要一个Content-type:multipart标头,以及带有自己标头的多个部分,每个部分都由特定边界分隔。实际格式为引用复杂,因此请使用swiftmailPHPMailer

等库