quot;Password not accepted from server: 535 Incorrect authentication dataquot; when sending with GMail and phpMailer(“服务器不接受密码:535 验证数据不正确使用 GMail 和 phpMailer 发送时)
问题描述
我在本地主机上运行相同的 php 脚本 - 我的带有 XAMPP 的 PC 和托管服务器上.它适用于我的 PC,但不适用于托管服务器.
I have the same php script running on localhost - my PC with XAMPP and on a hosted server. It works from my PC, but not from the hosted server.
当我从托管服务器发送它时,我得到以下输出:
When I send it from the hosted server, I get the following output:
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: jdorner4@gmail.com FAILED
我怀疑服务器上有一个配置设置需要更改,但我不知道是哪一个.任何建议将不胜感激!
I suspect there is a configuration setting that needs to be changed on the server, but I don't know which one. Any advice would be greatly appreciated!
代码如下:
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.
The solution was to enable outgoing SMTP from the server settings.
在运行 cPanel 的 WHM 的服务器上,它位于 WHM 的调整设置"部分下.
On servers running cPanel's WHM, this is located under WHM's "Tweak Settings" section.
选项是启用/禁用 - 选择禁用.
The option is to enable/disable - choose disable.
警告:进行此更改将重定向传出 SMTP 连接,允许帐户进行直接连接,这可能会增加您将服务器列入黑名单的几率.
Caveat: Making this change will redirect outgoing SMTP connections allow accounts to make direct connections which may increase your odds of getting your server blacklisted.
这篇关于“服务器不接受密码:535 验证数据不正确"使用 GMail 和 phpMailer 发送时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:“服务器不接受密码:535 验证数据不正确"使用 GMail 和 phpMailer 发送时
				
        
 
            
        - 带有通配符的 Laravel 验证器 2021-01-01
 - SoapClient 设置自定义 HTTP Header 2021-01-01
 - Laravel 仓库 2022-01-01
 - 正确分离 PHP 中的逻辑/样式 2021-01-01
 - 没有作曲家的 PSR4 自动加载 2022-01-01
 - Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
 - Mod使用GET变量将子域重写为PHP 2021-01-01
 - PHP Count 布尔数组中真值的数量 2021-01-01
 - 如何定位 php.ini 文件 (xampp) 2022-01-01
 - 从 PHP 中的输入表单获取日期 2022-01-01
 
				
				
				
				