AWS SES 简单电子邮件服务,Zend 电子邮件超时错误

AWS SES simple email service, time out error with Zend email

我使用 Amazon AWS SES 简单电子邮件服务为我的应用程序发送电子邮件。我使用 Zend framework2 的以下代码发送电子邮件。之前它运行良好,但现在我的 AWS EB EC2 实例中出现以下错误。但是,在我的本地主机中,我仍然可以使用相同的代码和相同的 AWS SES 帐户发送电子邮件,并且它现在在我的本地主机中仍然可以正常工作。

$sc_Zend_mail_smtpOptions = new \Zend\Mail\Transport\SmtpOptions();  
$sc_Zend_mail_smtpOptions->setHost($sc_server_email_host)
            ->setConnectionClass('login')
            ->setName($sc_server_email_host)
            ->setConnectionConfig(array(
                'username' => $sc_server_email_account,
                'password' => $sc_server_email_password,
                'ssl' => 'tls',
                'port' => 587 
            ));
$sc_Zend_mail_transport = new \Zend\Mail\Transport\Smtp($sc_Zend_mail_smtpOptions);

是AWS EB EC2 ssl设置的问题吗?这些代码有什么问题?之前在 AWS EC2 中运行良好。

错误信息是:

Fatal error: Uncaught exception 'Zend\Mail\Protocol\Exception\RuntimeException' 
with message 'Connection timed out' in /var/app/current/utils/zendfw/ZendFw2/vendor/zendframework/zendframework/library/Zend/Mail/Protocol/AbstractProtocol.php:209 S
tack trace: #0 /var/app/current/utils/zendfw/ZendFw2/vendor/zendframework/zendframework/library/Zend/Mail/Protocol/Smtp.php(148): Zend\Mail\Protocol\AbstractProtocol->_connect('tcp://email-smt...') 
#1/var/app/current/utils/zendfw/ZendFw2/vendor/zendframework/zendframework/library/Zend/Mail/Transport/Smtp.php(375): Zend\Mail\Protocol\Smtp->connect() 
#2/var/app/current/utils/zendfw/ZendFw2/vendor/zendframework/zendframework/library/Zend/Mail/Transport/Smtp.php(361): Zend\Mail\Transport\Smtp->connect() 
#3/var/app/current/utils/zendfw/ZendFw2/vendor/zendframework/zendframework/library/Zend/Mail/Transport/Smtp.php(372): Zend\Mail\Transport\Smtp->lazyLoadConnection() 
#4/var/app/current/utils/zendfw/ZendFw2/vendor/zendframework/zendframework/library/Zend/Mail/Transport/Smtp.php(229): in /var/app/current/utils/zendfw/ZendFw2/vendor/zendframework/zendframework/library/Zend/Mail/Protocol/AbstractProtocol.php on line 209

AWS EC2 中的服务器实例似乎不再允许设置旧端口。将端口设置移到 setConnectionConfig 数组之外确实使其在 AWS EB EC2 和本地主机中再次工作。

$sc_Zend_mail_smtpOptions->setHost($sc_server_email_host)
            ->setConnectionClass('login')
            ->setName($sc_server_email_host)
            ->setPort(587)
            ->setConnectionConfig(array(
                'username' => $sc_server_email_account,
                'password' => $sc_server_email_password,
                'ssl' => 'tls'
            ));