본문 바로가기
Runtime/Node.js

21. 메일링 서비스(Nodemailer)

by 김엉배 2023. 4. 18.
728x90
반응형

 

 

1.  메일링 서비스

 - 애플리케이션 구축에 있어 가장 필수적으로 구현해야 하는 기능 중 하나가 메일링 기능이다.

  • 회원 가입 후 이메일 주소로 인증메일 전송
  • 기업의 최신 정보를 다음 뉴스레터 정기 발송
  • 이벤트 참여 등록 여부 및 확정 이메일 전송

 

2.  Nodemailer

 - Nodemailerdml 특징

   1) 다른 모듈에 의존성이 없는 독립적 모듈

   2) 여러 언어를 지원

   3) 파일 첨부 기능

   4) 일반 텍스트뿐만 아니라 HTML을 본문 내용에 사용 가능

   5) TLS/STARTTLS 사용해서 안전한 이메일 전송을 지원

   6) OAuth2 인증 지원

   7) SMTP 연결을 위해 프록시 사용 가능

 

  • nodemailer 설치
npm install nodemailer

 

 

3.  SMTP transport

 - 이메일을 전송하기 위해서 transport  객체가 필요하다.

  • nodemailer의 createTransport() 함수를 통해 객체를 생성
const transporter = nodemailer.createTransport(transport[, defults])

// transport: nodemailer에서는 주로 SMTP transport를 주로 사용하고, 서버 연결 정보를 정의
// defaults: 이메일 전송 시 공통 옵션을 정의

* SMTP(Simple Mail Transfer Protocol)는 인터넷에서 이메일을 보내기 위해서 이용되는 프로토콜이다.
  (이메일을 송수신하는 서버를 SMTP 서버라고 한다.)

 

  • 다음은 SMTP 서버를 사용해 transporter 객체를 생성하는 예제이다.
const transporter = nodemailer.createTransport({
	host: "smtp.example.com",  // SMTP 서버 호스트 주소
    port: 587,
    secure: false, // true이면, SMTP 접속시, TLS사용
    auth: {
    	user: "username", // 사용자 계정
        pass: "password", // 비밀번호
    },
});

 

  • verify() 함수로 설정한 SMTP 접속 정보로 정상적인 접속이 이루어지는지 확인
transporter.verify((error, success) => {
	if(error) { // 접속 에러 발생
    	console.log(error);
    } else{ // 접속 정상
    	console.log("서버가 메시지를 받을 준비가 되어 있습니다.");
    }
});

 

728x90
반응형

'Runtime > Node.js' 카테고리의 다른 글

23. 메일링 서비스(mailtrap 서비스)  (2) 2023.04.19
22. 메일링 서비스(이메일 보내기)  (2) 2023.04.18
20. 로그 관리  (2) 2023.04.18
19. MongoDB(스키마, 모델 생성)  (2) 2023.04.14
18. MongoDB(mongoose 모듈)  (5) 2023.04.10