皆さんこんにちは!
最近AWSの様々な機能に触れるようになったのですが、何と言っても便利!!!
こういう機能無いかなと調べたらほぼ確実にある!
そんなこんなで今回はAWSのSES(Simple Email Service)を使って、nodemailer
で独自ドメインからメールを送信して見ようと思います!
はじめに
独自ドメインは取得しているていで話を進めていきます。
また、SESでの設定も今回は省きます。
SESでメール送信の設定を行っていないという方は、下記の記事をご覧ください。
・【AWS】AWS初心者がRoute53+SESを使って、独自ドメインでGmailからメールを送信してみた
それでは説明を見ていきましょう!
nodemailerの準備
まずは、パッケージをインストールします。
npm i nodemailer
次に、SESでメールの登録を行った際に、ユーザー名、パスワードの情報をダウンロードしているかと思います。
していない場合はもう一度設定を行ってSESのユーザー名、パスワードが記載してあるファイルをダウンロードしてください。
それらのユーザー名とパスワードを以下のusername
とpassword
に定義してください。
また、ホスト名もSESで作成したリージョンを指定して定義してください。
constuserName='ユーザー名'constpassword='パスワード'constmailAddress='info@example.com'consthost='email-smtp.<リージョン(例:ap-northeast-1)>.amazonaws.com'
そして、この情報を元に以下のようにtransporter
を作成します。
constuserName='ユーザー名'constpassword='パスワード'constmailAddress='info@example.com'consthost='email-smtp.<リージョン(例:ap-northeast-1)>.amazonaws.com'consttransporter=nodemailer.createTransport({host:host,port:587,secure:false,auth:{user:userName,pass:password}})
メールオプションの設定
次に、メール内容を決めます。
constuserName='ユーザー名'constpassword='パスワード'constmailAddress='info@example.com'consthost='email-smtp.<リージョン(例:ap-northeast-1)>.amazonaws.com'consttransporter=nodemailer.createTransport({host:host,port:587,secure:false,auth:{user:userName,pass:password}})constmailOptions={from:mailAddress,to:'example@gmail.com',subject:'お問い合わせ内容の確認',html:`
<p>テスト</p>
`}
meilOptions
にメール内容を記述してください!
メールの送信
最後にメールを送信してみましょう!
constuserName='ユーザー名'constpassword='パスワード'constmailAddress='info@example.com'consthost='email-smtp.<リージョン(例:ap-northeast-1)>.amazonaws.com'consttransporter=nodemailer.createTransport({host:host,port:587,secure:false,auth:{user:userName,pass:password}})constmailOptions={from:mailAddress,to:'example@gmail.com',subject:'お問い合わせ内容の確認',html:`
<p>テスト</p>
`}returntransporter.sendMail(mailOptions,(erro,info)=>{if(erro){return{error:erro.toString(),message:'To send mail is failed'}}return{message:'To send mail is successed'}})
このようにしてSESを使って、独自ドメインでメールを送信することができます。
そこまで難しくないとは思います!
メールが届かない場合は認証情報が間違っている可能性が高いです。例えばユーザー名とかパスワードとか。
それでも送信されない場合はSESでの設定を疑ってみてください!
以上、「【AWS】AWSのSESとnodemailerを使って、独自ドメインからメールを送信してみた」でした!
また、何か間違っていることがあればご指摘頂けると幸いです。
他にも初心者さん向けに記事を投稿しているので、時間があれば他の記事も見て下さい!!
あと、最近「ココナラ」で環境構築のお手伝いをするサービスを始めました。
気になる方はぜひ一度ご相談ください!
Thank you for reading