无法与主机“ssl://smtp.gmail.com:465”建立连接

问题描述 投票:0回答:1

我正在尝试在 laravel 9 中注册一个需要验证电子邮件才能登录的项目,但它一直给我这个错误:

无法与主机“ssl://smtp.gmail.com:465”建立连接:stream_socket_client():SSL 操作失败,代码为 1。OpenSSL 错误消息:错误:1416F086:SSL 例程:tls_process_server_certificate:证书验证失败

这是我的.env:

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
[email protected]
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls
MAIL_FROM[email protected]
MAIL_FROM_NAME="${APP_NAME}"

这是邮件配置文件:

'mailers' => [
        '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,
            'local_domain' => env('MAIL_EHLO_DOMAIN'),
        ],

        'ses' => [
            'transport' => 'ses',
        ],

        'mailgun' => [
            'transport' => 'mailgun',
        ],

        'postmark' => [
            'transport' => 'postmark',
        ],

        'sendmail' => [
            'transport' => 'sendmail',
            'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
        ],

        'log' => [
            'transport' => 'log',
            'channel' => env('MAIL_LOG_CHANNEL'),
        ],

        'array' => [
            'transport' => 'array',
        ],

        'failover' => [
            'transport' => 'failover',
            'mailers' => [
                'smtp',
                'log',
            ],
        ],
    ]

任何想法,我该如何解决?

我试过这个

MAIL_MAILER=smtp
MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=xxx
MAIL_PASSWORD=xxx

但是不起作用

编辑:我在这里找到了解决方案并且有效 LARAVEL 9. 错误 LARAVEL 电子邮件:无法使用 STARTTLS 连接:stream_socket_enable_crypto():SSL 操作失败,代码为 1

php laravel smtp laravel-9
1个回答
0
投票

我知道一些解决方案:

解决方案1:如果您有其他AV,例如Avast,请禁用它来运行测试。有些AV有关于Mail Shield的Core Shield。这是 防止恶意邮件被传递或检索。

另一种解决方案:

解决方案 2: 转到

config/mail.php
mailers => smtp
 之后添加此行

'timeout' => null,
另一种解决方案(不推荐):

解决方案3:

转到'stream' => [ 'ssl' => [ 'allow_self_signed' => true, 'verify_peer' => false, 'verify_peer_name' => false, ], ], 注释此代码:

vendor\swiftmailer\lib\classes\Swift\Transport\Streambuffer.php
并在后面添加:
$options = [];

    

© www.soinside.com 2019 - 2024. All rights reserved.