// npm install nodemailer
const nodemailer = require("nodemailer");
(async() => {
const host = "smtp.naver.com";
const sender = {이메일주소};
const senderPwd = {이메일비밀번호};
const emailTo = [{받는 사람 이메일 #1}, {받는 사람 이메일 #2}, ...];
const subject = {메일 제목};
const contents = {메일 내용};
// Step. 메일 전송 옵션 설정
let transporter = nodemailer.createTransport({
host : host
, port : 587
, secure : false
, auth : {
user: sender
, pass: senderPwd
}
, tls : {
rejectUnauthorized: false
}
});
// Step. 메일 발송
try{
let info = await transporter.sendMail({
from : sender // 보내는 사람 이메일
, to : emailTo // 받는 사람 이메일
, subject : subject // 메일 제목
// 메일 내용
// , text: contents // text: 일반 text로 작성된 내용
, html: contents // html: html로 작성된 내용
});
console.log(info);
}catch(e){
console.log(e);
}
})();
※ 해당 내용은 공홈 기반으로 작성된 내용입니다.
1/ nodemailer를 설치해 줍니다.
$> npm install nodemailer
2/ nodemail API를 Import 해줍니다.
const nodemailer = require("nodemailer");
3/ 메일에 사용될 내용을 변수로 선언해 줍니다.
※ 저는 테스트를 위해 naver의 smtp를 사용하였으며, 공홈 등에서는 gmail을 이용하였으니 참고 바랍니다.
const host = "smtp.naver.com";
const sender = {이메일주소};
const senderPwd = {이메일비밀번호};
const emailTo = [{받는 사람 이메일 #1}, {받는 사람 이메일 #2}, ...];
const subject = {메일 제목};
const contents = {메일 내용};
4/ 메일 전송을 위한 Connection 정보를 선언해 줍니다.
let transporter = nodemailer.createTransport({
host : host
, port : 587
, secure : false
, auth : {
user: sender
, pass: senderPwd
}
, tls : {
rejectUnauthorized: false
}
});
Parameter | 내용 | ex |
host | smtp 주소입니다. | smtp.naver.com |
port | smtp 포트입니다. | 587 |
secure | true인 경우 서버에 연결할 때 연결에서 TLS를 사용합니다. false(기본값)이면 서버가 STARTTLS 확장을 지원하는 경우 TLS가 사용됩니다. 대부분의 경우 포트 465에 연결하는 경우 이 값을 true로 설정합니다. 포트 587 또는 25의 경우 false로 유지합니다. | false |
auth | smtp 서버에 로그인 되는 계정입니다. (일반적으로 이메일 주소와 비밀번호) | auth : { user: "test@naver.com" , pass: "test1234" } |
tls | 소켓 생성 시 전달할 추가 node.js TLSSocket 옵션을 정의합니다. | tls : { rejectUnauthorized: false } |
여기서 rejectUnauthorizeds는 메일 발송 시 "self signed certificate"가 발생하는 경우 처리 가능한 방법 중 하나입니다.
5/ 메일 발송을 합니다.
let info = await transporter.sendMail({
from : sender // 보내는 사람 이메일
, to : emailTo // 받는 사람 이메일
, subject : subject // 메일 제목
// 메일 내용
// , text : contents // text: 일반 text로 작성된 내용
, html : contents // html: html로 작성된 내용
});
Parameter | 내용 | ex |
form | 보내는 사람 메일 주소로 smtp 설정에서 사용한 from이 동일학 들어가도록 합니다. | test@naver.com |
to | 받는 사람 메일 주로로 단일로 보내는 경우 string 형태로, 다중으로 보내는 경우 array 형태로 발송 가능합니다. |
단일 "recv@naver.com" 다중 ["recv1@naver.com", "recv2@naver.com", "recv3@naver.com"] |
subject | 메일 발송시 사용된느 제목입니다. | 안녕하세요. 메일 제목입니다. |
text | 메일 내용이 단순 텍스트인 경우 해당 옵션을 사용하고, html 형태인 경우 html을 사용합니다. | Hello, World |
html | 메일 내용이 html형태인 경우 해당 옵션을 사용하고, 단순 텍스트인 경우 text를 사용합니다. | <strong>Hello, World</strong> |
'개발 창고 > NodeJS' 카테고리의 다른 글
[ExcelJS] 내용 덮어 씌우기 (0) | 2023.01.16 |
---|---|
[Javascript] split - 정수 배열 만들기 (0) | 2023.01.12 |
[Scheduler] node-scheduler (0) | 2022.12.28 |
PDF 이미지 추출하기 (0) | 2022.11.28 |
[React] Component에서 useParams 사용하기 (0) | 2022.11.07 |