symfonyからmailを送る
symfony generate:task hoge:fuga
で lib/task 以下に、hogeFugaTask.class.phpが作成される。このテンプレートを編集する。
タスクを実行する際は、
symfony hoge:fuga
で実行できる。
メールを送るタスクのサンプル。
addOptions(array( new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name'), new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev'), // add your own options here )); $this->namespace = 'hoge'; $this->name = 'fuga'; $this->briefDescription = ''; $this->detailedDescription = <<getMailer(); $message = Swift_Message::newInstance() ->setFrom('hoge@example.com') ->setTo('fuga@example.com') ->setSubject('test') ->setBody('test test'); $mailer->sendNextImmediately() ->send($message); } }
エラーが出たのでめも。
Connection could not be established with host localhost [Connection refused #61]
これは、smtpサーバが上がっていないため。
試している環境がmacだったので、
sudo postfix start
で、smtpサーバを起動する。smtpサーバがあがってるかどうかは、
telnet localhost 25
のようにtelnetで接続してみると確認できる。
linuxなどでは、postfixをインストールするなり、sendmailの設定をいじるなりする必要がありそう。
ここまでいじって、ようやくメールが送信されたことを確認。
TODO?
以下、参考にしたページのめも
symfony 1.x legacy website
symfony1.2でカスタムタスクを作成してみる - アシアルブログ
symfonyのjpMailPlugin(メール送信プラグイン)の使い方のまとめ - アシアルブログ
dfltweb1.onamae.com – このドメインはお名前.comで取得されています。
symfony 1.x legacy website
Macで開発用SMTPサーバを立てたい - 英語とプログラミング気まぐれ日記