노드를 사용하는 노드 메일러

3557 단어
이 문서에서는 코드에서 nodemailer를 구성하는 방법에 대해 설명합니다. 코드를 빠르게 이해하고 코드를 구현합니다. 시작하자

다음과 같이 폴더 구조를 설정합니다.



패키지


  • 익스프레스
  • 노드메일러
  • 도텐브이
  • 색상
  • 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 |

    좋은 웹페이지 즐겨찾기