【问题标题】:500 (Internal Server Error) in Laravel while trying to send Mail尝试发送邮件时 Laravel 中的 500(内部服务器错误)
【发布时间】:2018-08-29 03:36:00
【问题描述】:

我想在我的 Laravel 项目中进行在线预约。为此,我为约会生成了一个邮件功能。此邮件功能在 xammp 服务器中工作....但不在实时服务器中。

在尝试发送邮件时遇到此错误

GET http://sencare.com.bd/sencare.com.bd/confirm_appointment?patient_name=test&patient_number=01654&patient_email=rahmanarafat13%40gmail.com&patient_age=8&patient_gender=1&service_id=6&schedule_time_id=1&date=+2018-03-27 500 (Internal Server Error)
send @ jquery-2.1.4.min.js:4
ajax @ jquery-2.1.4.min.js:4
n.(anonymous function) @ jquery-2.1.4.min.js:4
(anonymous) @ (index):2029
dispatch @ jquery-2.1.4.min.js:3
r.handle @ jquery-2.1.4.min.js:3

控制器内部的邮件功能代码

 public function sendMail($emailDataArray)
{
    \Mail::send('frontend.mail.demo', $emailDataArray, function($message) use ($emailDataArray)
    {
        $message->to($emailDataArray['patient_email'], 'Test')->subject('APPOINTMENT');
    });
}

这里$emailDataArray是一个数组,包含from、to等数据。

有什么错误吗?

【问题讨论】:

  • @HH...不,不是...

标签: php laravel xampp


【解决方案1】:

如果您在尝试预约时打开“网络”选项卡并查看响应错误,则会收到错误 'Connection could not be established with host smtp.gmail.com'

这很可能是由于未正确设置您的邮件服务。确保您在config/mail.php 集合中拥有所有正确的.env 变量和详细信息

https://laravel.com/docs/5.5/mail

【讨论】:

  • 能否请您在 .enc 文件中给我更具体的更正?
【解决方案2】:

只需将 SMTP 详细信息放入 .env 文件中,然后再试一次。

MAIL_DRIVER=smtp
MAIL_HOST=mail.mailhost.com
MAIL_PORT=25
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null

【讨论】:

  • .....ERROR: Connection could not be established with host smtp.gmail.com [Connection timed out #110] {"exception":"[object] (Swift_TransportException(code: 0): Connection could not be established with host smtp.gmail.com [Connection timed out #110] at /home2/sencarec/public_html/sencare.com.bd/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php:269)
  • 似乎所有设置都正确。您需要检查您在 .env 文件中提供的 SMTP 凭据。
  • 这是我的.env 文件` MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=shetshuvro@gmail.com MAIL_PASSWORD=yplxqvhpoxjzuiml MAIL_ENCRYPTION=ssl`
  • 更改MAIL_ENCRYPTION=tls 然后运行此命令php artisan config:cache 然后再试一次
【解决方案3】:

解决了这个问题。

只需将 .env 文件中的驱动程序名称从 smtp 更改为 sendmail

'driver' => 'sendmail',

【讨论】:

    猜你喜欢
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 2020-07-21
    相关资源
    最近更新 更多