SwiftMailer gmail oauth刷新访问令牌

时间:2015-06-07 11:45:03

标签: php email swiftmailer

我想使用oauth authentification通过gmail SMTP发送电子邮件。

在此文档上: https://github.com/swiftmailer/swiftmailer/blob/b11f0054d96fa49200d10401e34d879e46c2a2c6/lib/classes/Swift/Transport/Esmtp/Auth/XOAuth2Authenticator.php

我可以找到这个示例代码:

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 587, 'tls')
  ->setAuthMode('XOAUTH2')
  ->setUsername('YOUR_EMAIL_ADDRESS')
  ->setPassword('YOUR_ACCESS_TOKEN');

很棒的工作。但它只工作1小时,因为访问令牌在此期间过期。我找不到更新访问令牌的方法吗?我们如何将刷新令牌传递给swiftmailer?

1 个答案:

答案 0 :(得分:2)

setPassword应该从更新位置获取令牌,因此您需要创建一个函数,从不断更新的地方返回此令牌,在google api的情况下是一个Web服务,如下链接将有助于:

Google OAuth 2.0 refresh token for web application with public access

https://developers.google.com/accounts/docs/OAuth2WebServer#offline