개요
SMTP를 사용하기 위해서는 발신자의 구글계정에서 SMTP또는 IMAP을 사용으로 설정해야 되고
구글 계정의 2단계 인증을 켜고 2단계 인증에서 앱 비밀번호를 발급받아야 한다.
앱 비밀번호는 보통 wi3e wie2 cciv weio
의 형식이다
진행
nodemailer 패키지를 임포트 한다.
npm install nodemailer
senderinfo.json 파일을 하나 만든 후 발신자의 계정과 앱 비밀번호를 적는다
{
"user": "myauth@mail.com",
"pass": "google의 예) wi3e wie2 cciv weio"
}
mail.js 파일을 하나 만든 후 아래의 내용을 입력한다.
const nodemailer = require('nodemailer');
const senderInfo = require('../senderinfo.json');
// 메일발송 객체
const mailSender = {
// 메일발송 함수 (보낸사람의 대표 이름, 받는주소, 제목, html문서)
sendGmail: function (sender,toEmail, subject, html) {
var transporter = nodemailer.createTransport({
service: 'gmail', // 메일 보내는 곳
prot: 587, //gmail 의 경우 587을 사용함
host: 'smtp.gmail.com',
secure: false,
requireTLS: true ,
auth: {
user: senderInfo.user, // 보내는 메일의 주소
pass: senderInfo.pass // 보내는 메일의 비밀번호
}
});
// 메일 옵션
var mailOptions = {
from: sender+' <'+senderInfo.user+'>', // 보낸사람의 메일주소 및 이름
to: toEmail, // 수신할 이메일
subject: subject, // 메일 제목
//text: text // 메일 내용
html : html //html형식의 메일 내용
};
// 메일 발송
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
}
}
module.exports = mailSender;
아래와 같이 사용할 수 있다.
const sender = `(주)대왕컴퍼니`;
const toEmail = `jwk1234@gmail.com`;
const subject = '인증번호 요청결과입니다.'
const html = `
<meta charset="utf-8" />
<title></title>
<p>안녕하세요 고객님 대왕컴퍼니입니다.</p>
<p>요청하신 인증번호는 32458 입니다.</p>
`;
sendGamil(sender,toEmail,subject,html);
'⚙️ Node.js' 카테고리의 다른 글
[Javascript 심화] 배열 (0) | 2024.01.28 |
---|---|
[Javascript 심화] 객체와 참조 (2) | 2024.01.27 |
[Node.js] path 모듈에 대해 알아보자 (0) | 2023.02.20 |
[Node.js] Callback 패턴을 async/await 패턴으로 바꾸기 (0) | 2023.02.17 |
[Node.js] MySql 시간 출력 시 Z가 붙는 문제 (0) | 2022.09.02 |