Php 无法在服务器中的laravel中发送电子邮件

Php 无法在服务器中的laravel中发送电子邮件,php,laravel,email,cpanel,Php,Laravel,Email,Cpanel,我在环境文件中进行了以下配置 MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=465 MAIL_USERNAME=myemail@gmail.com MAIL_PASSWORD='mypassword' MAIL_ENCRYPTION=ssl 我已从RegistrationController进行了用户注册,并发送电子邮件验证该用户。它在带有ubantu的本地LAMP服务器中运行良好。但是,在C面板中遇到以下错误 无法与建立Swift_T

我在环境文件中进行了以下配置

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD='mypassword'
MAIL_ENCRYPTION=ssl
我已从
RegistrationController
进行了用户注册,并发送电子邮件验证该用户。它在带有ubantu的本地LAMP服务器中运行良好。但是,在C面板中遇到以下错误

无法与建立Swift_TransportException连接 主机smtp.gmail.com[无法访问网络]

这是控制器中的寄存器函数

protected function register(Request $request)
{
    /** @var User $user */
    $validatedData = $request->validate([
        'name'     => 'required|string|max:255',
        'email'    => 'required|string|email|max:255|unique:users',
        'password' => 'required|string|min:6|confirmed',
    ]);

    try {
        $validatedData['password']      = bcrypt(array_get($validatedData, 'password'));
        $validatedData['activate_code'] = str_random(30).time();
        if($request->has('company') && $request->company=='on')
        {
            $validatedData['role_id']   = 4;
        }
        else
        {
            $validatedData['role_id']   = 5;
        }
        $user                           = app(User::class)->create($validatedData);
    } catch (\Exception $exception) {
        logger()->error($exception);
        return redirect()->back()->with('alert-danger', 'Unable to create new user.');
    }

    $user->notify(new UserRegisteredSuccessfully($user));
    return redirect()->back()->with('alert-success', 'Successfully created a new account. Please check your email and activate your account.');
}

我已经看到过这样的问题和许多问题,但在我的案例中没有一个是有效的。感谢您的任何帮助。

更新您的
.env
文件,如:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD='mypassword'
MAIL_ENCRYPTION=tls

首先,一旦您创建了gmail帐户,以便从您的网站发送邮件,您必须授予您的gmail帐户从其他应用发送邮件的权限。 要做到这一点

1) 转到你的gmail帐户,点击“
设置->转发和弹出/IMAP
”链接。然后按照下面的说明操作

2) 转到此链接
https://myaccount.google.com/lesssecureapps?utm_source=google-帐户&utm\U媒体=网络
并启用此功能,如下图所示


3) 如果您的web应用正在使用http协议,请确保使用
MAIL\u ENCRYPTION=tls
MAIL\u PORT=587
否则
MAIL\u ENCRYPTION=ssl
MAIL\u PORT=465
您需要对.env配置和帐户进行一些更改

1) 将邮件端口更改为587并加密

 MAIL_PORT=587
 MAIL_ENCRYPTION=tls
2) 在电子邮件帐户中启用IMAP以使用该协议


3) 启用应用程序对您帐户的访问

MAIL\u DRIVER=smtp
更改为
MAIL\u DRIVER=sendmail


完成
.env
编辑后,在您的终端中输入此命令以清除缓存:
php artisan config:cache

请将端口
465
更改为
587
并且mail\u encryption=tls也修改您是否允许您的gmail帐户在其他应用程序中发送邮件???@AkbarMirsidikov nolet me检查一旦我现在收到此错误,
流式套接字\u enable\u crypto():对等证书CN=
gains.nanosupercloud.com'与预期的CN=
smtp.gmail.com'不匹配
请添加英文图像,这将很容易理解并为您更改仍然相同的问题请登录并传递true??