我正在研究一个symfony 2.2项目网站,我在其中使用swift邮件发送邮件; 在Parameter.yml中,配置如下:
database_driver: pdo_mysql
database_host: localhost
database_port: null
database_name: My_Project_Name
database_user: username
database_password: userpass
mailer_transport: gmail
mailer_host: smtp.gmail.com
mailer_encryption: ssl
mailer_auth_mode: login
mailer_user: my_user_name@gmail.com
mailer_password: my_gmail_account_password
locale: en
secret: my_secret
database_path: null
我的邮件如下:
$message = \Swift_Message::newInstance()
->setSubject("Subject_description")
->setFrom("my_user_name@gmail.com")
->setTo("destination_email@maildomain.com")
->setBody("message_body");
$this->mailer->send($message);
它在localhost中工作得很好但是当项目站点在AWS-EC2服务器上运行时,它没有给出任何错误并给出关于成功完全发送邮件的通知消息,但实际上在destination_email@maildomain.com上没有收到任何电子邮件。我不知道我的配置有什么问题?
如果有任何人对这个问题有所了解,请告诉我,我们将非常感谢!
答案 0 :(得分:0)
通过许多帮助链接提取我的想法后,我终于找到了解决方案,如下所示:
# app/config/parameter.yml
swiftmailer:
transport: smtp
host: email-smtp.us-east-1.amazonaws.com
username: AWS_ACCESS_KEY
password: AWS_SECRET_KEY
encryption: tls
port: 25
并在梅勒:
$renderedLines = explode("\n", trim($renderedTemplate));
$subject = $renderedLines[0];
$body = implode("\n", array_slice($renderedLines, 1));
$transport = \Swift_SmtpTransport::newInstance( 'email-smtp.us-east-1.amazonaws.com',
25,
'tls')->setUsername('aws_key')->setPassword('aws_secret');
$innerMailer = \Swift_Mailer::newInstance($transport);
$message = \Swift_Message::newInstance()
->setSubject('My_Project_Title_Subject')
->setFrom(array('my_mail@domail.com' => 'Reference Name'))
->setTo("destination_mail@domail.id")
->setBody($body, 'text/html');
$innerMailer->send($message);
终于工作了!
希望它会帮助别人!