Nodemailer를 사용하여 Node.js에서 첨부 파일이 있는 이메일을 보내는 방법

여러분, 안녕하세요 !

이 튜토리얼에서는 Nodemailer 모듈을 사용하여 Node.js에서 이메일을 간단하게 gmail로 보내는 방법에 대해 알아봅니다.

전제 조건:


  • Gmail 계정
  • JavaScript 및 NPM(Node package Manager)에 대한 기본 지식

  • Nodemailer를 설치하고 소스 코드로 가져옵니다.



    시작하려면 작업 디렉터리를 만듭니다. 명령 프롬프트를 열고 디렉토리로 이동하여 명령npm init -y을 실행합니다. package.json 파일이 폴더 내부에 생성됩니다.



    그런 다음 npm install nodemailer -s 명령을 실행하여 Nodemailer 패키지를 설치합니다.

    Nodemailer is a module in Node.js to send emails easily.





    Nodemailer를 설치한 후 동일한 작업 디렉토리 내에 파일send-mail.js을 만듭니다. 파일 내부의 모듈을 가져옵니다.

    const nodemailer = require('nodemailer');
    
    


    Gmail 계정 구성



    이메일 계정의 세부 정보를 제공하여 Nodemailer 전송 개체를 만듭니다.

    let transporter = nodemailer.createTransport({
        service: 'gmail',
        auth:{
            user: '[email protected]',
            pass: 'xxxxxxx'
        }
    });
    


    서비스를 gmail로 설정하고 'auth object'에 이메일 주소와 비밀번호를 입력합니다.

    Gmail은 일반 비밀번호를 사용하여 이메일을 보낼 수 있는 보안 수준이 낮은 앱 개념을 제공합니다. 링크https://www.google.com/settings/security/lesssecureapps에서 이 설정을 켭니다.
    암호를 직접 제공하는 대신 transporter 개체에 Oauth 토큰 세부 정보를 추가하여 OAuth2를 사용할 수도 있습니다.

    이메일 내용 설정



    다음으로 보낸 사람 주소, 받는 사람 주소, 제목, 메일 본문 콘텐츠 및 첨부 파일과 같은 이메일을 보내는 데 필요한 세부 정보가 포함된 mailContent 개체를 만듭니다.

    let mailContent={
        from: 'Sender Name <[email protected]>',
        to: 'Receiver Name <[email protected]>',
        subject: 'First Node.js email',
        text: 'Hi,This is a test mail sent using Nodemailer',
        html: '<h1>You can send html formatted content using Nodemailer with attachments</h1>',
        attachments: [
            {
                filename: 'image1.jpg',
                path: __dirname + '/image1.jpg'
            }
        ]
    };
    

    mailContent 객체 내부에 제공된 매개변수는 다음과 같습니다.

  • 보낸 사람 - 발신자 이름과 이메일 주소를 제공합니다. 이것은 위의 transporter 개체에 구성된 사용자 이메일과 동일해야 합니다.

  • to - 수신자 이름 및 이메일 주소 제공

  • 제목 - 이메일 제목 제공

  • text - 일반 텍스트 이메일 콘텐츠를 구성합니다
  • .

  • html - 적절한 html 형식의 메일을 보내려면 이 매개변수에 html 콘텐츠를 제공할 수 있습니다.

  • 첨부 파일 - 이 매개변수에는 메일과 함께 보내야 하는 첨부 파일 목록을 포함할 수 있습니다.

  • 이메일 보내기:



    메일 세부 정보를 모두 설정했으므로 이제 transporter 개체에서 sendMail 메서드를 사용하여 메일을 보낼 수 있습니다.

    transporter.sendMail(mailContent, function(error, data){
        if(err){
            console.log('Unable to send mail');
        }else{
            console.log('Email send successfully');
        }
    });
    


    위의 코드 스니펫에서 sendMail 메소드에 대한 입력으로 mailContent 매개변수를 제공했습니다.

    필요한 코딩 부분이 완료되었습니다. 명령 프롬프트로 이동하고 명령node send-mail.js을 실행하여 이 파일을 실행합니다.

    우후! 메일은 받는 사람의 받은 편지함으로 배달됩니다.



    행복한 코딩!!!

    좋은 웹페이지 즐겨찾기