SwiftMailer:setEncoder() 后奇怪的换行符

SwiftMailer: weird line breaks after setEncoder()

设置后

$test->getSwiftMessage()->setEncoder(\Swift_Encoding::get8BitEncoding());

对于我的邮件,收到的邮件中有一个神秘的换行符。

之前的例子:

Hinweis zum 360° Feedback:
Das 360° Feedback ist ein Instrument zur praxisnahen und strukturierten Einschätzung von Management- und Führungskompetenzen aus unterschiedlichen Perspektiven (Vorgesetzte, Kollegen, Mitarbeiter und int./ext. Kunden). Die Vielfalt der Perspektiven vermittelt den Feedbackempfängern ein klares Bild ihrer persönlichen Stärken und Entwicklungspotenziale, aus der Sicht der ausgewählten Feedbackgeber.

设置后addEncoder():

Hinweis zum 360° Feedback:
Das 360° Feedback ist ein Instrument zur praxisnahen und strukturierten 
Einschätzung von Management- und Führungskompetenzen aus unterschiedlichen 
Perspektiven (Vorgesetzte, Kollegen, Mitarbeiter und int./ext. Kunden). Die 
Vielfalt der Perspektiven vermittelt den Feedbackempfängern ein klares Bild 
ihrer persönlichen Stärken und Entwicklungspotenziale, aus der Sicht der 
ausgewählten Feedbackgeber.

这是我发送邮件的完整代码:

$test = Yii::$app->mailer->compose(['text' => 'text_mail'], ['content' => $content])
            ->setCharset('utf-8')
            ->setFrom('xxx')
            ->setTo($to)
            ->setSubject($subject);

        if ($priority == 1) {
            $test->getSwiftMessage()->setPriority(2);
        }
        if ($sensitivity != "") {
            $test->getSwiftMessage()->getHeaders()->addTextHeader('Sensitivity', $sensitivity);
        }

        // die Mail ID in den Header setzen
        $test->getSwiftMessage()->getHeaders()->addTextHeader('transaction_id', $mail_id);
        $test->getSwiftMessage()->setEncoder(\Swift_Encoding::get8BitEncoding());

        // Bounce-Adresse setzen
        $test->getSwiftMessage()->setReturnPath('bouncedb@test.com');

        // UTF-8 setzen
        $test->getSwiftMessage()->getHeaders()->setCharset('utf-8');
        $test->getSwiftMessage()->setCharset('utf-8');

        $result = $test->send();

这是一个非常奇怪的行为,因为当我删除一行时,换行符就消失了。

如何使我的邮件进行 8 位编码并且没有不必要的换行符?

这不是什么奇怪的行为,swiftmailer 将使用 Quoted-Printable 编码格式来发送您的电子邮件,QP 要求 编码的行长度不超过 76 个字符 .

Rule #5 (Soft Line Breaks)

The Quoted-Printable encoding REQUIRES that encoded lines be no more than 76 characters long. If longer lines are to be encoded with the Quoted-Printable encoding, 'soft' line breaks must be used. An equal sign as the last character on a encoded line indicates such a non-significant ('soft') line break in the encoded text.

RFC 1341 中阅读更多相关信息。