我们使用 CodeIgniter (v1.7) 和 PHPMailer (v5.1) 从 PHP 以纯文本形式发送电子邮件。当前的生产设置使用便宜的 SMTP 中继,计划切换到 CritSend 或 SendGrid。我们现在正在从 Rackspace 云服务器测试这些选项。
当我们使用 SendGrid SMTP 时,emials 中的所有“\r\n”换行符最终都会加倍,因此最终会变成“\r\n\r\n”。
使用 CritSend SMTP 和其他两个 SMTP 服务器时一切正常。
SendGrid 技术支持人员认为这与他们的系统没有任何关系,但听说过另一个有同样问题的客户端,显然它通过客户端的配置更改得到了解决。
有人经历过吗?
这对我们来说并不重要,因为 CritSend 运行良好,并且在功能上看起来与 SendGrid 一样好,所以我们将使用它们。但是作为一个好奇的类型,我不能放手:-)
通常设置:PHP 脚本 -> sendmail/Postfix -> 外部 SMTP 中继 -> ....
为了测试不同的 SMTP 中继,我更改了后缀配置,只有 SendGrid 提供了额外的换行符,所有其他 SMTP 选项都可以正常工作。如果我通过 CodeIgniter 电子邮件类调试功能转储电子邮件,它在进入后缀之前看起来很好。
备用设置:PHP 脚本(CI 邮件类或 PHPMialer)-> 外部 SMTP 中继 -> ....
为了测试不同的 SMTP 中继,我更改了 CI 电子邮件配置或 PHPMialer 配置中的 SMTP 设置。只有 SendGrid 提供额外的换行符,所有其他 SMTP 选项都可以正常工作。
据我所知,没有那么多选择可以玩。我尝试了“utf-8”和“ISO-something or other”,我们这边的所有换行符都是“\r\n”......在某处看起来像是一些非常模糊的错误。
有任何想法吗?