ส่งเมลล์ด้วย nodemailer + Nestjs
สวัสดีครับ ผู้เขียนได้มีโอกาสทำระบบส่งเมลล์ โดยใช้ library nodemailer ซึ่งเป็น lib ที่เข้าใจง่าย และไม่ซับซ้อน (ความคิดเห็นส่วนตัว อิอิ ^^) โดยในบทความนี้จะ ใช้ nestjs และส่ง gmail นะครับ
มาลุยกัน..
step
1.สร้างโปรเจค nestjs
$ nest new <project-name>
2.ลง nodemailer lib
$ npm install — save @nestjs-modules/mailer nodemailer
doc ref: https://nest-modules.github.io/mailer/docs/mailer.html
ต่อมาเข้าไปที่ setting account ของ gmail ของคุณ เพื่อทำการ allow less secure apps (ทางลัด กดเลย click)
** ปล. allow less secure apps แค่ฝั่ง email ที่จะเป็นผู้ส่ง
3.regist MailModule ที่ app.module.ts
- จะเห็นว่าใช้ host เป็น smtp ของ gmail, ซึ่งหากต้องใช้ mailprovider อื่นก็สามารถเปลี่ยนได้ตรงนี้
- port เป็น 587 จะ map กับ secure แบบ false ถ้าจะเป็น secure true ให้เปลี่ยนไปใช้ port 465
4.สร้าง route ที่ app.controller.ts
**ปล. MailDto
5.สร้าง service เพื่อทำการส่ง เมลล์
implement method sendMail ของ mailService และ assign ค่าจาก parameter ที่รับมา try catch async-await ถ้าส่งสำเร็จจะ return message: “send success” และ catch error ถ้าพบ
6. ยิงใน postman
เย้ 🎉
7. เช็คใน gmail
มาแย้วว
สรุป📍
ตัว nodemail เข้ามาช่วยจัดการการส่ง email ให้ชีวิตง่ายขึ้นด้วยการ setting ที่ง่าย แถมยังเขียน service ง่ายอีกด้วย
Q:ถ้าม้าวิ่งแข่งกับลาใครจะชนะ
A:ลา เพราะลาไปก่อน… ขอบคุณครับ🙏🏻