我使用
swiftmailer从我的symfony2.2项目发送邮件.有没有办法在全球范围内记录所有电子邮件信息并发送结果?
如果mailer send()方法具有触发somę事件,那将是很好的,但我看不到它.
服务:
原文链接:https://www.f2er.com/php/130905.htmlclass MessageFileLogger implements Swift_Events_SendListener { private $filename; public function __construct($filename) { $this->filename = $filename; } public function getMessages() { return $this->read(); } public function clear() { $this->write(array()); } public function beforeSendPerformed(Swift_Events_SendEvent $evt) { $messages = $this->read(); $messages[] = clone $evt->getMessage(); $this->write($messages); } public function sendPerformed(Swift_Events_SendEvent $evt) { } private function read() { if (!file_exists($this->filename)) { return array(); } return (array) unserialize(file_get_contents($this->filename)); } private function write(array $messages) { file_put_contents($this->filename,serialize($messages)); } }
配置:
services: umpirsky.mailer.message_file_logger: class: MessageFileLogger arguments: - %kernel.logs_dir%/mailer.log tags: - { name: swiftmailer.plugin }