-3

我正在创建一个注册表单,当您提交它时会向您发送一封确认电子邮件。我希望我的电子邮件不仅仅是文本。

我不知道如何执行此操作或从哪里开始我试图搜索这个,我没有正确的关键字,因为什么都没有出现。我尝试添加 html 标签和样式,但它只是作为原始文本出现。

帮助?

$to      = 'user@gmail.com';
$subject = '2014 Comfirmation';
$message = "<h1>Test Header<h1>\r\n
<img src=\"http://www.image.com/_newSite/img/logo.jpg\"/>
<p style='border:solid thin red'>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc malesuada dui a dictum blandit. Suspendisse commodo tincidunt diam. Duis orci tellus, imperdiet et vestibulum vitae, aliquet sit amet velit. Aenean a massa eu neque interdum viverra. Donec interdum arcu neque, ac egestas lectus mattis a. Duis nec dictum mauris. In eget facilisis nibh. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aenean ac leo ut mauris aliquet gravida eget eu magna. Mauris ullamcorper sagittis risus, eu molestie mi iaculis eu. Proin ut elementum risus. Vivamus rhoncus ipsum elit, in ultrices quam elementum et.</p>

Line 2\r\n


Line 3


";

$headers = 'From: from@gmail.com' . "\r\n" .
    'Reply-To: from@gmail.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70, "\r\n");

// Send
@mail($to, $subject, $message, $headers);
4

2 回答 2

0

您需要Content-type在电子邮件标题中添加正确的:

$headers = 'MIME-Version: 1.0' . "\r\n" .
           'Content-type: text/html; charset=iso-8859-1' . "\r\n" .
           'Reply-To: fake@gmail.com' . "\r\n" .
           'X-Mailer: PHP/' . phpversion();

默认情况下,邮件客户端会将邮件视为文本,除非该邮件明确指定应将其视为 HTML。现在,让 HTML 变得漂亮是完全不同的事情。另请注意,HTML 邮件更有可能被过滤器视为垃圾邮件。作为一般建议,不要过度使用样式。少即是多。

于 2013-10-17T15:54:13.600 回答
0

我个人建议使用 PHPMailer 之类的库来处理 HTML 电子邮件,因为如果您还想做电子邮件附件,那么祝您mail();在 PHP 中使用原生代码好运

附带说明:

众所周知,HTML 电子邮件很难正确处理,因为 Yahoo 和 GMAIL 等各种邮件服务都有一个解析算法来删除潜在的恶意代码。

邮件

  • 不能使用内部样式表
  • 解析可能会遇到随机字符,并且会删除整个内联样式,例如padding-left:10px;

雅虎

  • 支持内部样式表,但很有可能搞砸
  • 解析可能会遇到随机字符,并且会删除整个内联样式,例如padding-left:10px;

外表

  • 除非客户端出于安全原因禁用了 HTML 电子邮件,否则似乎可以很好地处理样式表和内联样式
于 2013-10-17T16:01:32.033 回答