Reputation: 2037
After set
$test->getSwiftMessage()->setEncoder(\Swift_Encoding::get8BitEncoding());
to my mails, there a mysterious line breaks inside the incoming mails.
Example before:
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.
And after setting 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.
Here's my full code to send mails:
$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('[email protected]');
// UTF-8 setzen
$test->getSwiftMessage()->getHeaders()->setCharset('utf-8');
$test->getSwiftMessage()->setCharset('utf-8');
$result = $test->send();
It's a very strange behaviour, because when I remove the one line, the line breaks disappear.
What can I do to have my mails 8bit encoded and without that unnecessary line breaks?
Upvotes: 1
Views: 480
Reputation: 25312
It is not a strange behavior, swiftmailer will use Quoted-Printable
encoding format to send your email, and QP requires that encoded lines be no more than 76 characters long.
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.
Read more about this in RFC 1341.
Upvotes: 1