Laravel ZOHO SMTP 电子邮件验证失败

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

我正在使用 Zoho SMTP 配置

DEFAULT_MAIL="gmail"
MAIL_MAILER=smtp
MAIL_HOST=smtp.zoho.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=mina
MAIL_ENCRYPTION=ssl
MAIL_FROM_NAME=Test Sales

当我在 MAIL_FROM_NAME 中提供空间作为“测试销售”而没有报价时,网站就会崩溃 但邮件发送成功

我也尝试过引用

DEFAULT_MAIL="gmail"
MAIL_MAILER=smtp
MAIL_HOST=smtp.zoho.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=mina
MAIL_ENCRYPTION=ssl
MAIL_FROM_NAME="Test Sales"

我收到以下错误消息

Connection could not be established with host smtp.zoho.com :stream_socket_client(): unable to connect to ssl://smtp.zoho.com:587 (Connection refused)

在 zoho mail 配置中,他们设置了 FirstName=Test 和 LastName=Sales

邮件无法正常工作只是因为 MAIL_FROM_NAME。

有人可以建议我解决方案吗

php laravel email smtp zoho
2个回答
3
投票

你有两个问题。 SSL/STARTTLS 的错误使用以及邮件地址和名称的错误使用。

Zoho 支持 SSL 和 STARTTLS。

您指定 ssl 但使用 starttls 端口。方案ssl从加密开始。这通常需要端口 465。方案 tls 开始时未加密,然后通过 STARTTLS 命令切换到加密。这通常需要端口 587。

电子邮件加密

要使用 SSL:

MAIL_PORT=465
MAIL_ENCRYPTION=ssl

要使用 STARTTLS:

MAIL_PORT=587
MAIL_ENCRYPTION=tls

电子邮件地址和姓名用途:

使用 [电子邮件受保护]

您可以将 MAIL_FROM_ADDRESSMAIL_FROM_NAME

结合使用
"MAIL_FROM_NAME <MAIL_FROM_ADDRES>"

将变量名称替换为 .env 文件中的值:

$from = env('MAIL_FROM_NAME) . " <" . env(MAIL_FROM_ADDRESS) . ">";

一些类方法使用这种风格:

->setFrom([env('MAIL_FROM_ADDRESS'), env('MAIL_FROM_NAME')])

注意:某些电子邮件服务不允许您更改 MAIL_FROM_ADDRESS。您必须使用该帐户注册的名称或注册的别名。

您还可以在 config/mail.php 中指定地址的详细信息

:
'from' => [
    'address' => env('MAIL_FROM_ADDRESS', '[email protected]'),
    'name' => env('MAIL_FROM_NAME', 'Example'),
],

0
投票

请注意您的密码,如果它包含“#”字符,那么您需要将所有密码放在斜杠下。

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