在GoDaddy服务器上发送电子邮件时出现错误:Laravel 5.1

4

我正在使用Laravel 5.1内置的登录系统模板

当我在本地主机上使用忘记密码功能时,一切正常。以下是我的.env文件中的密钥:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=userid
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls

当我在Godaddy服务器上尝试同样的操作时,遇到了以下错误。

Swift_TransportException in StreamBuffer.php line 265: 连接无法与主机smtp.gmail.com建立[连接被拒绝

111]


很可能您的服务器上端口587被阻止了。 - meda
你能通过SSH连接到服务器吗?或者你可以使用http://mxtoolbox.com/PortScan.aspx扫描开放的端口。 - meda
我在扫描之后得到了这个。请查看URL中的截图。 - Pankaj
当我打开页面:mxtoolbox.com/PortScan.aspx时,它会给我一个文本框让我输入我的域名,然后我按提交按钮进行端口扫描。这将给我显示如下的结果:prntscr.com/9hcqmj。 - Pankaj
1
您是否已经调整了Gmail设置以接受不安全的应用程序?https://www.google.com/settings/security/lesssecureapps - James
显示剩余3条评论
7个回答

7

你的环境文件必须像下面这样

MAIL_DRIVER=smtp
MAIL_HOST=localhost
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl

在您的config/mail.php文件中,from值应该如下所示...
'from' => ['address' => 'pankaj@YourDomainName.com', 'name' => 'Sender Name'],

您想知道您的域名是什么?或者说,如何在GoDaddy上创建电子邮件帐户?请按照以下步骤操作:
  1. 登录您的GoDaddy帐户
  2. 进入您的托管账户。
  3. 点击“管理”
  4. 在“电子邮件”类别下,请单击“帐户”
  5. 如果没有电子邮件帐户,请创建一个。
就是这样。
假设您的电子邮件地址是Pankaj@yourdomainname.com
现在,在config/mail.php中将此电子邮件地址放入“from”字段即可。就这样。
这将100%解决问题。

我遇到了一个问题:在StreamBuffer.php的第268行,出现了Swift_TransportException异常: 无法与主机localhost建立连接[#0]。 - Sadaf Sid
如果您已经配置了cpanel电子邮件帐户,则转到cpanel并从URL @SadafSiddiqui获取域名。 - Anil Gupta
这个解决方案可行,非常感谢...我很惊讶问题的解决如此简单..再次感谢。 - Ogbonna Vitalis

3

我曾经费尽心思寻找这个答案,希望能够帮到别人。我曾经使用我的Godaddy邮件账户设置来转发邮件,但是由于某些原因它突然停止工作了。现在,我正在使用标准的PHP Mail函数来发送邮件,并且以下是.env配置文件。不确定端口或加密是否必要,但是它可以正常工作,所以保留原样。

MAIL_DRIVER=mail
MAIL_HOST=localhost
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=ssl

1

在网上搜索时,似乎当你使用Godaddy时,想要发送电子邮件时需要使用他们的SMTP中继和Gmail凭据。

因此,在你的.env文件中,不要写成:

MAIL_HOST=smtp.gmail.com

你应该使用。
MAIL_HOST=here_godaddy_relay_server

中继服务器的确切值取决于您所拥有的托管服务,但很可能是 relay-hosting.secureserver.net,因此请首先尝试使用以下内容:

MAIL_HOST=relay-hosting.secureserver.net

进一步细节:https://www.godaddy.com/help/what-is-the-name-of-my-hosting-accounts-relay-server-953+&cd=2&hl=en&ct=clnk&gl=us

@助手 Godaddy使用奇怪的机制,具体取决于国家。请使用Google.com(不是其他网站),将“godaddy Managing Your Email Account SMTP Relays”粘贴到搜索栏中。如果单击它后被重定向,请返回Google并尝试显示此页面的缓存谷歌副本。 - Marcin Nabiałek
你有Godaddy账户吗?如果有,你能否提供逐步指南,就像你在之前的赏金回答中所做的那样? - Pankaj
不好意思,我没有,但是如果你在.env文件中更改“MAIL_HOST”,它应该可以直接使用。 - Marcin Nabiałek
谢谢您的回答,但我一直收到这个错误信息:无法与主机relay-hosting.secureserver.net建立连接[连接被拒绝#111] - FONGOH MARTIN

1
对于我的GoDaddy共享主机,我可以使用cPanel->电子邮件向导->配置邮件客户端中的值来配置我的.env文件。

enter image description here


0

Laravel 7及以上版本的更新

MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=25
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null

0

首先,在 Laravel 项目中配置电子邮件,需要在主机上创建一个电子邮件帐户并检查配置详细信息。 enter image description here

现在,配置您的 .env 文件示例:

MAIL_DRIVER=mail
MAIL_HOST=mail.22h.in
MAIL_PORT=587
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls

你的 config/mail.php 应该像这样。

'from' => ['address' => 'demo@domain.in', 'name' => 'Order Receipt'],

清除项目缓存和配置,运行以下命令。
php artisan config:Cache
php artisan cache:Clear

0

可能的原因之一是在.env文件中出现了错误的Mail_RRIVER等。请确保您在那里放置了正确的信息,例如对于GMAIL,以下输入将起作用!

MAIL_DRIVER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=**<YOUR_USER_NAME>**@gmail.com
MAIL_PASSWORD=**<YOUR_PASSWORD>**
MAIL_ENCRYPTION=ssl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接