티스토리 뷰

아래는 express.js와 SMTP2GO를 이용해 자동으로 이메일을 발송하는 Node.js 라이브러리 형태의 소스 코드입니다. 이 코드에서는 nodemailer 패키지를 사용하여 SMTP2GO로 이메일을 보낼 수 있습니다.

 

1. 먼저 nodemailer를 설치해야 합니다. 아래 명령어로 설치할 수 있습니다.

npm install nodemailer

 

 

2. 그런 다음, 아래와 같이 sendEmail.js라는 라이브러리 파일을 생성하여 이메일 발송 기능을 구현합니다.

 

 

sendEmail.js

const nodemailer = require('nodemailer');

/**
 * SMTP2GO를 이용하여 이메일을 보내는 함수
 * 
 * @param {string} to - 이메일 수신자
 * @param {string} subject - 이메일 제목
 * @param {string} text - 이메일 본문
 * @param {string} html - 이메일 HTML 본문 (선택 사항)
 * @returns {Promise} - 이메일 발송 성공 또는 실패 여부
 */
const sendEmail = async (to, subject, text, html = '') => {
  try {
    // SMTP2GO 설정
    const transporter = nodemailer.createTransport({
      host: 'mail.smtp2go.com',
      port: 2525, // SMTP2GO 기본 포트 (다른 포트도 가능)
      secure: false, // TLS 사용 안함
      auth: {
        user: 'your_smtp2go_username', // SMTP2GO 사용자명
        pass: 'your_smtp2go_password', // SMTP2GO 비밀번호
      },
    });

    // 이메일 데이터 설정
    const mailOptions = {
      from: '"Your Name" <your_email@example.com>', // 발신자 이메일
      to, // 수신자 이메일
      subject, // 이메일 제목
      text, // 텍스트 본문
      html, // HTML 본문 (선택 사항)
    };

    // 이메일 발송
    const info = await transporter.sendMail(mailOptions);
    console.log('Message sent: %s', info.messageId);
    return info;
  } catch (error) {
    console.error('Error sending email: ', error);
    throw error;
  }
};

module.exports = sendEmail;
 
 
 

사용 예시 (app.js 또는 다른 Express 애플리케이션 파일에서)

 
const express = require('express');
const sendEmail = require('./sendEmail'); // sendEmail.js 파일을 가져옵니다.

const app = express();
const port = 3000;

app.get('/send-mail', async (req, res) => {
  const { to, subject, text, html } = req.query;

  try {
    const emailResponse = await sendEmail(to, subject, text, html);
    res.send(`Email sent: ${emailResponse.messageId}`);
  } catch (error) {
    res.status(500).send('Error sending email.');
  }
});

app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}`);
});
 

사용 방법

  1. sendEmail.js 파일을 프로젝트 내에 추가합니다.
  2. app.js나 원하는 Express 애플리케이션 파일에서 sendEmail 함수를 호출하여 이메일을 보냅니다.
  3. /send-mail 엔드포인트로 GET 요청을 보내서 이메일을 발송할 수 있습니다. 예시:
  4. perl
http://localhost:3000/send-mail?to=recipient@example.com&subject=Test%20Email&text=This%20is%20a%20test%20email.

 

 

주의 사항

  • SMTP2GO 계정을 사용하여 사용자명과 비밀번호를 코드에 입력해야 합니다.
  • 이메일을 발송하기 전에 SMTP2GO의 서비스 설정 및 계정 정보를 확인해야 합니다.
댓글