使用 GMail 和 phpMailer 发送时出现“服务器未接受密码:535 身份验证数据不正确”

2024-05-07

我在本地主机上运行相同的 php 脚本 - 我的带有 XAMPP 的 PC 和托管服务器上。它可以在我的电脑上运行,但不能在托管服务器上运行。

当我从托管服务器发送它时,我得到以下输出:

SMTP -> ERROR: Password not accepted from server: 535 Incorrect authentication data  
SMTP -> ERROR: RCPT not accepted from server: 550-Please turn on SMTP Authentication in your mail client, or login to the 550-IMAP/POP3 server before sending your message. dev.camppage.com 550-(patchvalues.com) [205.234.141.238]:50958 is not permitted to relay through 550 this server without authentication.  
SMTP Error: The following recipients failed: [email protected] /cdn-cgi/l/email-protection FAILED

我怀疑服务器上有一项配置设置需要更改,但我不知道是哪一项。任何建议将不胜感激!

这是代码:

function send_gmail ($recipients, $subject, $message, $attachment_filenames = array()) 
{
  global $email_address, $email_password, $email_name;
  require_once ($_SERVER['DOCUMENT_ROOT']. '/php/PHPMailer/class.phpmailer.php');   

  $body  = $message;
  $body  = str_replace("\\", '', $body);
  $mail = new PHPMailer();
  $mail->CharSet = "UTF-8";
  $mail->IsSMTP();
  $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
  $mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing) 0 - none; 1 - errors & messages; 2 - messages only
  $mail->SMTPAuth   = true;                  // enable SMTP authentication
  $mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
  $mail->Port       = 465;                   // set the SMTP port
  $mail->Username   = $email_address;  // GMAIL username
  $mail->Password   = $email_password; // GMAIL password
  $mail->SetFrom($email_address);
  $mail->FromName   = $email_name;
  $mail->AddReplyTo($email_address,$email_name);
  $mail->Subject    = $subject;
  $mail->MsgHTML($body);
  $mail->IsHTML(true); // send as HTML

  if (isset ($recipients[0]))
  {
    foreach ($recipients AS $to)
    {
        $to_pieces = explode (",", $to, 2);
        $to_email = trim ($to_pieces[0]);
        if (isset ($to_pieces[1]))
            $to_name = trim ($to_pieces[1]);
        else
            $to_name = " ";
        $mail->AddAddress($to_email, $to_name);
    }
    $mail->IsHTML(true); // send as HTML

    if ($mail->Send()){
        return TRUE;
    } else {
        return FALSE;
    }
} 
else 
{
    return FALSE;
}
}

TIA


解决方案是从服务器设置启用传出 SMTP。

在运行 cPanel WHM 的服务器上,它位于 WHM“调整设置”部分下。

该选项是启用/禁用 - 选择禁用。

