我在California
节点上启动并运行了我的ec2实例除了简单的contact.php格式外,一切正常。
我已经阅读了很多关于ec2很难发送电子邮件的信息。它似乎没有什么工作“
我偶然发现SiftMailer并使用yum install php-swift-Swift.noarch
我还在Oregon集群上设置了ses凭据(因为他们在加利福尼亚集群上没有邮件)
现在代码非常简单:
<?php
require '/usr/share/pear/Swift/swift_required.php';
$transport = new Swift_SmtpTransport(
'email-smtp.us-west-2.amazonaws.com', 465, 'ssl', 'KEY' ,'SECRET' );
// $transport->setUserName('')
//Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
//Create the message
$message = Swift_Message::newInstance();
$message->setSubject("What up?");
$message->setFrom(array('mygmail@gmail.com'));
$message->setTo(array('mygmail@gmail.com'));
$message->setBody("
<p>
Dude, I'm <b>totally</b> sending you email via AWS.
</p>
", 'text/html');
$mailer->send( $message );
?>
现在我得到的错误是
Fatal error: Uncaught exception 'Swift_TransportException' with message 'Expected response
code 250 but got code "530", with message "530 Authentication required "' in
/usr/share/pear/Swift/Swift/Transport/AbstractSmtpTransport.php:386 Stack trace: #0
/usr/share/pear/Swift/Swift/Transport/AbstractSmtpTransport.php(281):
Swift_Transport_AbstractSmtpTransport->_assertResponseCode('530 Authenticat...', Array) #1
/usr/share/pear/Swift/Swift/Transport/EsmtpTransport.php(245):
Swift_Transport_AbstractSmtpTransport->executeCommand('MAIL FROM: executeCommand('MAIL
FROM: _doMailFromCommand('mygmail@gmail...') #4
/usr/share/pear/Swift/Swift/Transport/AbstractSmtpTransport.php(444):
Swift_Transport_AbstractSmtpTransport->_doMailTransaction(Object(Swift_Message),
'mygmail @ gmail ...',数组,在 第386行/usr/share/pear/Swift/Swift/Transport/AbstractSmtpTransport.php
所以'mygmail'是我的实际邮件,我只是把它放进我的帖子。而'KEY'和'Secret'是我在IAM中创建SES指令告诉我的凭据时得到的。
我也在SES网络界面上验证了这封电子邮件。
如果我需要更清楚,请告诉我。
答案 0 :(得分:0)
不确定您是否修复了此问题,但可能是您错误地使用了凭据,因为此处未指定此信息。
我建议尝试更换:
'KEY'
与您的电子邮件地址'mygmail@gmail.com'
'SECRET'
与您的电子邮件地址'your_gmail_password'
这些设置适用于Yii2和Swiftmailer。
答案 1 :(得分:0)
我认为您需要包括您的AWS SES的SMTP凭证。