gpt4 book ai didi

php - 使用 Swift Mailer 时,如何控制邮件的文本/纯文本版本中的换行符?

转载 作者:搜寻专家 更新时间:2023-10-31 22:08:05 24 4
gpt4 key购买 nike

我使用的是 Swift Mailer(版本 4.1.7,这对本主题来说应该无关紧要),我有一个非常基本的问题。

“现代”电子邮件通常会重复两次内容——一次是 HTML,大多数人在他们喜欢的基于浏览器的邮件阅读应用程序中阅读,另一次是纯文本,供那些使用旧阅读器或简单阅读器的人使用。在 Swift 中,很容易创建两个版本,如下所示:

$message->setBody($plaintextMessage, 'text/plain');
$message->addPart($htmlMessage, 'text/html');

我遇到的问题是我的纯文本消息(上面的 $plaintextMessage)被分成多行,同时忽略了 $plaintextMessage 中已经存在的换行符。如果消息中没有换行符,这是合适的。例如,如果我这样喂它:

$plaintextMessage = 'This is a long-ish line, which we expect to be broken after about 72 characters.  It is a good behavior, appropriate in most instances.';

然后我明白了:

This is a long-ish line, which we expect to be broken after about 72 cha=
racters. It is a good behavior, appropriate in most instances.

这很好,符合预期,等等。 但是,如果我这样做:

$plaintextMessage = implode("\n", array('This is a series',
'of short lines',
'which should not be broken.',
'They include their own',
'newlines, which should be respected',
'and preserved'));

那么消息中已经有完美的换行符了。不幸的是,Swift 似乎忽略了它们并输出了这个:

This is a series
of short lines
which should not be broke=
n.
They include their own
newlines, which should be respecte=
d
and preserved

当然,我知道现代邮件程序会删除额外的换行符和等号,但是拥有纯文本消息版本的全部意义在于使用不理解此语法的旧邮件程序的人应该仍然能够在没有太多丑陋的情况下阅读邮件。

这是 Swift 中的设置吗?到目前为止,我唯一想做的就是将行长度设置为非常高的字符数(比我的消息长)作为解决方法,从而防止 Swift 进行任何类型的换行。然而,在我看来,Swift 每次在消息中发现换行符时都应该将其字符数重置为零。是否有可能诱发这种行为?

最佳答案

计算软换行的行长时不考虑文本中现有的硬换行。这是用 pull request on Swiftmailer 5.x last year 改变的.

关于php - 使用 Swift Mailer 时,如何控制邮件的文本/纯文本版本中的换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15674614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com