发送带有样式和格式的电子邮件

时间:2011-04-18 04:59:02

标签: php

  

可能重复:
  Php mail: how to send html?
  formatting email in php?

我正在使用PHP发送电子邮件,如下所示:

    $to = $emailAddress;
    $subject = "qwerty";
    $message = "foo" . PHP_EOL . "bar";                           
    $headers = 'From: "asdf" <email@email.com>';    
    mail($to, $subject, $message, $headers);

当我尝试将HTML代码放入消息中时,它只是将实际的HTML作为明文发送。这让我想问 - 我如何格式化电子邮件,因为我可以格式化网页?

3 个答案:

答案 0 :(得分:4)

确保您为text / html设置标题,如下所示:

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

有关完整示例,请参阅PHP手册中的Example #4

答案 1 :(得分:1)

要为您的电子邮件添加样式,首先需要添加jmort253所提及的标题,如下所示:

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

将此添加到您的标题后。您可以在实际消息中进行样式设置,即:

$message = "<html><body><h1>Welcome</h1><p>Thanks for the email</p></body></html>";

确保您使用内联CSS或将其放在标题中,不要将其放在外部CSS文件中。对于图像,您需要包含服务器的完整路径,以便客户端邮件应用程序可以在Web上找到图像。

希望这有帮助。

答案 2 :(得分:0)

我建议不要重新发明轮子。而是使用phpmailer class或类似的东西。将解决许多其他即将出现的问题:)