我已将应用程序移至symfony2中构建的amazon并使用swiftmailer发送电子邮件,我无法从该应用程序发送电子邮件。
搜索解决方案以发送电子邮件。如果有任何解决方案用于发送电子邮件SES或为symfony2配置SMTP,请告诉我。
答案 0 :(得分:9)
我让我的工作有以下细节:
transport: "%mailer_transport%"
host: "%mailer_host%"
username: "%mailer_user%"
password: "%mailer_password%"
auth_mode: login
encryption: tls
port: 587
logging: "%kernel.debug%"
最后,确保验证发送FROM电子邮件地址。
答案 1 :(得分:1)
我从未玩过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);
答案 2 :(得分:0)
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等)始终是一个重要的决定...也许您不想依赖亚马逊技术?
答案 3 :(得分:0)
您可以尝试使用AWS SES Monitor Bundle管理通过SwiftMailer与Symfony发送电子邮件。
问题在于,当您从AWS SES开始,您处于沙箱中并上线时,您需要向亚马逊提出问题,要求您将其从发送箱中取出。
要求是您可以管理退回和投诉。 要获得有关这些的通知,您需要连接到简单通知服务(另一个选项是通过电子邮件收到通知)。
要自动化所有这些内容,您可以使用AWS SES Monitor Bundle为您完成所有这些操作。 它还为SwiftMailer注册了一个插件,它可以拦截消息并避免将消息发送到不应发送电子邮件的地址。