我已将一个应用程序移至 symfony2 中构建的亚马逊,并使用 swiftmailer 发送电子邮件,但我无法从该应用程序发送电子邮件。
因此,搜索发送电子邮件的解决方案。如果有任何发送电子邮件 SES 或为 symfony2 配置 SMTP 的解决方案,请告诉我。
我已将一个应用程序移至 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%"
最后,确保发送 FROM 电子邮件地址得到验证。
我从未使用过 AWS SES,但您可以使用mailjet发送电子邮件。你只需要配置 Swiftmailer Transport 来使用他们的 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);
Amazon SES 具有来自官方 AWS Php SDK 的优秀 Php API:
http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-ses.html
如您所见,SES 不是用作 SMTP 网关(像 Mailjet 那样),而是用作 HTTP API(通过 Guzzle,一个用于 HTTP 查询的 Php 库)。依赖或不依赖亚马逊服务(如 S3/SeS/SNS 等)始终是一个重要的决定……也许您不想依赖任何亚马逊技术?
您可以尝试使用 AWS SES Monitor Bundle 来管理通过 SwiftMailer 和 Symfony 发送的电子邮件。
问题是,当您开始使用 AWS SES 时,您处于沙箱中并且要上线,您需要向 Amazon 提交问题,要求将您从发送箱中移除。
要求是您可以管理退回和投诉。要获得有关这些的通知,您需要连接到简单通知服务(另一种选择是通过电子邮件获得通知)。
要自动化所有这些工作,您可以使用AWS SES Monitor Bundle为您完成所有这些工作。它还为 SwiftMailer 注册了一个插件,该插件可以拦截消息并避免将消息发送到您不应发送电子邮件的地址。