我正在尝试使用 Google SMTP 服务器从我的 laravel 8 应用程序发送一封简单的电子邮件,但它不起作用,我收到此错误:
Swift_TransportException
Connection could not be established with host smtp.gmail.com :stream_socket_client(): SSL:
或
stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
我发现了很多关于这个问题的帖子,但没有一个对我有用,这是我尝试过的列表:
smtp.googlemail.com
和 smtp.gmail.com
MAIL_ENCRYPTION=tls
和 ssl
'stmp'
更改为 'sendmail'
还有什么我可以尝试的吗?
这是我的邮件配置,尽管我已经尝试了很多版本:
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
我遇到了同样的问题,我只是禁用了我的防病毒软件(Avast / Windows 10)及其工作。
尝试这个并添加额外的身份验证模式环境变量
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
MAIL_AUTH_MODE=login
现在去
config/mail.php
并改变
'smtp' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
'auth_mode' => null,
],
到
'smtp' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
'auth_mode' => env('MAIL_AUTH_MODE'),
],
最后是Windows的问题。我发现一些帖子指出 Windows 无法执行某些邮件服务。我在装有 Ubuntu 的计算机上尝试了完全相同的代码,第一次尝试就成功了。
我通过禁用防病毒软件(Avast / Windows 10)解决了同样的问题,并且它有效。