-
[NodeJS] 메일 전송 기능 구현 - Nodemailer + GmailFramework/NodeJS 2021. 6. 27. 13:51
Nodemailer는 기본적으로 Node.js 사용자가 메일 전송 기능구현을 위해서 기본적으로 사용하는 모듈이라고 합니다.
0. Gmail권한 설정하기
* 추후 기능 구현중 접근 관련 오류가 발생할 수 있으므로 여기 링크에서 '보안 수준이 낮은 앱 허용'을 사용으로 바꿔줘야 합니다.
그리고 내 구글 계정에 대한 액세스를 허용해줘야 하기 때문에
https://accounts.google.com/DisplayUnlockCaptcha 해당 링크에서 '계속'을 눌러서 허용해줘야 합니다.
1. nodemailer 모듈 설치
$ npm install nodemailer
2. nodemailer 모듈 불러오기
const nodemailer = require('nodemailer');
3. config 설정
const transporter = nodemailer.createTransport({ service: 'gmail', host: 'host 메일 주소', port: 587, secure: false, auth: { user: '메일 주소', pass: '메일 비밀번호', }, });
4. 메일 전송 기능 구현
const info = await transporter.sendMail({ from: `"Airbnb clone" <${process.env.NODEMAILER_USER}>`, // 보내는 사람 to: getUserEmail[0].email, // 받는 사람 subject: 'Airbnb Reservation Complete info', // 제목 text: '', // 내용 html: ` <h1>Reservation Complete</h1><br> <b>Room Name: ${checkRooms[0].title}</b><br> <b>Room Location: ${checkRooms[0].locationName}</b><br> <b>Date: ${checkReservations[0].startDate} ~ ${checkReservations[0].endDate}</b><br> `, // html로 표현한 내용 });
저는 에어비앤비 기능 구현 시 사용했기에 위와 같이 코드를 작성했었습니다.
html 부분에 내용을 작성한다면 text 부분은 작성하지 않아도 됩니다.
- 전체 코드
const nodemailer = require('nodemailer'); const transporter = nodemailer.createTransport({ service: 'gmail', host: 'host 메일 주소', port: 587, secure: false, auth: { user: '메일 주소', pass: '메일 비밀번호', }, }); const info = await transporter.sendMail({ from: `"Airbnb clone" <${process.env.NODEMAILER_USER}>`, // 보내는 사람 to: getUserEmail[0].email, // 받는 사람 subject: 'Airbnb Reservation Complete info', // 제목 text: '', // 내용 html: ` <h1>Reservation Complete</h1><br> <b>Room Name: ${checkRooms[0].title}</b><br> <b>Room Location: ${checkRooms[0].locationName}</b><br> <b>Date: ${checkReservations[0].startDate} ~ ${checkReservations[0].endDate}</b><br> `, // html로 표현한 내용 });
기능 구현이 완료된다면 아래 사진과 같이 정상적으로 메일이 오는 것을 확인하실 수 있습니다.
참고자료
'Framework > NodeJS' 카테고리의 다른 글
[Yarn] Node Version 강제하기 (0) 2024.02.15 NodeJS - Event Loop (0) 2021.12.10 [NodeJS] crypto Module을 이용한 단방향 암호화 (0) 2021.07.20