Mailer组件
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 4.3,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
Mailer组件
Mailer组件帮助发送电子邮件。
如果您正在使用Symfony框架,请阅读ob娱乐下载ob娱乐下载Symfony Framework Mailer文欧宝官网下载app档.
4.3
Mailer组件是在Symfony 4.3中引入的,它仍然被认为是一个ob娱乐下载实验功能.
安装
1
$作曲家需要symfony/mailob娱乐下载er
请注意
如果在Symfony应用程序外部安装此组件,则必须要求ob娱乐下载供应商/ autoload.php
文件,以启用Composer提供的类自动加载机制。读这篇文章欲知详情。
使用
Mailer组件有两个主要类运输
和梅勒
本身:
1 2 3 4 5 6
使用ob娱乐下载\组件\梅勒\梅勒;使用ob娱乐下载\组件\梅勒\运输\Smtp\EsmtpTransport;$运输=新EsmtpTransport (“localhost”);$梅勒=新梅勒($运输);$梅勒->发送($电子邮件);
的美元的电子邮件
对象通过Mime组件.
运输
唯一预先安装的传输方式是SMTP。
以下是其他具有内置支持的流行提供商列表:
服务 | 安装与 |
---|---|
亚马逊SES | 作曲家需要symfony/amazob娱乐下载on-mailer |
Gmail | 作曲家需要symfony/googob娱乐下载le-mailer |
MailChimp的 | 作曲家需要symfony/ maiob娱乐下载l黑猩猩-mailer |
Mailgun | 作曲家需要symfony/mailob娱乐下载gun-mailer |
邮戳 | 作曲家需要symfony/邮戳-mob娱乐下载ailer |
SendGrid | 作曲家需要symfony/sendob娱乐下载grid-mailer |
例如,假设您想使用谷歌的Gmail SMTP服务器。首先,安装:
1
$作曲家需要symfony/googob娱乐下载le-mailer
然后,使用SMTP Gmail传输:
1 2 3 4 5 6
使用ob娱乐下载\组件\梅勒\桥\谷歌\Smtp\GmailTransport;使用ob娱乐下载\组件\梅勒\梅勒;$运输=新GmailTransport (“用户”,“通过”);$梅勒=新梅勒($运输);$梅勒->发送($电子邮件);
每个提供者最多提供3种传输:标准SMTP、HTTP(它使用提供者的API,但主体是由邮件组件创建的)、API(它使用提供者的完整API,不控制主体的创建——功能也可能受到限制)。
mailer组件提供了一种从DSN创建传输的方便方法:
1 2 3
使用ob娱乐下载\组件\梅勒\运输;$运输=运输::fromDsn ($dsn);
在哪里dsn美元
取决于您想要使用的提供程序。对于普通的SMTP,使用smtp: / /用户:pass@example.com
或smtp: / / sendmail
使用sendmail
二进制文件。对于第三方供应商,请参见下表:
提供者 | SMTP | HTTP | API |
---|---|---|---|
亚马逊SES | smtp: / / ACCESS_KEY: SECRET_KEY@ses | http://ACCESS_KEY:SECRET_KEY@ses | api: / / ACCESS_KEY: SECRET_KEY@ses |
谷歌Gmail | smtp: / /用户名:PASSWORD@gmail | N/A | N/A |
Mailchimp的山魈 | smtp: / /用户名:PASSWORD@mandrill | http://KEY@mandrill | api: / / KEY@mandrill |
Mailgun | smtp: / /用户名:PASSWORD@mailgun | http://KEY:DOMAIN@mailgun | api: / /关键:DOMAIN@mailgun |
邮戳 | smtp: / / ID: ID@postmark | N/A | api: / / KEY@postmark |
Sendgrid | smtp: / / apikey: KEY@sendgrid | N/A | api: / / KEY@sendgrid |
高可用性
ob娱乐下载Symfony的邮件支持高可用性通过一种称为“故障转移”的技术,确保即使一个邮件服务器故障,电子邮件也能发送出去。
类连接的两个或多个传输配置了故障转移传输||
接线员:
1
$dsn='api://id@postmark || smtp://key@sendgrid';
邮件发送器将开始使用第一个传输。如果发送失败,邮件发送程序将不会用其他传输重试它,但它将自动切换到下一个传输来处理接下来的交付。
负载平衡
ob娱乐下载Symfony的邮件支持负载平衡通过一种称为“循环”的技术将邮件工作负载分布到多个传输中。
类连接的两个或多个传输配置为循环传输& &
接线员:
1
$dsn='api://id@postmark && smtp://key@sendgrid'
邮件发送器将开始使用第一个传输,如果它失败了,它将对下一个传输重试相同的传输,直到其中一个传输成功(或直到所有传输都失败)。
异步发送电子邮件
如果要异步发送电子邮件,请安装通讯组件.
1
$作曲家需要交响乐/信使ob娱乐下载
然后,实例化并传递一个MessageBus
第二个论点是梅勒
:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
使用ob娱乐下载\组件\梅勒\梅勒;使用ob娱乐下载\组件\梅勒\信使\MessageHandler;使用ob娱乐下载\组件\梅勒\信使\SendEmailMessage;使用ob娱乐下载\组件\梅勒\SmtpEnvelope;使用ob娱乐下载\组件\梅勒\运输;使用ob娱乐下载\组件\信使\处理程序\HandlersLocator;使用ob娱乐下载\组件\信使\MessageBus;使用ob娱乐下载\组件\信使\中间件\HandleMessageMiddleware;使用ob娱乐下载\组件\Mime\地址;$dsn=“change-dsn-accordingly”;$运输=运输::fromDsn ($dsn);$处理程序=新MessageHandler ($运输);$公共汽车=新MessageBus ([新HandleMessageMiddleware (新HandlersLocator ([SendEmailMessage::Class => [$处理程序],])),]);$梅勒=新梅勒($运输,$公共汽车);$梅勒->发送($电子邮件);//你可以传递一个可选的信封$梅勒->发送($电子邮件,新SmtpEnvelope (新地址(“sender@example.com”), (新地址(“recipient@example.com”),]));
了解更多
要了解有关如何使用mailer组件的详细信息,请参阅ob娱乐下载Symfony Framework Mailer文欧宝官网下载app档.