YS's develop story
Node js 에서 메일 전송하기 (Nodemailer 이용, Node 비밀번호 찾기) 본문
Node js에서 메일 전송하기 (Nodemailer 이용)
노드 메일러는 Node.js에서 메일 전송을 가능하게 해주는 모듈이며, 가장 일반적으로 사용되고 있습니다!
우선 메일을 보낼 gmail을 하나 생성해 줍시다.
메일을 생성하고, 아래의 링크로 접속을 하여 보안 수준이 낮은 앱의 액세스를 허용해 줍시다.
npm을 이용해 nodemailer 모듈을 다운로드 해 줍시다.
npm install nodemailer
코드에 아래와 같이 다운로드한 모듈을 사용한다는 구문을 추가해 줍니다.
const nodemailer = require('nodemailer');
저는 저의 서비스 이용자들이 비밀번호를 잊어버려서 찾고자 할 때,
임시 비밀번호를 nodemailer를 이용하여 서비스 이용자에게 보내려고 합니다.
그래서 아래와 같이 8자리의 랜덤 비밀번호를 만드는 함수를 만들었습니다.
var variable = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z".split(",");
var randomPassword = createRandomPassword(variable, 8);
//비밀번호 랜덤 함수
function createRandomPassword(variable, passwordLength) {
var randomString = "";
for (var j=0; j<passwordLength; j++)
randomString += variable[Math.floor(Math.random()*variable.length)];
return randomString
}
아래의 코드가 메일을 보내는 부분입니다.
만약 사용자가 메일을 입력하고 그 메일이 서비스 DB에 있는 메일과 일치를 한다면
임시 비밀번호를 사용자 메일로 보내도록 아래의 코드를 실행하도록 코드를 짜면 될 것입니다.
const transporter = nodemailer.createTransport({
service: 'gmail',
port: 465,
secure: true, // true for 465, false for other ports
auth: { // 이메일을 보낼 계정 데이터 입력
user: '@gmail.com',
pass: 'password',
},
});
const emailOptions = { // 옵션값 설정
from: '@gmail.com',
to: 'liyusang1@naver.com',
subject: 'Binding에서 임시비밀번호를 알려드립니다.',
html:
"<h1 >Binding에서 새로운 비밀번호를 알려드립니다.</h1> <h2> 비밀번호 : " + randomPassword + "</h2>"
+'<h3 style="color: crimson;">임시 비밀번호로 로그인 하신 후, 반드시 비밀번호를 수정해 주세요.</h3>'
+'<img src="https://firebasestorage.googleapis.com/v0/b/mangoplate-a1a46.appspot.com/o/mailImg.png?alt=media&token=75e07db2-5aa6-4cb2-809d-776ba037fdec">'
,
};
transporter.sendMail(emailOptions, res); //전송
코드를 작성하고 Postman으로 테스트를 진행해 보았습니다.
정상적으로 잘 작동합니다!
'기타' 카테고리의 다른 글
Node Js, OpenAPI를 활용하여 데이터를 DB에 저장하기 (Request.js) (1) | 2021.06.25 |
---|---|
C# REST API 호출하기 (RestSharp 이용) (1) | 2021.03.25 |
AWS RDS 사용자 추가하기 (0) | 2021.02.07 |
AWS EC2의 시간 변경하기 (TimeZone 변경하기) (1) | 2021.02.05 |
JS 정규식 모음 ) 전화번호, 닉네임, URL, 휴대폰 번호,이메일 체크 정규식 (1) | 2021.01.30 |
Comments