Zoho 및 SMTP를 통해 Node.js에서 이메일 보내기

전제 조건



몇 가지가 필요합니다.
  • nodemailer , 이메일 전송을 위한 npm 패키지. npm install nodemailer 로 설치하십시오.
  • SMTP 공급자가 설정되었습니다. 저는 개인적으로 Zoho의 $12/yr 요금제를 사용하지만 모든 SMTP 공급자가 작동해야 합니다.

  • 코드



    먼저 SMTP 자격 증명을 .env 파일에 넣고 코드에서 액세스하는 데 사용할 것입니다. Zoho를 사용하면 여기에서 기본 계정 로그인 세부 정보를 사용하는 것이 가장 쉽습니다.

    EMAIL = <put your email here>
    PASSWORD = <put your password here>
    


    그런 다음 dotenvnodemailer를 가져오고 createTransport 함수를 사용하여 transporter 개체를 만듭니다. SMTP 자격 증명을 개체로 전달합니다.

    import dotenv from 'dotenv'
    import nodemailer from 'nodemailer'
    
    const mailTransport = nodemailer.createTransport({
      host: 'smtp.zoho.com',
      port: 465,
      secure: true,
      auth: {
        user: process.env.EMAIL,
        pass: process.env.PASSWORD,
      },
    })
    


    여기서는 import 대신 require를 사용하고 있습니다. JavaScript의 표준(현재로서는 그리 새롭지 않음)인 ES 모듈을 사용하고 있기 때문입니다. 이에 대한 자세한 내용을 읽을 수 있습니다here.

    다음으로 보내려는 HTML을 정의합니다.

    let html = ''
    let name = 'John Doe'
    html += `<div>Hello <span style="color: blue">${name}</span>! This is HTML that you can do whatever with. You can use template strings to make it easier to write.</div>
    


    그런 다음 sendMail 기능을 사용하여 이메일을 보낼 수 있습니다. 이메일 세부 정보가 있는 개체를 전달합니다.

    import { format } from 'date-fns'
    const mailOptions = {
      from: process.env.EMAIL,
      to: emailAddress,
      subject: `Newsletter - ${format(new Date(), 'MMM d')}`,
      html: content,
    }
    mailTransport.sendMail(mailOptions, (error, info) => {
      if (error) {
        console.log(error)
      } else {
        console.log(`Email successfully sent to ${emailAddress}.`)
      }
    })
    


    몇 가지 참고 사항:
  • Zoho를 사용하지 않는 경우 대부분의 공급자의 SMTP 세부 정보가 잘 문서화되어 있습니다. Gmail과 같은 무료 제공업체는 이러한 종류의 일을 더 어렵게 만드는 일부 자동화된 사용에 대해 확인합니다. Zoho와 같은 저렴한 공급자를 얻는 것이 좋습니다.
  • sendMail 함수에는 순수한 텍스트만 보낼 수 있는 text 옵션도 있습니다.

  • 결론



    당신이 뭔가를 배웠기를 바랍니다! https://andenacitelli.com에서 내 다른 블로그 게시물을 확인할 수 있습니다.

    좋은 웹페이지 즐겨찾기