-2

タグ使用時のPHPメール送信不具合、改行しません。HEREは同じ問題を抱えている私のコードです

$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

<br>改行にはタグを使用する必要があります。

\nHTML 印刷の改行には使用できません。

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

于 2012-09-24T12:34:59.767 に答える
2
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

HTML メールを送信しています。つまり、改行の代わりに HTML を使用する必要があります。メールがジャンク フォルダに入れられないようにするには、この件名に関する多くの Stackoverflow トピックのいくつかを読む必要があります。

于 2012-09-24T12:33:25.043 に答える
0

<br />他の人が言ったように、で電子メールを送信する場合は、HTML の改行を使用する必要がありますContent-Type: text/html。改行/改行は、メッセージのソースでは改行として解釈されますが、おそらく HTML としてレンダリングされません。

PHP から電子メールを送信するときは、PHP のネイティブ メール関数ではなく、電子メール クラスを使用することを常にお勧めします。

私はSwiftMailerを使用する傾向があります。すべてのメール ヘッダーがサニタイズされてエスケープされるため、スクリプトを介してスパムを発生させる可能性のあるヘッダー インジェクションの悪用を回避できるという利点があります。また、さまざまな電子メール トランスポートを使用する方が簡単です。カスタマイズされた文字列を含む何千ものメッセージを送信できる優れたデコレータ プラグインもあります。これは、「Dear {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 に答える