간단한 Nodemailer 사용법

11462 단어 webdevnode
Nodemailer는 케이크처럼 쉽게 이메일을 보낼 수 있는 Node.js 애플리케이션용 모듈입니다. 여기에서는 사용자가 일부 샘플 메일을 로컬로 보낼 수 있도록 간단한 nodemailer 애플리케이션을 만들어 보겠습니다.

먼저 프로젝트를 빌드하고 문자 메시지를 보냅니다.




mkdir sample_mailer
cd sample_mailer
npm init -y // initialize npm 
npm install nodemailer


그런 다음 2개의 파일 생성

touch index.js
touch index.html


먼저 간단한 메시지를 보내고 ethereal 메일에서 확인한 다음 실제 html 기반 메일을 보내므로 필요한 이유입니다index.html.

다음으로 nodemailer's website에서 코드를 복사하여 붙여넣고 index.js에 붙여넣습니다.

"use strict";
const nodemailer = require("nodemailer");

// async..await is not allowed in global scope, must use a wrapper
async function main() {
  // Generate test SMTP service account from ethereal.email
  // Only needed if you don't have a real mail account for testing
  let testAccount = await nodemailer.createTestAccount();

  // create reusable transporter object using the default SMTP transport
  let transporter = nodemailer.createTransport({
    host: "smtp.ethereal.email",
    port: 587,
    secure: false, // true for 465, false for other ports
    auth: {
      user: testAccount.user, // generated ethereal user
      pass: testAccount.pass, // generated ethereal password
    },
  });

  // send mail with defined transport object
  let info = await transporter.sendMail({
    from: '"Fred Foo 👻" <[email protected]>', // sender address
    to: "[email protected], [email protected]", // list of receivers
    subject: "Hello ✔", // Subject line
    text: "Hello world?", // plain text body
    html: "<b>Hello world?</b>", // html body
  });

  console.log("Message sent: %s", info.messageId);
  // Message sent: <[email protected]>

  // Preview only available when sending through an Ethereal account
  console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
  // Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
}

main().catch(console.error);



이 경우 nodemailer 전송 개체를 만들고 testAccount를 사용하여 샘플 메일을 보내고 생성된 주소를 체크인합니다.

node index.js
// or define a "start" in package.json to run it


내 결과는 다음과 같습니다.


미리보기 URL을 클릭하면 다음과 같이 표시됩니다.

둘째, HTML을 보내자


index.html 파일을 생성하고 unsplash.com에서 이미지를 찾아 html 파일에 몇 가지 단어를 입력하면 최종적으로 다음과 같이 표시됩니다.



코드는 다음과 같습니다.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=s, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div class="container">
      <h1>hello title</h1>
      <p>this is the main body text here</p>
      <span>lalalalalalall</span>
      <img
        src="https://images.unsplash.com/photo-1646186598644-0b0e407852a6?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1036&q=80"
        alt=""
      />
    </div>
  </body>
</html>

index.js 파일을 약간 조정하여 이 파일을 보내도록 합시다.

먼저 node.js의 내장fs 모듈을 사용하여 읽어야 합니다.

const { promisify } = require("util");
const fs = require("fs");
const readFile = promisify(fs.readFile);


그런 다음

html: "<b>Hello world?</b>", // html body


~와 함께

html: await readFile("./index.html", "utf8"),


그런 다음 npm run start 또는 node index.js를 다시 실행하여 이를 실행하고 에테르 메일을 확인합니다.

plain text 옵션을 클릭하면:



만세, 우리는 첫 번째 텍스트와 html 메시지를 보냈습니다! 나중에 우리는 일상 업무를 보다 생산적으로 만들기 위해 nodemailer를 기반으로 더 멋진 이메일 응용 프로그램을 구축하는 방법을 확인할 것입니다.

좋은 웹페이지 즐겨찾기