我有一个运行 Yii Framework 的PHP应用程序,并且它使用 YiiMail 扩展程序,该扩展程序基于 Swiftmailer 。
我的应用程序昨天工作正常,但今天发布了以下错误:
fsockopen(): SSL操作失败,代码为1. OpenSSL错误消息: 错误:14090086:SSL例程:ssl3_get_server_certificate:证书验证失败
我的Yii应用配置:
'mail' =>
array('class' => 'application.extensions.yii-mail.YiiMail',
'transportType' => 'smtp',
'transportOptions' => array(
'host' => 'smtp.gmail.com',
'username' => '**@gmail.com',
'password' => '***',
'port' => '465',
'encryption'=>'tls' ),
'viewPath' => 'application.views.mail',
'logging' =>false,
'dryRun' => false
)
答案:快速解决方案
我的应用程序在Windows中运行,因此我进行了快速配置以解决此问题。
我使用 sendmail 进行了配置,并启用了我的php.ini文件。
Ps:主要问题是如果你有许多应用程序在同一个php中运行。怎么不对我这个问题,这是独立的应用程序,我刚刚做了。
这样的事情:
sendmail.ini
[sendmail]
smtp_server=smtp.gmail.com
smtp_port = 587
#default_domain = gmail.com it's is not necessary
auth_username= your gmail@gmail.com
auth_password=your password
的php.ini
[mail function]
sendmail_path = "path to sendmail installation"
SMTP = smtp.gmail.com
smtp_port = 587
答案 0 :(得分:0)
这是我在Yii2项目中的工作smtp设置: 公共/配置/主local.php
return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=bd-sys',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com',
'username' => '******@gmail.com',
'password' => '******',
'port' => 587,
'encryption' => 'tls',
],
],
],
];
答案 1 :(得分:0)
如果你当前的配置以前有效,那么突然停止了。请考虑以下内容:
之前我遇到过类似的问题,启用了较少安全的应用,然后当我为我的Google帐户设置2 Step Verification时,它就停止了工作。
然后生成一个APP密码,就行了!