Laravel 5.5 发送电子邮件没有响应 smtp.gmail.com #10060

Posted

技术标签:

【中文标题】Laravel 5.5 发送电子邮件没有响应 smtp.gmail.com #10060【英文标题】:Laravel 5.5 sending Email not responding smtp.gmail.com #10060 【发布时间】:2018-07-14 07:45:55 【问题描述】:

laravel 5.5 在 windows(xampp) 上的网站本地服务器中发送邮件 这是我发送的代码

code

我的错误

无法与主机 smtp.gmail.com 建立连接 [连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机没有响应。 #10060]

帮助我如何检查此错误异常

MailController.php 文件

    public function index()

            Mail::send('mail.index', ['key' => 'value'], function($message)
    
        $message->to('akambajalan0@gmail.com', 'Hello Akam ')->subject('Welcome!');
    );

    return view('mail.index');


.env 文件

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=578
MAIL_USERNAME=*myemail*@gmail.com
MAIL_PASSWORD=*mypassword*
MAIL_ENCRYPTION=tls 

image

【问题讨论】:

发布一些代码而不是图片 您在 .env 文件中使用哪个 smtp 端口来发送邮件? 这是一个代码 Mail::send('mail.index', ['key' => 'value'], function($message) $message->to('akambajalan0@gmail .com', 'Hello Akam')->subject('Welcome!'); );返回视图('mail.index'); .env 文件 MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=578 MAIL_USERNAME=akambajalan0@gmail.com MAIL_PASSWORD=*mypassword* MAIL_ENCRYPTION=tls 您确定您的 MAIL_PASSWORD == 您为第三方应用生成的密钥,而不是您为 gmail 帐户生成的密码吗? 【参考方案1】:

这就是发送电子邮件的全部内容 我认为您的问题出在 Steam ssl 上

'driver' => env('MAIL_DRIVER', 'smtp'),
'stream' => [
    'ssl' => [
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true,
    ],
],

如果您想使用令牌发送邮件,您可以制作并使用

Route::post('/PasswordReset', 'ResetPasswordController@GetToken');

然后通过邮件发送令牌,您可以在其中保存令牌,您甚至可能不保存它您可以使用用户名有一个名为 bcrypt() 的函数;你可以用它来散列他的用户名,它会给你长令牌,但我不喜欢因为令牌不会改变

我更喜欢将新密码发送给他并让他登录然后更改密码你可以使用str_random(8);它会生成8个带有字母的随机数

尝试帮助你首先你必须配置你的邮件去 Config/mail.php 并在驱动程序之后添加这个

'driver' => env('MAIL_DRIVER', 'smtp'),
'stream' => [
    'ssl' => [
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true,
    ],
],

第二次转到您的 .env 文件,将其更改为您的主机详细信息列表尝试使用 gmail one

MAIL_DRIVER=smtp

MAIL_HOST=smtp.gmail.com

MAIL_PORT=587

MAIL_USERNAME=yourgmailMail@gmail.com

MAIL_PASSWORD=yourpassword

MAIL_ENCRYPTION=tls

第三次转到你的控制器,你将在列表中发送邮件功能假设它的名字是 SendMassEmailController 这是整个控制器

最后一件事是路由到 web.php

Route::post('/SendMassEmail','SendMassEmailController@SendMassEmail');

最后祝你好运,玩得开心

【讨论】:

替换:smtp.gmail.com 为 173.194.65.108 但我确定你错过了我写的 up 代码中的一些东西,你能把 mail.php 发给我吗,因为我现在只是测试它,它适用于我用 smtp

以上是关于Laravel 5.5 发送电子邮件没有响应 smtp.gmail.com #10060的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.5 不发送电子邮件

使用 gmail 发送 Laravel 5.5 邮件 [重复]

如何在 Laravel 5.5 中将数据插入表格并获取电子邮件通知?

Laravel 5.2:邮件没有从cron-job发送,从邮件响应中收到错误

Laravel 5.5 自定义重置密码抛出令牌不匹配

laravel 中的 Swift_TransportException 错误