微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

测试来自本地主机的电子邮件时如何修复 SMTP 身份验证错误?

如何解决测试来自本地主机的电子邮件时如何修复 SMTP 身份验证错误?

如何使用 Laravel 7 在本地主机上测试电子邮件我有一个 smtp4dev 服务器正在运行,它应该捕获指定端口上的通信。我选择端口 25。我的 Laravel 7 邮件设置如下:

.env

MAIL_MAILER=smtp
MAIL_HOST=xxxxxxxxxx.contaboserver.net
MAIL_PORT=25
MAIL_USERNAME="noreplay@xxxxxxxxx.eu"
MAIL_PASSWORD="xxxxxxxxx"
MAIL_ENCRYPTION=
MAIL_FROM_ADDRESS="noreplay@xxxxxxxxx.eu"
MAIL_FROM_NAME="${APP_NAME}"

config/mail.PHP

'smtp' => [
    'transport' => 'smtp','host' => env('MAIL_HOST'),'port' => env('MAIL_PORT'),'encryption' => env('MAIL_ENCRYPTION'),'username' => env('MAIL_USERNAME'),'password' => env('MAIL_PASSWORD'),'timeout' => null,'auth_mode' => null,'stream' => [
        'ssl' => [
            'allow_self_signed' => true,'verify_peer' => false,'verify_peer_name' => false,],

使用这些设置我收到一个错误

无法使用用户名在 SMTP 服务器上进行身份验证 “noreplay@xxxxxxxxx.eu”使用 3 个可能的身份验证器。身份验证器 CRAM-MD5 返回预期响应代码 235,但得到代码“535”,其中 消息“535 5.7.0 无效的登录名或密码”。验证器登录 返回预期响应代码 250,但得到一个空响应。

如果我删除

'stream' => [
    'ssl' => [
        'allow_self_signed' => true,

出现错误

stream_socket_enable_crypto():SSL 操作失败,代码为 1。 OpenSSL 错误消息:错误:1416F086:SSL 例程:tls_process_server_certificate:证书验证失败

我也运行 artisan config:clear。我不知道我现在该怎么办。为什么本地 smtp4dev 服务器需要身份验证?

解决方法

使用 Laravel 6.x、7.x 和 8.x

建议在默认 tls 上使用 SSL。

大多数共享托管服务提供商使用 SSL 签署电子邮件,因此请编辑您的 .env 文件以获取此内容

MAIL_ENCRYPTION=ssl
,

尝试使用

更改您的 MAIL_ENCRYPTION=
"GET / HTTP/1.1\r\nHost: google.com\r\n\r\n"

然后运行

MAIL_ENCRYPTION=ssl

如果您没有使用虚拟主机,或者在转储 .MAIL_ENCRYPTION 密钥后获取空值,请重新加载您的工匠服务或 xampp

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。