티스토리 뷰
아래는 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}`);
});
사용 방법
- sendEmail.js 파일을 프로젝트 내에 추가합니다.
- app.js나 원하는 Express 애플리케이션 파일에서 sendEmail 함수를 호출하여 이메일을 보냅니다.
- /send-mail 엔드포인트로 GET 요청을 보내서 이메일을 발송할 수 있습니다. 예시:
-
perl
http://localhost:3000/send-mail?to=recipient@example.com&subject=Test%20Email&text=This%20is%20a%20test%20email.
주의 사항
- SMTP2GO 계정을 사용하여 사용자명과 비밀번호를 코드에 입력해야 합니다.
- 이메일을 발송하기 전에 SMTP2GO의 서비스 설정 및 계정 정보를 확인해야 합니다.
'IT 이야기 > Node.js' 카테고리의 다른 글
SMTP2GO로 발송전용으로 메일 보내기 (3) | 2025.04.14 |
---|---|
[express.js] 카페24API로 고객ID 가져오기 (0) | 2025.01.21 |
[express.js] 카페24 쇼핑몰의 적립급을 조회/지급/차감 - 1편 (0) | 2025.01.21 |
Express.js와 EJS를 사용하여 다국어 지원 관리자 페이지를 작성하려면 (0) | 2025.01.14 |
express.js와 mariaDB 연결 문제 (0) | 2025.01.10 |
express.js 로그인 시스템 구현 시 보안 (0) | 2025.01.05 |
[SERVER] ubuntu, nginx, node.js mariaDB로 서버 세팅하기 (1) | 2024.09.26 |
[express.js] express.js와 mariaDB를 이용하는 기본 설정 (0) | 2024.09.24 |
Hostinger 사용기1 - 설치 (0) | 2024.06.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
- W3Schools Online Web Tutorials
- 구차니의 잡동사니 모음
- [IT]블로거팁닷컴
- 비앤아이님의 블로그
- Blog Suspect
- 즐거운하루 blog
- zinicap의 검색엔진 마케팅(SEM)
- 머니야머니야님의 블로그
- [Friend] AtinStory
- [기타배우기]해브원 박스
- [웹표준] SINDB.com
- 해커 C 이야기
- [애드센스] 길라잡이
- 정순봉의 IT SCHOOL
- 씨디맨의 컴퓨터이야기
- 2proo Life Story
- 못된준코의 세상리뷰
- [IT강좌] 정보문화사
- IN 대전
- 에우르트는 나쁜남자 -_-
- 씬의 싱크탱크
- 엔돌슨의 IT이야기
- 진이늘이
- 'Cooltime'의 블로그
- 후이의 Tistory
- Soulstorage
- 앤드&엔드의 블로그
- June Blog
- 노지의 소박한 이야기
- gbWorld
- 인터넷 속 나의 생각
- HarshNix
- ART of WEB
- 녹두장군 - 상상을 현실로
TAG
- 인터넷 익스플로러
- 소스코드
- 소스
- It
- JavaScript
- 모토로이
- 리뷰
- 효과음
- C
- 안드로이드 어플 추천
- php
- 스마트폰
- MBTI
- MBTI 강좌
- HTML
- 안드로이드 어플
- 성공
- MBTI 테스트
- MBTI 자료
- MBTI 검사
- 프로그래밍
- C언어 소스
- 예제 소스
- C언어
- 인터넷
- C언어 문제
- 안드로이드
- 강의
- 프로그래밍 문제
- 강좌
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함