본문 바로가기
  • 개발 / 공부 / 일상
Node.js

(Node.js) nodemailer로 파일첨부

by JJeongHyun 2024. 6. 2.
반응형

● 순서


  1. 요지
  2. 적용 코드
  3. 마무리

 

1. 요지

  • 업무를 보면서 특정 데이터를 누구(타 부서 직원)에게 전달해야 하는 일이 생겼다
  • 단, 이 과정이 매일 반복되고 일정한 시간마다 보내야 되는데, 일일이 데이터를 추출해서 메신저로 보내줬다
  • 이에 이러한 불편함을 버리고자 단순하게 메일만 보냈던 이메일 전송 라이브러리에서 파일 첨부가 되는지 알아보았다

 

 

2. 라이브러리 설치

https://developerjjh.tistory.com/200

 

(Node.js) nodemailer 라이브러리

어느덧 취직을 해서 업무 하는 와중에 NodeJS를 이용해서 이메일 인증 코드를 전송하는 기능을 만들 수 있다고 한다 이에 저는 'nodemailer' 라는 라이브러리를 통해 이메일 인증코드를 보내서 좀 더

developerjjh.tistory.com

 

 

3. 적용 코드

    • transport의 sendMail 메서드의 옵션인 attachments 값을 설정해주면 된다
// ... 이하 생략 ...

// 보내고자 하는 파일의 값을 가져온다 (buffer형식)
const sendFileData:Buffer = readFileSync(`upload/${파일_이름.확장자}`);

await transporter.sendMail({
      from: process.env.NODEMAILER_USER,
      to: '보내고자 하는 대상의 이메일 주소', // ~~~@gmail.com, ~~~@naver.com 등등
      subject: '이메일 내용',
      html: '이메일 제목',
      attachments: [
        { filename: '첨부파일의 이름', content: sendFileData },
      ],
});
    
// ... 이하 생략 ...
  • attachments
    • 배열형식으로 첨부하고자 하는 파일의 이름(filename)
    • 해당 파일의 buffer값(content)을 설정할 수 있다
    • 객체형식으로 여러개도 가능하다

첨부파일 이메일 전송 결과물

 

4. 마무리

  • 진작에 알아볼껄 ... 그랬다..ㅋㅋㅋㅋ
  • 처음에 만들떄는 생각도 안 하고 있다가, 필요하니까 그때 가서야 있나..?라고 찾아보다니
  • 앞으로도 알아가야할 것들과 공부할 것들은 정말 많다는 걸 느꼈다