2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【AWS&Firebase】SESとTrigger Emailを連携してみた

Posted at

どうもアッキーです。

毎日記事を更新しており、ついに100個近くまで迫ってまいりました。

やっぱりアウトプットはいいですね。

と言うことで今回は、AWSのSESとFirebaseのTrigger Emailを連携させてみたいと思います。

SESでの設定は割愛します。

もしまだSESでの設定を行っていない方は以下の記事をご覧ください。

【AWS】AWS初心者がRoute53+SES+S3+Lambdaを使って、独自ドメインに送られてきたメールをGmailに転送してみた
【AWS】AWS初心者がRoute53+SESを使って、独自ドメインでGmailからメールを送信してみた

SESの設定が済んでいる艇で話を進めていきますのでご了承ください。

それでは参りましょう!

#認証情報の作成#

恐らくSESで既に設定を終えている方は、1度SMTPの認証情報を作成していると思います。

その時に、ユーザーネームとパスワードが表示されたはず。

忘れてしまった方は、これを機にもう一度作成しましょう。

ここで、問題なのがパスワードに/が入っている場合、必ずもう一度作成してください。

なぜかは後で説明します。

もう一度言います。

パスワードに/が入っている場合、必ずもう一度作成してください!

AWSのSESの画面へ行きh左のメニュー欄からSMTP Settingsを開きCreate My SMTP CredentialsからSMTP認証情報を作成して下さい。

作成出来たらユーザー名とパスワードが表示されます。

一応認証情報をダウンロードしておきましょう!

#Trigger Emailの設定#

次に、こちらからTrigger Emailをインストールしてください。

インストールし終えたら、認証情報などの登録画面に行くと思うので下記の表を参考に認証情報の入力を行ってください。

Cloud Functions location Tokyo (asia-northeast-1)
SMTP connection URI smtp://ユーザー名:パスワード@email-smtp.<**SESの登録を行ったリージョン** 例:ap-northeast-1>.amazonaws.com:587
Email documents collection mail
Default FROM address info@example.com(メール送信するアドレスを入力)

SMTP connection URIが少し見づらいと思うので以下のようになればOKです!

smtp://ABSHSISIIS:mcsihHISCHISCq3292u48hd@email-smtp.ap-northeast-1.amazonaws.com:587

ここで、先ほど注意したパスワードに/が入っていると認証情報正しく判定してくれません。

今一度、パスワードに/が入っていないかご確認ください。

その他にも3つ設定があると思うのですが、ここは後からでも変えれるので何もしなくてOK!

これで、メールを送信する準備は整いました。

後はCluudFirestoreでコレクションを追加してあげれば、自動的にメールが送信されます。

以下に例を載せておきます。

index.js
const functions = require('firebase-functions')
const admin = require('firebase-admin')

// 省略

const db = admin.firestore()

exports.sendContactMail = functions.region('asia-northeast1').https.onCall(async (data, context) => {
  return await db.collection('mail').add({
    to: data.to,
    message: {
      subject: 'テストメール',
      html: `
        <h1>テスト</h1>
      `
    }
  })
})

こんな感じでCloudFunctionsから追加してあげるとメールが送信されます。

Firebaseからのメール送信はほぼ100%で届きます。

開発段階で失敗したところを見たことがありません。

日本特有のau、docomo、softbankなどのキャリアメールにもしっかりと届きます。

ここで、エラーが出ている方は恐らく設定段階のSMTP connection URIが間違えている可能性が十分に高いです。

パスワードに/が入っていないか、URIに間違いないかをもう一度確認してみてください。

以上、「【AWS&Firebase】SESとTrigger Emailを連携してみた」でした!

また、何か間違っていることがあればご指摘頂けると幸いです。

他にも初心者さん向けに記事を投稿しているので、時間があれば他の記事も見て下さい!!

あと、最近「ココナラ」で環境構築のお手伝いをするサービスを始めました。

気になる方はぜひ一度ご相談ください!

Thank you for reading

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?