초오오오오오짜개발자의낙서장

node js - nodemailer 본문

Programing Language/NODE JS

node js - nodemailer

코딩하는곰팅이 2024. 8. 4. 20:45

프로젝트 진행중 이메일 인증을 넣어보면 어떨까 싶어서 찾아본 모듈.

 

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