不過如果是使用 gmail 當寄件者
你只有 2 個選擇
1. 降低 gmail security policy (有風險)
2. 使用 OAuth2
為了安全起見
我這裡是使用第 2 種方式
可參考 Nick Noarch 的 Sending Emails with Node.js Using SMTP, Gmail, and OAuth2
雖然照他的方式可以順利的寄發 email
但 googleapis 這個 module 在 refresh token 時會有以下警告
google-auth-library:DEP007
The `refreshAccessToken` method has been deprecated, and will be removed
in the 3.0 release of google-auth-library. Please use the `getRequestHeaders`
method instead.
試了一下應該這樣可以解決了
const oauth2Client = new OAuth2(clientID, clientSecret, redirectURL);
oauth2Client.setCredentials({refresh_token: refresh_token});
// old way
oauth2Client.refreshAccessToken().then((tokens) => {
var token1 = tokens.credentials.access_token;
});
// new way
oauth2Client.getRequestHeaders().then(header => {
var patten = 'Bearer ';
var token2 = header.Authorization.substring(patten.length);
});
沒有留言:
張貼留言