[Node.js] nodemailer - 나의 이메일 계정 사용하기

디그다·2020년 6월 19일
2

Node.JS

목록 보기
1/1

회원 등록 시, 이메일 인증을 하는 플로우가 필요했다.

가장 많이 쓴다는 nodemailer을 사용하기로 했다.
예제를 따라하니 gmail 계정 연동하기까지는 참 쉬웠다.

문제는 보내는 사람의 이메일 주소가 회사 계정이어야된다는 점이었다.

왜 이런 예제는 없지요????????????? 하루종일 삽질을 했다.
나와 같은 고민을 하는 사람들을 위해 글을 남긴다.

<작성 코드>

// 회사 계정이 abc.co.kr 이라고 가정

// transporter 생성
let transporter = nodemailer.createTransport({

  // host: "mail.회사.계정.입력" *** mail. <-요게 핵심이었다!
  host: "mail.abc.co.kr",
  
  // 보안 무시
  port: 587,
  
  // 회사 도메인 내 계정 및 비밀번호
  auth: {
    user: "myid@abc.co.kr",
    pass: "mypassword,
  },
  
  // 서명받지 않은 사이트의 요청도 받겠다.
  tls: {
    rejectUnauthorized: false 
  }
});

// 메일 관련 옵션
let mailOptions = {
  // 발송 메일 주소 (위에서 작성한 회사 계정 아이디)
  from: "myid@abc.co.kr",
  
  // 수신 메일 주소
  to: "receiverid@domain.com", 
  
  // 제목
  subject: "인증 메일입니다.",
  
  // 인증 URL
  html: `<p>아래의 링크를 클릭하시면 인증이 완료됩니다.</p>
  <a href='http://localhost:3001/auth?etc'>인증하기</a>`,
};

// 메일 보내기
transporter.sendMail(mailOptions, function (err, info) {
  if (err) {
    // 메일 보내기 에러 발생 시, 콘솔 찍어보기
    console.log("메일보내기 에러쓰");
    console.log(err);
  } else {
    // 성공했다!
    console.log("Email sent: " + info.response);
  }
});

-첫 삽질일기 끝-

profile
매일매일 삽질중인, 열심히 땅을 파고있는 개발자

1개의 댓글

comment-user-thumbnail
2021년 6월 2일

감사합니다. 참고가 되었습니다.

답글 달기