<?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
我已经确认了电子邮件和密码的正确性。如果我提供一个无效的密码,则错误会更改为
密码不正确
我还尝试禁用我的帐户上的两步验证,但没有帮助。请告知我为什么在凭据似乎正确的情况下我可能会收到此验证错误?
ssl://smtp.gmail.com
是否强制执行此项措施,但认为这值得在前期进行评论以排除可能性。 - Mike Guthrie