mouf / utils.mailer.db-mail-service
此包包含一个不会发送任何邮件的邮件发送器!相反,它将待发送的邮件存储在数据库的 'mails' 表中。DB 邮件发送器可以在以后将邮件转发到真实的邮件发送器,该发送器确实会发送邮件。
Requires
- php: >=5.3.0
- mouf/database.patcher: ~1.0 | ~2.0
- mouf/utils.log.errorlog_logger: ~2.0
- mouf/utils.mailer.mail-interface: ~2.0
README
存储外发邮件
在 Mouf 中,使用 MailServices 发送 电子邮件。
此包包含一个不会发送任何邮件的邮件发送器!相反,它将待发送的邮件存储在数据库表中。DB 邮件发送器还可以将邮件转发到真实的邮件发送器(通常是 SmtpMailService)以实际发送邮件。
邮件存储在 outgoing_mails
表中,而 "from","to","cc" 和 "bcc" 字段存储在 outgoing_mail_addresses
表中。存储的邮件可以通过 Mouf 的用户界面查看,也可以通过此类的成员方法访问。
此用户界面在开发过程中非常出色,当你想查看应用程序实际发送的内容而不实际发送邮件时,它也非常有用,以便验证应用程序正在发送的邮件。
安装 DBMailService
此包有一个安装过程。它将创建一个数据库补丁。一旦您运行了安装过程,您将需要安装该补丁。
如果它们不存在,补丁将创建 2 个表:outgoing_mails 和 outgoing_mail_addresses。
安装过程还会创建一个 dbMailService 实例,该实例将连接到当前的 dbConnection(如果存在)并使用 mailService 实例实际发送邮件。
使用示例
您可以使用此服务的方式使用任何 MailService。
例如,要发送一封邮件,您只需编写
$mailService = Mouf::getDBMailService(); $mail = new Mail(); $mail->setBodyText("This is my mail!"); $mail->setBodyHtml("This is my <b>mail</b>!"); $mail->setFrom(new MailAddress("my@server.com", "Server")); $mail->addToRecipient(new MailAddress("david@email.com", "David")); $mail->setTitle("My mail"); $mailService->send($mail);
附加功能
如果您将 DBMail
(或实现 DBMailInterface
的任何类)的实例传递给服务的 send
方法,您可以为您的邮件添加额外的类别和类型。这可以在以后对发送的邮件进行排序。
以下是使用 DBMail
的修改后的示例。
$mailService = Mouf::getDBMailService(); $mail = new DBMail(); $mail->setBodyText("This is my mail!"); $mail->setBodyHtml("This is my <b>mail</b>!"); $mail->setFrom(new MailAddress("my@server.com", "Server")); $mail->addToRecipient(new MailAddress("david@email.com", "David")); $mail->setTitle("My mail"); // Let's set the category $mail->setCategory("My category"); // Let's set the type $mail->setType("My type"); $mailService->send($mail);
访问发送邮件数据库
您可以直接从 Mouf 管理界面访问发送邮件数据库。您只需单击“工具”菜单,然后单击“查看外发邮件”子菜单。
如截图所示,您可以看到已发送邮件的列表。全文搜索框将搜索所有外发邮件。
转发邮件
DBMailService
非常有用,因为它将邮件存储在数据库中。显然,您可以用它来调试。然而,大多数情况下,您都希望将邮件存储在数据库中并实际发送。为此,DBMailService
可以将邮件 转发 到另一个邮件服务。您只需编辑 Mouf 服务的实例并设置转发服务