我通过PHP的mail()函数发送电子邮件。在消息中,我设置了一个如下所示的链接:
$message = "<a href='". $link. "'>" .$title. "</a>\n\n";
然而,当收到电子邮件时,电子邮件正文显示html代码而不是标题作为超链接。我对html电子邮件不是很熟悉。我怎么能实现我想要的目标呢?
答案 0 :(得分:7)
尝试添加标题,以便邮件客户端不相信它是纯文本:
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
示例#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);
?>
答案 1 :(得分:3)
请参阅http://php.net/manual/en/function.mail.php
上的PHP mail()文档您需要在函数中指定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);
虽然通常建议单独避免使用mail()。
例如,您应该考虑使用PHPMailer。
答案 2 :(得分:1)
您必须告诉电子邮件客户端电子邮件中有HTML部分。我推荐像Swiftmailer之类的东西来做这项工作而不是自己做所有事情。