mouf/utils.mailer.db-mail-service

此包包含一个不会发送任何邮件的邮件发送器!相反,它将待发送的邮件存储在数据库的 'mails' 表中。DB 邮件发送器可以在以后将邮件转发到真实的邮件发送器,该发送器确实会发送邮件。

v1.0.0 2015-11-12 11:12 UTC

This package is auto-updated.

Last update: 2024-09-15 04:43:01 UTC


README

存储外发邮件

在 Mouf 中,使用 MailServices 发送 电子邮件
此包包含一个不会发送任何邮件的邮件发送器!相反,它将待发送的邮件存储在数据库表中。DB 邮件发送器还可以将邮件转发到真实的邮件发送器(通常是 SmtpMailService)以实际发送邮件。

邮件存储在 outgoing_mails 表中,而 "from","to","cc" 和 "bcc" 字段存储在 outgoing_mail_addresses 表中。存储的邮件可以通过 Mouf 的用户界面查看,也可以通过此类的成员方法访问。

Mouf's DBMailService Outgoing Mails screenshot

此用户界面在开发过程中非常出色,当你想查看应用程序实际发送的内容而不实际发送邮件时,它也非常有用,以便验证应用程序正在发送的邮件。

安装 DBMailService

此包有一个安装过程。它将创建一个数据库补丁。一旦您运行了安装过程,您将需要安装该补丁。

如果它们不存在,补丁将创建 2 个表:outgoing_mailsoutgoing_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 管理界面访问发送邮件数据库。您只需单击“工具”菜单,然后单击“查看外发邮件”子菜单。

Mouf's DBMailService Outgoing Mails screenshot

如截图所示,您可以看到已发送邮件的列表。全文搜索框将搜索所有外发邮件。

转发邮件

DBMailService 非常有用,因为它将邮件存储在数据库中。显然,您可以用它来调试。然而,大多数情况下,您都希望将邮件存储在数据库中并实际发送。为此,DBMailService 可以将邮件 转发 到另一个邮件服务。您只需编辑 Mouf 服务的实例并设置转发服务

Mouf's DBMailService instance