2020/07 時点での記事となります。
G Suite前提での手順となってしまいますが、参考になればと思います。
[ひとことでいうとこんな記事]
nodemailerからメール送信する際、自分の所持しているメルアドを利用せずにエイリアス(Info@, sales@ 等)のアドレスからの送信が可能です!
[こんな人におすすめ]
[目次]
参考にさせていただいた記事です。ありがとうございます。
node.js 上の nodemailer で OAuth 2.0 を使って gmail からメールを送る
そして、nodemailerでのエイリアスアドレスでの送信に関してはstackoverflowのコメント欄を参考に設定をいたしました
Nodemailer send emails using original user account instead of alias
クライアントIDとクライアントシークレットが表示されるので、保存しておく。
項目 | 値 |
---|---|
OAuth flow | Server-side |
OAuth endpoints | |
Authorization endpoint | そのまま (https://accounts.google.com/o/oauth2/v2/auth) |
Token endpoint | そのまま (https://oauth2.googleapis.com/token) |
Access token location | Authorization header w/ Bearer prefix |
Access type | Offline |
Force approval prompt | No |
Use your own OAuth credentials | チェックボックスをクリック |
OAuth Client ID | さきほど取得した クライアントID |
OAuth Client secret | さきほど取得した クライアントシークレット |
(※これがないと、nodemailerで送信した際に、エイリアスのアドレスから送信されたことにならず、元のアドレスからの送付となってしまいます。)
npm
でも yarn
でもconst nodemailer = require('nodemailer')
const auth = {
type: 'OAuth2',
user: 'alias@adress', // エイリアスのアドレス
clientId: 'clientId', // Client ID
clientSecret: 'clientSecret', // Client Secret
refreshToken: 'refleshToken', // Reflesh Token
}
const transporter = nodemailer.createTransport({
service: 'gmail',
auth
})
const mailOptions = {
from: `エイリアス <alias@mail.com>`, // エイリアスのアドレスと名前
to: `send_to@mail.com`, // TO
bcc: `blind@mail.com`, // BCC
subject: `Subject`, // タイトル
text: `text` // 本文
}
transporter.sendMail(mailOptions)
以上の方法で、エイリアスのメールアドレスを用いたnodemailerの送信が可能になりました。
ガッツリとシステムを組む場合にはこのような手法をとらないような気もしますが、スモールビジネスで小さくはじめたい方などは、Googleのようなプラットフォームにのっかるのも手ではないでしょうか?
最終的に Firebase Functions にメール送信は任せたいと思います。