【问题标题】:Sending mail with Laravel on shared hosting在共享主机上使用 Laravel 发送邮件
【发布时间】:2018-04-27 17:05:53
【问题描述】:

我正在尝试从我的网站发送邮件。

我正在使用 laravel 5.5 和 hostnet.nl 的共享主机。

我很确定我的所有配置都是正确的..

我的 .env :

MAIL_DRIVER=mail
MAIL_HOST=smtp02.hostnet.nl
MAIL_PORT=587
MAIL_USERNAME=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=TLS

但是当我尝试发送邮件时,这总是返回

糟糕,出现错误:

proc_open() has been disabled for security reasons 我已经与托管公司聊天,他们说这不是允许更改的 php 设置。所以我无法启用它。

当我尝试设置 MAIL_DRIVER=smtp 时,它说连接被拒绝。

我在这个共享主机上有另一个 laravel 安装/网站,它具有相同的 MAIL_DRIVER=mail,并且效果很好。

本次安装在 laravel 5.2.*

这是否在 swiftmailer 内部从 laravel 5.2 更改为 5.5?

我不知道如何解决这个问题。

感谢任何帮助。

【问题讨论】:

  • connection refused 是网络级错误。服务器的主机地址不正确,或者您的共享主机提供商明确为您的数据包设置了防火墙。根据这个port checker,您提供的主机是打开的,并且正在侦听端口 587,即 SMTP 端口。您可能无法使用此共享托管服务提供商来满足您的需求。
  • 有时共享主机可能需要额外的字段。将 MAIL_FROM_ADDRESS 和 MAIL_FROM_NAME 字段添加到 .env 配置中是个好主意

标签: php laravel email laravel-5.5


【解决方案1】:

你应该尝试改变这个:

MAIL_DRIVER=mail

laravel 的邮件服务(Laravel 5.5)没有“邮件”驱动程序,您可能会因为错误的凭据而遇到“smtp”问题。我认为 Laravel 5.2 可能在设置“邮件”驱动程序时使用 php 的内置“mail()”函数,这可能在某些共享主机上工作而在其他主机上失败。

大多数共享主机提供商允许通过默认服务器“sendmail”发送邮件,因此您也可以试试这个:

MAIL_DRIVER=sendmail

如果您无法让“sendmail”或“smtp”工作,您可以尝试“mailgun”或任何其他外部邮件服务提供商。例如,Mailgun 每月为您提供 10 000 封免费邮件,因此您不需要任何付费订阅,而且设置教程非常简单,而且您拥有监控已发送邮件的出色工具。

【讨论】:

  • 感谢您的回答。 Mailgun 每月发布 10.000 封免费电子邮件,但只有在您向他们提供您的信用卡信息之后,这是我不喜欢做的事情。顺便说一句,sendmail 邮件驱动程序返回相同的proc_open() has been disabled for security reasons 。我无法让 SMTP 工作,但我 100% 确定我有正确的信息。我双手插在头发里。
  • 如果这个不起作用,您还有其他选择:laravel.com/docs/5.5/mail
  • 非常感谢@Kristian Lilov。你救了我的一天!我曾在 A2hosting 中托管过。你的解决方案对我有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多