Swiftmail不发送邮件但没有错误,docker容器上的symfony

时间:2019-05-23 09:15:11

标签: symfony docker symfony4 swiftmailer mjml

我正在docker容器上的symfony项目上,我设置了一个Mailer服务,该服务使用swiftmailer和notfloran/mjml-bundle发送邮件。 mjml bndle需要使用npm install mjml安装在容器上的mjml二进制文件。 在代码中:

$mail = new \Swift_Message();
$mail
     ->setFrom($from)
     ->setTo($to)
     ->setSubject($subject)
     ->setBody($body)
     ->setContentType('text/mjml');
$this->mailer->send($mail);

问题是,当我请求通过docker容器发送邮件的功能时,没有错误,但没有发送邮件。 但是,当我使用php -S adress -t public启动服务器并请求发送邮件的功能时,邮件将被发送。

编辑:我试图记录进程。在日志中有一个mjml binary not found,但是当我在容器中输入时,mjml命令有效

1 个答案:

答案 0 :(得分:0)

在这种情况下,SwiftMailer有点难以调试。我有一个类似的人。

如果您使用的是docker,则必须确保已设置并配置了电子邮件客户端,以便php可以使用它。

我正在使用php:7.4-fpm并通过自己的dockerfile添加msmtp

FROM php:7.4-fpm

RUN apt-get update && apt-get install -y msmtp 

# msmtp - mailer
COPY build/etc/msmtprc /etc/msmtprc
RUN chmod 600 /etc/msmtprc

msmtprc文件:

account default
host mailhost.mobilcom.de
port 25
auth off
user null
password null
from "docker@klarmobil.de"
logfile /var/log/msmtp.log

并添加到php.ini:

sendmail_path = /usr/bin/msmtp -t

然后重试向您发送邮件