通过Docker容器邮件服务器在Symfony中发送电子邮件

我试图通过我的symfony应用程序在开发环境中的docker容器发送电子邮件。

我有以下docker-compose文件:

my-app-mailer: image: tvial/docker-mailserver container_name: my_app_mailer hostname: mail domainname: myapp.dev ports: - "25:25" - "143:143" - "587:587" - "993:993" volumes: - ./mail/spamassassin:/tmp/spamassassin/ - ./mail/postfix:/tmp/postfix/ 

所以当我运行docker-compose时,我的容器已经启动,我可以看到它的日志。

我跟着从tvial / docker-mailserver的官方回购的reccomandations

https://hub.docker.com/r/tvial/docker-mailserver/

在我的parameters.yml中,我有这些选项

 parameters: ... mailer_transport: smtp mailer_host: mail.myapp.dev mailer_user: user1@myapp.dev mailer_password: user1pass ... 

但是,当我通过swiftmailer发送电子邮件时,我看不到他们中的任何一个到达:(

我已经参数了delivery_address我的(所以每个邮件在开发环境都发送到我的地址)。

但是,我成功通过telnet发送邮件:

 telnet mail.myapp.dev smtp 

我可以看到邮件到达。

有没有人知道我失踪的线索?

编辑

这是我的PHP代码与电子邮件发送(我在一个命令)

 $mailer = $this->getContainer()->get('mailer'); $message = new \Swift_Message('subject', 'body'); $message ->setFrom('user1@myapp.dev') ->setTo('xxxx@xxx.xx') ; $mailer->send($message); 

编辑2

这是变得越来越怪异:我成功通过命令接口发送邮件:

 php app/console swiftmailer:email:send --from=test@myapp.dev --to=xxx@xxx.xx --subject=s1 --body=b1 

但仍然无法通过我自己的命令:\

好吧,我明白我做错了什么。 我的docker集装箱与我的symfony应用程序正常工作。 只是在我的命令中,我在结束之前执行了一个exit(),所以应该捕获发送邮件事件的eventListener从未被触发。

当我删除我的退出()(这是出于testing目的)一切正常。