-2

使用标签时的 PHP 邮件发送问题,它没有换行。这是我的代码有同样的问题

$subject = 'Watch Out Our Colorful Web Design Presentation';
$headers = "From: " . $email . " \r\n";
$headers .= "Reply-To: ". $email . "\r\n";
$headers .= "Bcc: test@test.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

$message = "Watch Out Our Colorful Web Design Presentation.\r\n";
$message .= "<a href='http://www.stackoverflow.com'>CLICK HERE</a>\r\n";
mail($to, $subject, $message, $headers);    

邮件发送成功,但在 \r\n 中出现问题。它不需要换行。我也试过 br 标签。但它进入垃圾邮件。

4

3 回答 3

2
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

您正在发送 HTML 电子邮件。这意味着您应该使用 HTML 而不是换行符。为避免将您的电子邮件放入垃圾文件夹,您应该阅读有关该主题的许多 Stackoverflow 主题中的一些。

于 2012-09-24T12:33:25.043 回答
2

您必须<br>为新行使用标签。

您不能\n用于 html 打印的换行符。

https://bugs.php.net/bug.php?id=9542

于 2012-09-24T12:34:59.767 回答
0

<br />正如其他人所说,如果您发送电子邮件时需要使用 HTML 换行符Content-Type: text/html。换行符/回车符将在消息源中被解释为换行符,但它们可能不会呈现为 HTML。

从 PHP 发送电子邮件时,我总是建议使用电子邮件类而不是 PHP 的本机邮件函数。

我倾向于使用SwiftMailer。它的优点是所有邮件标头都经过清理和转义,以避免标头注入漏洞,这些漏洞可能会通过您的脚本引发垃圾邮件。此外,使用各种电子邮件传输更容易。还有一个很棒的装饰器插件,它可以发送数千条带有自定义字符串的消息,对于执行“亲爱的 {first_name} {surname}”或自定义取消订阅/跟踪链接等操作很有用。

这是 SwiftMailer 的一些示例代码,以防您有兴趣...

// START SWIFTMAILER
require_once($swiftmailer_path);
$swift_transport = Swift_SendmailTransport::newInstance($sendmail_cmd);
$swift = Swift_Mailer::newInstance($swift_transport);
$swift_msg = Swift_Message::newInstance($swift_transport);
$swift_msg->setMaxLineLength(150);
$swift_msg->setFrom( array('NoReply@domain.com' => 'MyWebsiteName'));
$swift_msg->addTo($user);
$swift_msg->setSubject($subject);
$swift_msg->setBody($msg_html, 'text/html');
$swift_msg->addPart($msg_txt, 'text/plain');

// SEND E-MAIL
if ($swift_result = $swift->send($swift_msg)) {
    // SENT SUCCESSFULLY
} else {
    // ERROR - E-MAIL NOT SENT
}
于 2012-09-24T14:17:41.513 回答