如何使用Google OAuth发送电子邮件(通过SMTP)?

时间:2011-10-21 17:30:36

标签: php zend-framework oauth gmail

已阅读thisthis并使用here中的示例。

但是,我仍然难以使用OAuth作为经过验证的Google用户发送电子邮件。我也有有效的OAuth令牌,秘密和xoauth令牌。

我发送电子邮件的代码:

$authenticateParams = array('XOAUTH', $initClientRequestEncoded); 

$smtp = new Zend_Mail_Protocol_Smtp('smtp.gmail.com', 587, array(
"AUTH" => $authenticateParams, 'ssl' => 'tls')); 

try {
   // Create a new mail object
   $mail = new Zend_Mail();

   $mail->setFrom("aaaaa@gmail.com");
   $mail->addTo("bbbbb@gmail.com");
   $mail->setSubject("Your account has been created");

   $email = "Thank you for registering!";

   $mail->setBodyText($email);
   $mail->send();

} catch (Exception $e) {
   echo "error sending email . <BR>" . $e;
}

但这似乎发送了一封匿名电子邮件而不是用户身份验证。如果我这样做:

$smtp = new Zend_Mail_Transport_Smtp('smtp.gmail.com', array('AUTHENTICATE' => $authenticateParams, 'ssl' => 'tls')); 
Zend_Mail::setDefaultTransport($smtp);

我得到:异常'Zend_Mail_Protocol_Exception',消息'5.5.1需要验证。

我确定这只是一个正确的邮件传输smtp参数的情况,但发送SMTP电子邮件的文档不存在,我找不到任何代码示例。

1 个答案:

答案 0 :(得分:0)

查看以下博文帖子,它们会告诉您哪里出错了。

google smtp oauth2 authentication

send mail with gmail smtp and xoauth