我在发送邮件时遇到了Swiftmailer的问题,有时我收到的内容已完全损坏(HTML已剥离)。
我的软件发送了很多电子邮件,这个事情几乎每天都会发生,但我们无法获取任何日志,因为我们使用Yii作为我们的主要框架并且它没有显示任何错误(我们使用日志跟踪工具,主体始终是HTML而没有任何错误。)
最糟糕的是,我们更改了Swiftmailer中的一些代码,以便在msgHTML()方法上使用默认的strip_tags之前断行,以改进普通/文本部分。所以真正的问题是用户没有查看普通部分,但HTML被剥离,造成很多麻烦。
只是观察,我们使用中继通过smtp发送(端口25并且没有身份验证)。
Swiftmailer的变化:
public function MsgHTML($body) {
$this->body = $body;
if ($this->altBody == null) {
$this->altBody = str_replace('<br />', '<br />' . PHP_EOL, $this->body);
$this->altBody = str_replace('</p>', '</p>' . PHP_EOL, $this->altBody);
$this->altBody = strip_tags($this->altBody);
}
return $this;
}
发送的HTML:Link