提问者:小点点

SwiftMailer gmail oauth刷新访问令牌


我想用oauth身份验证发送带有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小时,因为访问令牌在此期间后过期。我找不到任何方法来更新访问令牌?如何将刷新令牌传递给swftmailer?


共1个答案

匿名用户

setPassword应该从它被更新的地方得到令牌,所以你需要做一个函数,返回这个令牌从任何地方它是不断更新的,一个Web服务在谷歌api的情况下,按照这些链接将帮助:

Google OAuth 2.0刷新令牌用于具有公共访问权限的Web应用程序

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