Node.js - 發送電子郵件:初學者指南

你好,有志於成為程序員的你!今天,我們將踏上一段令人興奮的旅程,進入 Node.js 的世界,並學習如何編程發送電子郵件。別擔心如果你從未寫過一行代碼——我會在每一步成為你親切的導遊。在本教程結束時,你將能夠像專業人士一樣發送電子郵件!

Node.js - Send an Email

Node.js 和電子郵件發送的介紹

在我們深入細節之前,讓我們先來討論一下為什麼使用 Node.js 發送電子郵件這麼酷。想像一下,你正在經營一個網上商店,並且想要自動向客戶發送訂單確認。或者也許你正在建立一個社交網絡,並需要向新用戶發送歡迎電子郵件。這就是 Node.js 派上用場的地方!

Node.js 是一個強大的平台,讓我們能在服務器端運行 JavaScript。它快速、高效,並且非常適合發送電子郵件等任務。在本教程中,我們將探討兩種使用 Node.js 發送電子郵件的流行方法:Nodemailer 和 Mailgun。

Nodemailer:你親切的家園電子郵件發送器

Nodemailer 是什麼?

Nodemailer 在 Node.js 中就像是發送電子郵件的瑞士軍刀。它多用途、易於使用,並支持各種電子郵件服務。讓我們從一個簡單的例子開始!

設置 Nodemailer

首先,我們需要安裝 Nodemailer。打開你的終端並輸入:

npm install nodemailer

現在,讓我們創建一個名為 send_email.js 的新文件並添加以下代碼:

const nodemailer = require('nodemailer');

// 使用 SMTP 創建一個傳遞器
let transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 587,
secure: false, // 使用 TLS
auth: {
user: '[email protected]',
pass: 'your_password'
}
});

// 定義電子郵件選項
let mailOptions = {
from: '"Your Name" <[email protected]>',
to: '[email protected]',
subject: '來自 Nodemailer 的問候!',
text: '這是一封使用 Nodemailer 發送的測試電子郵件。',
html: '<b>這是一封使用 Nodemailer 發送的測試電子郵件。</b>'
};

// 發送電子郵件
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log('錯誤:', error);
}
console.log('消息已發送:', info.messageId);
});

讓我們分解這段代碼:

  1. 我們引入 Nodemailer 模塊。
  2. 我們使用 SMTP 創建一個傳遞器。在這個例子中,我們使用 Gmail 的 SMTP 服務器。
  3. 我們定義電子郵件的選項,包括發送者、接收者、主題和內容。
  4. 最後,我們使用 sendMail 方法發送電子郵件。

執行 Nodemailer 示例

要執行此示例,保存文件並在終端中輸入以下內容:

node send_email.js

如果一切設置正確,你應該會在控制台中看到 "消息已發送" 的確認,並且接收者應該會收到電子郵件。

Nodemailer 小貼士和技巧

以下是一些你可以與 Nodemailer 一起使用的外加功能:

功能 描述 示例
附件 隨電子郵件發送文件 attachments: [{ filename: 'text1.txt', content: 'hello world!' }]
抄送和密件抄送 向其他接收者發送副本 cc: '[email protected]', bcc: '[email protected]'
HTML 內容 發送格式化的電子郵件 html: '<h1>你好</h1><p>這是 HTML 內容</p>'
自定義頭部 向你的電子郵件添加自定義頭部 headers: { 'X-Custom-Header': 'value' }

Mailgun:電子郵件發送的強力後盾

Mailgun 是什麼?

雖然 Nodemailer 非常適合小項目,但 Mailgun 是一個為發送大量電子郵件而生的強大電子郵件服務提供商。它提供了強大的 API 和出色的投遞率。

設置 Mailgun

首先,註冊一個 Mailgun 帳戶並獲取你的 API �匙。然後,安裝 Mailgun-js 套件:

npm install mailgun-js

現在,讓我們創建一個名為 send_email_mailgun.js 的新文件並添加以下代碼:

const mailgun = require('mailgun-js')({
apiKey: 'your-api-key',
domain: 'your-domain.com'
});

const data = {
from: 'Excited User <[email protected]>',
to: '[email protected]',
subject: '來自 Mailgun 的問候!',
text: '這是一封使用 Mailgun 發送的測試電子郵件。'
};

mailgun.messages().send(data, (error, body) => {
if (error) {
console.log('錯誤:', error);
} else {
console.log('消息已發送:', body);
}
});

讓我們分解這段代碼:

  1. 我們引入 Mailgun-js 模塊並使用 API �匙和域名初始化它。
  2. 我們定義電子郵件數據,這與我們在 Nodemailer 中所做的類似。
  3. 我們使用 messages().send() 方法發送電子郵件。

執行 Mailgun 示例

要執行此示例,保存文件並在終端中輸入以下內容:

node send_email_mailgun.js

如果一切設置正確,你應該會在控制台中看到確認消息,並且接收者應該會收到電子郵件。

Mailgun 功能

以下是一些你可以與 Mailgun 一起使用的外加功能:

功能 描述 示例
模板 使用預設的電子郵件模板 template: 'welcome_email'
批量發送 高效地向多個接收者發送電子郵件 recipient-variables: {'[email protected]': {first: 'Bob'}, '[email protected]': {first: 'Alice'}}
追蹤 獲取你的電子郵件的詳細分析 tracking: true
排程 在特定時間發送電子郵件 'o:deliverytime': 'Fri, 14 Oct 2011 23:10:10 -0000'

結論:你現在是一名電子郵件發送大師!

恭喜你!你剛剛學會了如何使用 Node.js 和 Nodemailer 及 Mailgun 發送電子郵件。記住,能力越強,責任越大——謹慎使用你的新電子郵件發送超能力!

在你繼續你的編程旅程時,你會發現發送電子郵件只是冰山一角。Node.js 提供了一個完整的世界,從建立網頁服務器到創建實時應用程序。繼續探索,繼續學習,最重要的是,享受樂趣!

你有關於使用 Node.js 發送電子郵件的問題嗎?隨時提問——我總是在這裡幫助你!快樂編程,願你的電子郵件總是能達到目的地!

Credits: Image by storyset