노드를 사용하는 노드 메일러
다음과 같이 폴더 구조를 설정합니다.
패키지
npm i express nodemailer dotenv colors
백엔드 폴더 생성 및 내부 폴더 생성 파일은 server.js,
이 백엔드/server.js처럼
백엔드/server.js
이 섹션에서는 익스프레스 앱 서버를 만들고 수신 포트는 5000입니다.
import express from 'express';
import dotenv from 'dotenv';
import colors from 'colors';
import Router from './router.js';
dotenv.config();
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: false }))
app.use('/api/contact', Router);
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
console.log(`server running ${process.env.NODE_ENV} mode on port ${process.env.PORT}`.yellow.underline);
})
백엔드/router.js
이 섹션에서는 nodemailer를 구성하고 경로의 이메일, 제목 및 메시지에 이메일을 게시합니다
http://localhost:5000/api/contact
. Postman을 사용하면 API를 테스트하는 데 정말 도움이 됩니다. 오류 및 nodemailer 작동 여부를 쉽게 찾을 수 있습니다.import express from 'express';
const router = express.Router();
import nodemailer from 'nodemailer';
router.post('/', (req, res) => {
const { fromEmail, toEmail, subject, message } = req.body;
const output = `
<div style="font-family:'Sen',sans-serif;">
<h3>Subject</h3>
<p style="margin-left: 1rem;">${subject}</p>
<h3>Message</h3>
<p style="margin-left: 1rem;">${message}</p>
</div>
`;
// create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
service: 'gmail',
port: 465,
secure: true, // use SSL // true for 465, false for other ports
auth: {
user: `${fromEmail}`, // generated ethereal user
pass: '---------' // generated ethereal password
},
tls:{
rejectUnAuthorized:true
}
});
// setup email data with unicode symbols
let mailOptions = {
from: `"Contact" <${fromEmail}>`, // sender address
to: `${toEmail}`, // list of receivers
subject: `${subject}`, // Subject line
text: `${message}`, // plain text body
html: output // html body
};
// send mail with defined transport object
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return res.status(401).json({
msg: error
});
}
// console.log('Message sent: %s', info.messageId);
// console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
if (info) {
return res.status(200).json({
msg:`Message has been sent ${toEmail}`
});
}
});
})
export default router;
나는 이 기사가 당신의 코드를 돕고 nodemailer를 구성하는 것을 이해한다고 믿습니다.
이 기사를 읽어 주셔서 감사합니다 ❤
Github |
Reference
이 문제에 관하여(노드를 사용하는 노드 메일러), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vishwanath231/nodemailer-using-node-4a1n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)