我正在使用yii2 MVC框架。我已经创建了一个电子邮件应用程序,它在localhost中工作正常,但是在代码在线后它给出了一个连接超时异常我使用ssl和tls都加密,我找不到任何正版解决方案请帮助
我的配置文件代码为:
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com',
'username' => 'email@gmail.com',
'password' => 'password',
'port' => '587',
'encryption' => 'tls',
],
]
邮件发送代码:
Yii::$app->mailer->compose()
->setFrom($from)
->setTo($to)
->setSubject('Hello')
->setTextBody('Hello')
->send();
错误:
Swift_TransportException
Connection could not be established with host smtp.gmail.com [Connection timed out #110]
答案 0 :(得分:0)
您应该尝试更换主机:
smtp.gmail.com
与
173.194.65.108
或gmail-smtp-msa.l.google.com
如果仍然无效,请尝试将您的端口更改为25
或465
答案 1 :(得分:0)
在您的配置文件中:
port
更改为 465 ,将encryption
更改为 ssl 。有关Gmail设置的信息:
[1] https://support.google.com/a/answer/176600?hl=en&ref_topic=1354753
[2] https://support.google.com/accounts/answer/6010255?hl=en
答案 2 :(得分:0)
从config.yml spool: { type: memory }
然后你将添加像这样的try catch
try{
$mailer = $this->getMailer();
$response = $this->getMailer()->send($message);
}catch(\Swift_TransportException $e){
$response = $e->getMessage() ;
}
或者其他
尝试以下端口号
'port' => 26
或
'port' => 465.