注意:进行此更改将重定向传出 SMTP 连接,允许帐户建立直接连接,这可能会增加将服务器列入黑名单的几率。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 GMail 和 phpMailer 发送时出现“服务器未接受密码:535 身份验证数据不正确” 的相关文章

  • PHP 的 USORT 回调函数参数

    这是一个非常深奥的问题 但我真的很好奇 今天是我多年来第一次使用 usort 我对到底发生了什么特别感兴趣 假设我有以下数组 myArray array 1 9 18 12 56 我可以用 usort 对此进行排序 usort myArra
  • preg_match_all JS 等效吗?

    Javascript 中是否有与 PHP 的 preg match all 等效的函数 如果没有 将正则表达式的所有匹配项放入数组的最佳方法是什么 我愿意使用任何 JS 库来让它变得更容易 您可以使用match使用全局修饰符 gt gt g
  • TCPDF 为一个文档中的不同页面设置不同的页眉

    有没有办法使文档中第一页的页眉徽标和第二页的页眉徽标不同 我认为在添加页面之间更改标题数据可能会解决问题 但在我的测试中 添加第一页后设置标题似乎没有效果 other stuff pdf gt setHeaderFont array PDF
  • Apache“无法初始化模块”,因为更改 PHP 配置后模块和 PHP 的 API 不匹配

    php v 给出了这个 PHP Warning PHP Startup memcache Unable to initialize module Module compiled with module API 20060613 PHP co
  • 将 php filter_var 与 mysql_real_escape_string 结合使用

    我想首先说 我意识到 PDO mysqli 是新标准 并且已被 SO 广泛覆盖 然而 在这种特殊情况下 我没有时间在启动客户端站点之前将所有查询转换为 PDO 以下内容已在网站上的大多数查询中使用 我可以补充一下 这不是我所使用的 user
  • 使用 chr + rand 生成随机字符 (A-Z)

    我使用以下命令生成 A Z 的随机字符 但它偶尔会生成 符号 知道如何防止这种情况吗 也许字符范围不正确 letter chr 64 rand 0 26 用这个就更方便了 大写 letter chr rand 65 90 小写 letter
  • 使用服务帐户插入 Google 日历条目

    我正在尝试使用服务帐户在 Google 日历上创建条目 我真的很接近这一点 但最后一行行不通 我得到一个500 Internal Service Error当我让它运行时 否则 程序运行时不会出错 无论其价值如何 The Calendar
  • 通过 PHP CURL 添加 Google 联系人

    我已经成功地通过 Zend Framework 和 PHP 将联系人添加到 google 我也希望能够通过 CURL 来做到这一点 有人有关于如何执行此操作的良好教程吗 我终于能够通过 CURL 和访问令牌来做到这一点 首先 我要说的是OA
  • 如何获取共同好友列表

    你好 我想知道如何才能找到共同的朋友 我目前在思考这个问题时遇到问题 我有一个名为 users 的表 它是这样的 id name 1 Kenny 2 Jack 3 Jimmy 4 Chris 5 Meg 6 Jake 7 Micheal 8
  • drupal 7 将实际内容存储在数据库中的哪里?

    我打开了 drupal 7 的数据库并在表中查找node node revisions and node types并且找不到 drupal 存储实际的位置body节点 内容 的 有人有线索吗 哦 我刚刚找到了 在 D7 中 他们实现了字段
  • CodeIgniter 控制器构造函数

    我对 codeigniter 很陌生 我想知道控制器中构造函数的含义是什么 我在 codeigniter 教程中看到以下代码 class upload extends CI Controller function construct par
  • PHP-向某些浏览器显示消息

    我已经搜索过这个 我发现的一切都超出了我的需要 我以前用 JavaScript 做过这个 但我真的更喜欢使用 PHP 我将如何根据访问者使用的浏览器向他们显示消息 Example IE 用户会看到 您正在使用 Internet Explor
  • 使用 PHP 将文件上传到 MySql DB

    我希望用户通过我在后端使用 MySql 用 PHP 开发的 web 应用程序上传文件 我想将文件存储在数据库中 我在这样做时遇到了问题 此外 一旦文件存储在数据库中 我们如何下载它 并在 web 应用程序中正确显示它 文件类型和文件的其他属
  • Laravel Redis 配置

    我目前正在使用 Laravel 和 Redis 创建一个应用程序 几乎一切都工作正常 我按照文档中的说明扩展了身份验证 用户可以订阅 登录 注销 我可以创建内容 所有内容都存储在 Redis 中 但我有一个问题 我无法运行 php arti
  • 如何从 URL 获取当前的 Web 目录?

    如果我有一个网址http www example com sites dir index html http www example com sites dir index html 我想提取 sites 这个词 我知道我必须使用正则表达式
  • 为什么 count 比 $count 差

    我只是在查看不同问题的答案以了解更多信息 我看到一个answer https stackoverflow com a 4891402 429850这表明在 php 中编写这样的做法是不好的做法 for i 0 i
  • MySQL LAST_INSERT_ID() 和 FOUND_ROWS()

    当 PHP 脚本每秒有数百个查询时会发生什么 它会影响这些函数吗 是否保证它们会返回当前脚本中最后一个插入语句中最后插入的 id 它会返回当前脚本中最后一次选择的行数吗 如果同时从另一个脚本进行新的插入或选择 在 FOUND ROWS 的情
  • 我可以在 php 中的 SESSION 数组上使用 array_push 吗?

    我有一个想要在多个页面上使用的数组 因此我将其设为 SESSION 数组 我想添加一系列名称 然后在另一个页面上 我希望能够使用 foreach 循环来回显该数组中的所有名称 这是会议 SESSION names 我想使用 array pu
  • Ace Editor 自动完成和多种语言

    如何为 Ace 编辑器创建自动完成功能以及如何突出显示 php 中的 html javascript 和 csshttp ace ajax org http ace ajax org
  • CodeIgniter加入选择为

    我的数据库中有 2 个表需要加入 一张表是 artikelen 表 另一张表是 Collections 表 我目前有 this gt db gt select this gt db gt from collecties this gt db

随机推荐