簡體   English   中英

發送郵件時,Laravel為什么用“ = 09”字符串替換制表符?

[英]Why does Laravel replace a tab by a “=09” string when sending mails?

我正在使用以下代碼在Laravel中發送郵件:

\Mail::send('emails.mailing', $data,
    function ($message) use ($user) {
        $message
          ->to($user->email, $user->first_name)
          ->subject('some nice subject');
});

emails / mailing.blade.php文件包含帶有許多選項卡的html,以使語法更好地進行編碼,但是,當我查看收到的電子郵件的來源時,所有選項卡都由“ = 09”字符串替換。

是什么原因造成的,我該如何解決?

編輯:一個imo好的解決方案是在發送郵件之前刪除所有標簽。 我該怎么做?

= 09是制表符的帶quoted-printable編碼(請參閱RFC1521 。)Zach Alam 在他的博客中建議告訴它使用8位編碼器,而不是默認的(QP)編碼器:

$message->setEncoder(Swift_Encoding::get8BitEncoding());

在您的代碼上下文中,可以通過以下方式完成此操作:

\Mail::send('emails.mailing', $data,
    function ($message) use ($user) {
        $message
          ->setEncoder(Swift_Encoding::get8BitEncoding())
          ->to($user->email, $user->first_name)
          ->subject('some nice subject');
});

對於您的修改問題,您可以在發送郵件之前,從郵件中刪除所有標簽:

$message_in_your_emails_mailing_view = str_replace(chr(9), '', $message_in_your_emails_mailing_view);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM