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 中阅读更多相关信息。
设置后
$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 中阅读更多相关信息。