发送电子邮件时服务器出错; fsockopen():无法连接到 ssl://smtp.gmail.com:465(权限被拒绝)

问题描述 投票:0回答:1

当我尝试使用发送电子邮件验证注册数据时,这里是完整的错误消息,我在本地尝试了电子邮件发送功能,并且它有效,但是当我将其部署到服务器时,我遇到了错误。

完整错误消息:

A PHP Error was encountered
Severity: Notice

Message: Trying to get property of non-object

Filename: admin/Login.php

Line Number: 72

Backtrace:

File: /var/www/html/application/controllers/admin/Login.php
Line: 72
Function: _error_handler

File: /var/www/html/application/controllers/admin/Login.php
Line: 328
Function: sendEmail

File: /var/www/html/index.php
Line: 315
Function: require_once

A PHP Error was encountered
Severity: Warning

Message: fsockopen(): unable to connect to ssl://smtp.gmail.com:465 (Permission denied)

Filename: libraries/Email.php

Line Number: 2069

Backtrace:

File: /var/www/html/application/controllers/admin/Login.php
Line: 79
Function: send

File: /var/www/html/application/controllers/admin/Login.php
Line: 328
Function: sendEmail

File: /var/www/html/index.php
Line: 315
Function: require_once

注意:我使用Codeigniter 3

这是我发送电子邮件的配置,smtp.php :

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp.gmail.com'; // host gmail
$config['smtp_port'] = 465;
$config['smtp_user'] = '[email protected]'; // i am using gmail
$config['smtp_pass'] = 'my_pass_app';
$config['smtp_crypto'] = 'ssl';
$config['mailtype'] = 'html';
$config['charset'] = 'iso-8859-1';
$config['wordwrap'] = TRUE;
$config['smtp_debug'] = 2;
$config['newline'] = "\r\n";
$config['crlf'] = "\r\n";

有什么解决办法吗?

php deployment smtp codeigniter-3 sendmail
1个回答
0
投票

您的电子邮件发送配置看起来没问题。但是,请确保您的 Gmail 帐户允许“不太安全的应用程序”访问它,因为直接使用用户名和密码被 Google 认为不太安全。如果不允许,请在您的 Google 帐户设置中允许安全性较低的应用程序。 https://myaccount.google.com/lesssecureapps

或者,您可以使用 OAuth 2.0 访问 Google API 来发送电子邮件,这样更安全。

© www.soinside.com 2019 - 2024. All rights reserved.