2016-03-23 10 views
4

私は開発環境のsymfonyアプリケーションでドッカーコンテナ経由で電子メールを送信しようとしています。ドコントコンテナメールサーバ経由でSymfonyで電子メールを送信

私は、次のドッキングウィンドウ・コンファイルしている:私はドッキングウィンドウ・作曲アップを実行したときに

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/ 

だから、私のコンテナがうまく起動され、私はそのログを見ることができます。

が、私は私のparameters.ymlでtvial /ドッキングウィンドウ、メールサーバ

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

の公式レポからreccomandationsに続く、私は、これらのオプション

parameters: 
    ... 
    mailer_transport: smtp 
    mailer_host: mail.myapp.dev 
    mailer_user: [email protected] 
    mailer_password: user1pass 
    ... 

しかしとき私はswiftmailerを介して電子メールを送信、私はそれらのいずれかが到着するのを見ることができません:(

delivery_addressをパラメタ化して(dev envのすべてのメールが自分のアドレスに送信されるように)

Telnet経由でメールを送信するためにしかし、私の成功:

telnet mail.myapp.dev smtp 

そして私はメールが到着し確認することができます。

誰かが私が逃してきたことの手がかりを持っていますか?私は成功を経由してメールを送信する:ここで

は私のPHPコードは、これは奇妙になっている電子メールの送信(私はコマンドによ)

$mailer = $this->getContainer()->get('mailer'); 
$message = new \Swift_Message('subject', 'body'); 
$message 
    ->setFrom('[email protected]') 
    ->setTo('[email protected]') 
; 

$mailer->send($message); 

EDIT 2

である

EDITコマンドインターフェイス:

php app/console swiftmailer:email:send [email protected] [email protected] --subject=s1 --body=b1 

しかし、私自身のコマンドではまだできません:\

+0

私は[ロギングを有効にする](http://symfony.com/doc/current/reference/configuration/swiftmailer.html#full-default-configuration)し、ボンネット内で何が起きるのかを確認します。 –

+0

ロギングをtrueに設定しましたが、dev.logにはメールに関しては何も表示されません – jiboulex

+0

dev env https://mailcatcher.me/のようなモックメーラーの使用をお勧めします – ivoba

答えて

2

私は間違ったことを理解しました。私のドッカーコンテナはsymfonyのアプリケーションでうまく動作します。 私のコマンドでは、終了前にexit()を実行したので、send mailイベントを捕まえる予定のeventListenerは決してトリガーされませんでした。

exit()(テスト目的でそこにあった)を削除したところ、すべて正常に機能しました。

関連する問題