我无法使用 gmail SMTP 通过 swift 邮件发送邮件

Posted

技术标签:

【中文标题】我无法使用 gmail SMTP 通过 swift 邮件发送邮件【英文标题】:I'm failing to send mail with swift mail using gmail SMTP 【发布时间】:2018-09-13 16:25:43 【问题描述】:

我收到了这个错误

Expected response code 250 but got code "530", with message "530-5.5.1 Authentication Required. Learn more at\r\n
530 5.5.1  https://support.google.com/mail/?p=WantAuthError 14sm769143wmo.27 - gsmtp\r\n

我使用了 php artisan config:cache 并重新启动了我的服务器,但我仍然收到错误消息。

这是我的 config/mail.php 详细信息

 'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'smtp.gmail.com'),
    'port' => env('MAIL_PORT', 587),
    'from' => [
            'address' => env('MAIL_FROM_ADDRESS', 'Example@gmail.com'),
            'name' => env('MAIL_FROM_NAME', 'Example'),
        ],
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),

      'username' => env('Example@gmail.com'),

        'password' => env('******'),

这是我的用户控制器

<?php

namespace App\Http\Controllers;


use Illuminate\Http\Request;


class UserController extends Controller


    public function sendMail()
    


        \Mail::send('emails.welcome', array('Test'=>'Test User'),
        function($message) 
        
            $message->from('Example@gmail.com', 'Your Application');
            $message->to('Example@gmail.com', 'Test')->subject('Your Reminder!');        
        );
        echo"Mail sent successfully...!";
    

这是我的视图文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <h1>hello, $Test!</h1>
</body>
</html>

我的 .env 文件

MAIL_DRIVER= smtp
MAIL_HOST= smtp.gmail.com
MAIL_PORT= 587
MAIL_USERNAME = Example@gmail.com
MAIL_PASSWORD = ******
MAIL_ENCRYPTION = tls

我怎样才能让它工作??

【问题讨论】:

***.com/questions/29100877/… 【参考方案1】:

更改您的 .env 文件:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=Example@gmail.com
MAIL_PASSWORD=******
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=Example@gmail.com

我认为587端口和加密tls不能再使用了。可能tls认证无效

【讨论】:

【参考方案2】:

在 .env 文件中设置 smtp 详细信息,而不是在配置文件中。看代码

env('MAIL_DRIVER', 'smtp')

所以这个 env() 函数正在从 .env 文件中获取数据,所以在那里设置你的值。不在配置中。或者如果你想在配置文件中设置,像这样设置

'driver' => 'smtp',
'host' => 'smtp.gmail.com',

等等。

【讨论】:

我已经在我的 env 文件中获得了凭据,但我仍然收到该错误 然后是您的身份验证错误,因为错误也提示,请检查密码,并让您的电子邮件被不太安全的应用程序使用.. 谷歌为此。

以上是关于我无法使用 gmail SMTP 通过 swift 邮件发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 telnet 使用 smtp.gmail.com

Laravel 8:无法与主机 smtp.gmail.com 建立连接

无法通过 gmail 从新创建的电子邮件中使用 phpMailer 发送 SMTP 邮件 [重复]

尝试使用 swift mailer、gmail smtp、php 发送邮件

如何解决“无法与主机smtp.gmail.com建立连接”?

错误 SMTP 无法从 gmail 发送电子邮件