emo*_*les 5 email swiftmailer amazon-web-services symfony amazon-ses
我知道之前已经提出过这个问题,但任何给定的响应都已经成为Symfony2 + Swiftmailer + Amazon SES的解决方案.
我在Symfony2中设置了Swiftmailer的Amazon SES帐户详细信息,所有信息都是正确的,用户名和密码.然而,由于一些奇怪的原因,我没有赶上Symfony2 Swiftmailer在发送电子邮件时丢失了这个错误.
Failed to authenticate on SMTP server with username "XXXXXXXXXXXXXXXX" using 2 possible authenticators
Run Code Online (Sandbox Code Playgroud)
这是我在config.yml中得到的
#app/config/config.yml
# Swiftmailer Configuration
swiftmailer:
transport: "%mailer_transport%"
host: "%mailer_host%"
port: "%mailer_port%"
encryption: "%encryption%"
username: "%mailer_user%"
password: "%mailer_password%"
Run Code Online (Sandbox Code Playgroud)
和parameters.yml
#app/config/parameters.yml
parameters:
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: null
database_name: mydatabase
database_user: dbuser
database_password: dbpass
mailer_transport: smtp
mailer_host: email-smtp.us-east-1.amazonaws.com
mailer_port: 587
encryption: tls
mailer_user: XXXXXXXXXXXXXXXX
mailer_password: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
mailer_from: support@mycompany.com
locale: en
secret: ThisTokenIsNotSoSecretChangeIt
debug_toolbar: true
debug_redirects: false
use_assetic_controller: true
Run Code Online (Sandbox Code Playgroud)
放置Gmail smtp详细信息而不是Amazon SES可以正常工作并正确发送电子邮件.但是使用Amazon SES配置却没有.我再说一遍,用户名是正确的,它的工作原理与亚马逊SES梅勒库,但没有做它的Symfony集成Swiftmailer.
一些想法?
我认为您的所有配置参数都很好,就像 Symfony2 文档中所述http://symfony.com/doc/current/cookbook/email/cloud.html
如果 Amazon SES Mailer 库是 AWS 开发工具包的一部分,它可以工作,然后检查您是否在 Symfony2 中使用 Swiftmailer 的 SMTP 解决方案使用正确的凭证。
当您使用 AWS 开发工具包时,您可以使用 AWS 访问密钥访问 SES API,并能够使用该开发工具包中包含的 Amazon SES 邮件程序发送电子邮件。
当您使用其他库(如 Swiftmailer)时,您将通过 Amazon SES SMTP 接口发送电子邮件,它需要 SMTP 凭证,而不是 AWS 访问密钥。
此 SMTP 凭据是从 SES 控制台中的 SMTP 设置生成的,这些凭据是使用 SMTP 向亚马逊 SES 发送电子邮件时应使用的正确凭据。
检查此文档 http://docs.aws.amazon.com/ses/latest/DeveloperGuide/using-credentials.html
我知道这是一个古老的问题,但是我只想添加一些内容,因为我过去3个小时试图解决这个确切的问题。
在Symfony V4.0中,通过环境变量通过以下方式完成Swift Mailer的配置:
MAILER_URL=smtp://email-smtp.us-east-1.amazonaws.com:587?encryption=tls&username=YOUR_SES_USERNAME&password=YOUR_SES_PASSWORD
如这里所示。
问题是URL,这意味着如果字符串中包含任何特殊字符,则需要对其进行编码,在这种情况下,密码上面带有一个加号。:
AKD23$ADADADJJ$123123LKIOU8jUIJ8j+9IJHJW8JNN4nnn2
直到我更改为:
AKD23$ADADADJJ$123123LKIOU8jUIJ8j%2B9IJHJW8JNN4nnn2
一劳永逸地彻底解决了这个问题。
归档时间: |
|
查看次数: |
6308 次 |
最近记录: |