[javascript] Express.js에서의 이메일 발송 처리 방법

Express.js는 Node.js 기반 웹 애플리케이션 프레임워크인데, 이메일 발송 기능을 구현하는 것은 매우 중요합니다. 이 글에서는 Express.js에서 어떻게 이메일을 발송할 수 있는지 알아보겠습니다.

1. Nodemailer 패키지 설치

이메일 발송을 위해 먼저 Nodemailer 패키지를 설치해야 합니다. Nodemailer는 Node.js에서 이메일을 발송하기 위한 강력한 라이브러리로 다양한 기능을 제공합니다. 아래의 명령어를 사용하여 패키지를 설치합니다.

npm install nodemailer

2. 이메일 발송 설정

Nodemailer를 사용하기 위해 발송에 필요한 정보를 설정해야 합니다. 아래 코드에서는 Gmail을 사용한 예제입니다. Gmail 이외의 이메일 서비스를 사용한다면 해당 서비스의 SMTP 설정 정보를 사용하면 됩니다.

const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: 'your-email@gmail.com',
    pass: 'your-password'
  }
});

위의 코드에서 userpass 부분을 발송에 사용될 이메일 계정의 아이디와 비밀번호로 대체해야 합니다.

3. 이메일 발송

이제 실제로 이메일을 발송하는 코드를 작성해보겠습니다. 예를 들어, 사용자가 회원가입을 하면 가입 완료 메일을 보내는 기능을 구현한다고 가정해봅시다.

app.post('/signup', (req, res) => {
  // 사용자 정보 처리 로직
  // ...

  // 이메일 발송
  const mailOptions = {
    from: 'your-email@gmail.com',
    to: req.body.email,
    subject: '가입을 축하합니다!',
    text: '회원가입이 완료되었습니다.'
  };

  transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
      console.log(error);
    } else {
      console.log('Email sent: ' + info.response);
    }
  });

  res.send('회원가입이 완료되었습니다.');
});

위의 코드에서는 회원가입이 완료되면 to에 사용자 이메일 정보를 넣고 subjecttext에 해당 메일의 제목과 내용을 작성하여 메일을 발송하는 부분입니다.

결론

Express.js에서 이메일 발송을 처리하는 방법을 알아보았습니다. Nodemailer 패키지를 사용하여 간단한 설정과 코드 변경만으로 이메일 발송 기능을 구현할 수 있습니다. 필요에 따라 이메일 발송 로직을 확장하거나 HTML 템플릿을 사용하여 더욱 다양한 기능을 구현할 수 있는데요, 자세한 내용은 Nodemailer의 공식 문서를 참고하시기 바랍니다.

관련글