2

我正在通过 PHP 的 mail() 函数发送电子邮件。在消息中,我设置了一个如下所示的链接:

$message = "<a href='". $link. "'>" .$title. "</a>\n\n";

但是,当收到电子邮件时,电子邮件正文会显示 html 代码而不是标题作为超链接。我对html电子邮件不是很熟悉。我怎样才能实现我想要得到的东西?

4

3 回答 3

11

尝试添加一个标头,以便邮件客户端不相信它是纯文本:

$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

请参阅PHP 邮件功能手册

Example #4 发送 HTML 电子邮件

<?php
// multiple recipients
$to  = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';

// subject
$subject = 'Birthday Reminders for August';

// message
$message = '
<html>
<head>
  <title>Birthday Reminders for August</title>
</head>
<body>
  <p>Here are the birthdays upcoming in August!</p>
  <table>
    <tr>
      <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
    </tr>
    <tr>
      <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</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";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?>
于 2013-03-29T21:32:24.690 回答
3

Please see the documentation for PHP mail() at http://php.net/manual/en/function.mail.php

You need to specify a Content Type of HTML in your function.

// 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";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);

Although it's generally recommended to avoid using mail() alone.

You should consider using PHPMailer, for example.

于 2013-03-29T21:34:23.513 回答
1

您必须告诉电子邮件客户端电子邮件中有一个 HTML 部分。我建议使用Swiftmailer之类的东西来完成这项工作,而不是自己做所有事情。

于 2013-03-29T21:32:48.783 回答