如何发送电子邮件Symfony 2+AWS SES+Swiftmailer



我已经将一个在symfony2中构建的应用程序移动到亚马逊,并使用swiftmailer发送电子邮件,我无法从该应用程序发送电子邮件。

因此,搜索发送电子邮件的解决方案。请让我知道是否有任何发送电子邮件SES或为symfony2配置SMTP的解决方案。

我用我的来处理以下细节:

transport: "%mailer_transport%"
host:      "%mailer_host%"
username:  "%mailer_user%"
password:  "%mailer_password%"
auth_mode:  login
encryption: tls
port:  587
logging:  "%kernel.debug%"

最后,确保send FROM电子邮件地址经过验证。

我从未玩过AWS SES,但您可以使用mailjet发送电子邮件。你只需要配置Swiftmailer传输使用他们的SMTP,你就完成了。

他们还通过提供几种技术来确保你的电子邮件发送良好(即:不发送垃圾邮件)。您必须设置其中一些。

他们没有提供Swiftmailer的例子,但这里有一个适用于Zend的好例子(你会看到它有多容易):

$config = array(
  'ssl'      => 'ssl',
  'port'     => 465,
  'auth'     => 'login',
  'username' => 'your_Mailjet_API_Key',
  'password' => 'your_Mailjet_Secret_Key');
$transport = new Zend_Mail_Transport_Smtp('in-v3.mailjet.com', $config);
$mail = new Zend_Mail();
$mail->setFrom('your_sender@address.com', 'You');
$mail->addTo('recipient@example.com', 'Anybody');
$mail->setSubject('My first email by Mailjet');
$mail->setBodyText('Hello from Mailjet & Zend Framework !');
$mail->send($transport);

亚马逊SES拥有来自官方AWS Php SDK:的优秀Php API

http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-ses.html

正如你所看到的,SES并没有像Mailjet那样用作SMTP网关,而是作为HTTP API(通过Guzzle,一个用于HTTP查询的Php库)。依赖或不依赖亚马逊服务(如S3/SeS/SNS等)总是一个重要的决定……也许你不想依赖亚马逊的技术?

您可以尝试使用AWS SES Monitor Bundle来管理通过带有Symfony的SwiftMailer发送的电子邮件。

问题是,当你开始使用AWS SES时,你就处于沙箱中,要上线,你需要向亚马逊提交一个问题,要求将你从发送箱中删除。

要求是您可以管理反弹和投诉。要获取有关这些通知,您需要连接到简单通知服务(另一种选择是通过电子邮件获取通知)。

为了自动化所有这些东西,你可以使用AWS SES Monitor Bundle为你完成所有这些。它还为SwiftMailer注册了一个插件,可以拦截消息,避免将消息发送到不应该发送电子邮件的地址。

相关内容

  • 没有找到相关文章

最新更新