Contao> 4.3在某些提供程序上发送带有sendmail的电子邮件会引发错误

问题描述

Contao的较旧版本(直到4.3)可以通过sendmail发送电子邮件,按预期方式工作。 升级到Contao 4.9后,我在诸如1u1 / ionos或mittwald的提供程序中遇到了一些错误。

日志中的错误听起来像:

“预期的响应代码为220,但响应为空”

从服务器的CLI发送邮件(意味着如果通过SSH登录,则表示发送邮件的工作方式与预期的一样:sendmail test” |

/ usr / sbin / sendmail -t -v -f sender@domain.com reciepient@otherOne.com

解决方法

解决方案是将其添加到 config / config.yml

swiftmailer:
  default_mailer: default
  mailers:
    default:
      url: '%env(MAILER_URL)%'
      transport: sendmail
      command: '/usr/sbin/sendmail -t -i'

然后,清除Contao缓存(例如,通过contao-manager.phar)并尝试一下。

该问题的原因是,默认情况下,swiftMailer使用sendmail -bs作为命令,这意味着sendmail作为standalone服务运行。 根据提供者配置它的sendmail的方式,这将是导致错误的原因。

,

如果将symfony/swiftmailer-bundle更新为版本 3.5.0 ,则将从PHP配置中读取用于sendmail命令的默认值。参见https://github.com/symfony/swiftmailer-bundle/pull/302

因此,只要您的托管环境的PHP配置在sendmail_path中包含正确的命令,发送电子邮件就可以正常进行。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...