https://nodemailer.com/about/
사용을 위한 코드 틀은 위 사이트에 있다.
먼저, 내 메일함 환경설정에서 POP3/SMTP를 사용함으로 변경한다.
해당 페이지에 아래 정보가 적혀있다.
import mailer from 'nodemailer';
...
// create reusable transporter object using the default SMTP transport
const transporter = mailer.createTransport({
service: 'naver',
host: 'smtp.naver.com', // SMTP 서버명
port: 465, // SMTP 포트
auth: {
user: process.env.NODEMAILER_USER, // 네이버 아이디
pass: process.env.NODEMAILER_PASS, // 네이버 비밀번호
},
});
const mailOptions = {
from: process.env.NODEMAILER_USER, // 네이버 아이디
to: req.body.email, // 수신자 아이디
subject: '제목',
html: emailTemplate,
};
// 두번째 인자로 콜백 함수를 넣어주면 await x
transporter.sendMail(mailOptions, function (err, info) {
if (err) {
console.log(err);
} else {
console.log('Successfully Send Email.', info.response);
transporter.close()
}
});
위 코드의 mailOptions
부분에서 from에 네이버 아이디를 정확하게 적지 않으면 에러가 뜬다!
(참고: https://www.massmailsoftware.com/smtp/554-5-7-1/)
원래 구글로 사용했었는데,
5/30부터 계정을 안전하게 보호하기 위해 Google은 사용자 이름과 비밀번호만 사용하여 Google 계정에 로그인하도록 요청하는 서드 파티 앱 또는 기기의 사용을 더 이상 지원하지 않습니다.
라고 메일이 왔길래 네이버로 급하게 바꿔봤다.
구글로 사용할 때는 from에 사이트명을 써둬도 잘 동작했는데 네이버에서는 아이디를 정확하게 적지 않으면 오류가 나는 모양이다...