초오오오오오짜개발자의낙서장
node js - nodemailer 본문
프로젝트 진행중 이메일 인증을 넣어보면 어떨까 싶어서 찾아본 모듈.
Nodemailer는 Node JS에서 이메일을 보낼수 있도록 하는 모듈이다.
기능으로는 다음과 같다.
- 단일 모듈: Zero dependecies
- 높은 보안성
- Emoji를 포함한 유니코드 지원
- 윈도우 지원 및 npm으로 설치 가능
- HTML content와 Plain text 사용 가능
- 메시지에 다양한 첨부 기능
- HTML 콘텐츠에 이미지 포함 가능
- TLS/STARTTLS로 보안 발송
- SMTP 외에도 다양한 전송 방식 지원
- DKIM(도메인키 인증 메일) sign 방식
- 메시지 조작을 위한 커스텀 플러그인 지원
- OAuth2 인증 지원
- SMTP 연결을 위한 프록시 지원
- ES6 코드
- Ethereal.email로부터 이메일 테스트 계정 자동 생성
하지만 이메일을 보낸다는 기능 하나에만 초점을 맞춰서 일단 구현에 목적을 둔다.
설치 방법
npm install nodemailer
간단하게 설치가 된다.
예제 코드
const nodemailer = require('nodemailer'); // 모듈 import
const transporter = nodemailer.createTransport({
service: 'smtp host address', // smtp 서버의 주소
auth: {
user: 'SMTP user ID', // smtp 서버의 사용자 계정 ID
pass: 'SMTP user PW' // smtp 서버의 사용자 계정 PW
}
});
const mailOptions = {
from: 'youremail@gmail.com', // 작성자
to: 'myfriend@yahoo.com', // 수신자
subject: 'Sending Email using Node.js', // 메일 제목
text: 'That was easy!' // 메일 내용
};
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
처음 transporter 부분의 service를 잘 이해하지 못해 아무 서비스(gmail, naver) 등을 쓰면 되는줄 알았다.
하지만 에러가 발생해 SMTP 서버의 주소를 입력하는 것을 알고 SMTP 서버를 따로 구축(Mail enable)해서 주소를 적고 사용자계정을 만들어서 테스트 이메일을 전송해 테스트를 성공했다.
사설 SMTP 서버에서 보내는 메일은 naver, gmail에서 수신이 되지 않아 보완이 필요할것으로 보인다.
'Programing Language > NODE JS' 카테고리의 다른 글
node - express router (0) | 2024.08.18 |
---|