1

我正在使用 codeigniter 及其电子邮件类尝试在 MAMP 上发送电子邮件(免费版)

我的代码如下

$config = 数组(

        'protocol' => 'smtp',
        'smtp_host' => 'ssl://smtp.googlemail.com',
        'smtp_port' => 465,
        'smtp_user' => 'test@gmail.com.sg',
        'smtp_pass' => '*********',
        'mailtype'  => 'html',
        'starttls'  => true
    );

    $this->load->library('email', $config);
    $this->email->set_newline("\r\n");
    
    $this->email->from('test@gmail.com.sg', 'Jeffrey Way');
    $this->email->to('test_to@gmail.com.sg');     
    $this->email->subject('This is an email test');     
    $this->email->message('It is working. Great!');
    $this->email->send();   
    echo $this->email->print_debugger();

但是我总是得到一个错误

220 mx.google.com ESMTP ri1sm17015935pbc.16 - gsmtp hello:250-mx.google.com 为您服务,[203.116.128.34] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 250 ENHANCED

验证密码失败。错误:535-5.7.1 不接受用户名和密码。如需了解详情,请访问 535 5.7.1 http://support.google.com/mail/bin/answer.py?answer=14257 ri1sm17015935pbc.16 - gsmtp 来自:530-5.5.1 需要身份验证。如需了解详情,请访问 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 ri1sm17015935pbc.16 - gsmtp

遇到以下 SMTP 错误:530-5.5.1 需要身份验证。如需了解详情,请访问 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 ri1sm17015935pbc.16 - gsmtp 至:530-5.5.1 需要验证。如需了解详情,请访问 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 ri1sm17015935pbc.16 - gsmtp

在此先感谢您的帮助。

4

2 回答 2

0
Authentication Required.

您使用的不是自己的 gmail 帐户(电子邮件和密码)

于 2013-04-06T11:45:28.963 回答
0

我在很多地方都看到过这个问题,当然,我在这里是因为我有同样的问题。我认为发生的事情是,当 Jeffrey Way 编写教程时(第 3 天,正是我从哪里得到我的代码)在 2009 年,发送电子邮件的身份验证非常简单。我认为现在与谷歌不同。您必须使用 oauth2 身份验证流程。我已经设法为 CodeIgniter 找到了这样的代码,并且可以进行身份​​验证,但是我仍然不太明白身份验证后要做什么。我可能还不够努力,因为最近我一直在为 Google、Yahoo、Facebook、Twitter 和 Flickr 编写几个 oAuth2 身份验证脚本。我猜在您允许该应用访问您的 Google 信息后,回调页面就是您放置实际发送邮件代码(您在问题中的代码)的位置。所以,我认为这是一个两部分的过程:

  1. 使用 oAuth2 向 Google 进行身份验证,以及
  2. 您的端点是发送电子邮件的回调页面(上述示例代码来自 Way 教程)。

你只想简单地发送一封电子邮件,我意识到,我也是。但我认为你可能想要复制和粘贴并尝试这个工作脚本:

在 codeigniter 中使用 google 帐户登录

于 2013-07-12T18:29:09.080 回答