验证失败:梨邮件包

时间:2014-07-28 13:43:59

标签: php email pear

<?php

    require_once "Mail.php";

    $from = '<from.gmail.com>';
    $to = '<to.yahoo.com>';
    $subject = 'Hi!';
    $body = "Hi,\n\nHow are you?";

    $headers = array(
        'From' => $from,
        'To' => $to,
        'Subject' => $subject
    );

    $smtp = Mail::factory('smtp', array(
            'host' => 'ssl://smtp.gmail.com',
            'port' => '465',
            'auth' => true,
            'username' => 'johndoe@gmail.com',
            'password' => 'passwordxxx'
        ));

    $mail = $smtp->send($to, $headers, $body);

    if (PEAR::isError($mail)) {
        echo('<p>' . $mail->getMessage() . '</p>');
    } else {
        echo('<p>Message successfully sent!</p>');
    }

?>

但是,该程序在$mail = $smtp->send($to, $headers, $body);处失败:

  

验证失败:johndoe@gmail.com

我已经确认电子邮件和密码是正确的。如果我提供的密码无效,则错误将更改为

  

密码错误

我还尝试在我的帐户上禁用两步验证,但这没有帮助。如果证书看起来正确,请告知我为什么会收到此验证错误?

4 个答案:

答案 0 :(得分:1)

通常你得到&#34;验证失败&#34;在您或收件人的电子邮件中使用无效字符作为电子邮件别名时。

例如:

my_email@gmail.com <first_name.last_name>
my_email@gmail.com <first_name@last_name>

无效字符是:

. (dots)
@ (at)
" (double quotes)
[ (bracket opened without closing)
] (bracket closed without opening)
( (parenthesis opened without closing)
) (parenthesis closed without opening)

答案 1 :(得分:0)

我收到了同样的错误。

在尝试使用这些字段后,这对我有用:

而不是

$from = "Sender <sender@example.com>";

尝试

$from = "sender@example.com";

所以你只有来自from字段的来自电子邮件地址。没有其他的。没有括号。

我承认,这不是一个非常优雅的解决方案,但仍然是一种解决方案。

答案 2 :(得分:0)

当我尝试设置mailFrom有空格且没有电子邮件时,出现了此错误:

$this->mailFrom = "Lorem ipsum";'

只需使用电子邮件地址进行更改:

$this->mailFrom = "Lorem ipsum <no-reply@test.com>";

答案 3 :(得分:-1)

即使是迟到的回答,我也会将此发布给其他人。 &#34;验证失败:&#34;用于不是您的凭据的接收方地址。 问题是收件人地址格式错误,Gmail不接受。

//instead of 
$to = '<to.yahoo.com>';
//use
$to = 'Recipient Name <myname@example.com>'
//or simple 
$to = 'myname@example.com';