2025 最新版 Node.js 教學:使用 Nodemailer 發送郵件的完整指南
Node.js 是一個廣受歡迎的 JavaScript 環境,讓開發者能夠快速開發網路應用程式。在 Node.js 中,使用 Nodemailer 模組可以輕鬆實現郵件發送功能。Nodemailer 是一個簡單易用的工具,允許開發者快速構建郵件發送系統。
如何在 Node.js 中使用 Nodemailer 發送郵件
要開始使用 Nodemailer,首先需安裝該模組。請在您的終端機中執行以下命令:
“`bash
npm install nodemailer
“`
安裝完成後,便可以開始使用 Nodemailer 發送郵件。以下是使用 Nodemailer 的步驟:
1. 建立 Nodemailer 物件
首先,您需要建立一個 Nodemailer 物件來配置郵件服務器。以下是如何設置 Gmail 作為郵件服務的範例:
“`javascript
const nodemailer = require(‘nodemailer’);
const transporter = nodemailer.createTransport({
service: ‘Gmail’,
auth: {
user: ‘your_email@gmail.com’, // 您的 Gmail 郵件地址
pass: ‘your_password’ // 您的 Gmail 密碼
}
});
“`
> **注意:** 為了安全起見,建議使用應用程式專用密碼,而不是您的 Gmail 密碼。
2. 準備郵件內容
接下來,您需要定義郵件的內容,包括發件人、收件人、主題和郵件正文:
“`javascript
const mailOptions = {
from: ‘your_email@gmail.com’,
to: ‘recipient_email@gmail.com’,
subject: ‘測試郵件’,
text: ‘這是一封來自 Node.js 的測試郵件’
};
“`
3. 發送郵件
最後,使用 `transporter.sendMail()` 方法發送郵件:
“`javascript
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(‘發送郵件時發生錯誤: ‘, error);
}
console.log(‘郵件已發送: ‘ + info.response);
});
“`
這段程式碼會將一封標題為「測試郵件」,內容為「這是一封來自 Node.js 的測試郵件」的郵件發送到 `recipient_email@gmail.com`。
錯誤排除
在使用 Nodemailer 發送郵件時,您可能會遇到一些常見的錯誤。以下是一些建議的排除方法:
– **認證錯誤**:確保您使用的郵件地址和密碼正確。使用 Gmail 時,考慮啟用「低安全性應用程式訪問」或使用應用程式專用密碼。
– **SMTP 服務器問題**:檢查您的服務器設定,確保服務器可用且未被防火牆阻擋。
– **網路問題**:確保您的應用程式能夠連接到互聯網。
延伸應用
Nodemailer 不僅能發送純文字郵件,還可發送 HTML 郵件、附件等。以下是如何發送 HTML 郵件的範例:
“`javascript
const mailOptions = {
from: ‘your_email@gmail.com’,
to: ‘recipient_email@gmail.com’,
subject: ‘HTML 郵件測試’,
html: ‘
這是一封 HTML 郵件
郵件內容可以包含 HTML 標籤。
‘
};
“`
這樣,您便可以發送更具吸引力的郵件。
結論
使用 Nodemailer 發送郵件非常簡單,只需幾行程式碼即可實現。這個模組為開發者提供了強大的郵件發送功能,非常適合用於各種網路應用程式。
如需更深入的 Node.js 教學,您可以參考 [vocus.cc 的 Node.js 教學文](https://vocus.cc) 以獲取更多資源和範例。
Q&A(常見問題解答)
**Q1: Nodemailer 支援哪些郵件服務?**
A1: Nodemailer 支援多種郵件服務,包括 Gmail、Outlook、Yahoo 等,也可以使用自訂 SMTP 伺服器。
**Q2: 如何發送包含附件的郵件?**
A2: 您可以在 `mailOptions` 中添加 `attachments` 屬性,具體範例如下:
“`javascript
const mailOptions = {
from: ‘your_email@gmail.com’,
to: ‘recipient_email@gmail.com’,
subject: ‘郵件附加檔案’,
text: ‘請查閱附加檔案。’,
attachments: [
{
filename: ‘test.txt’,
path: ‘./test.txt’
}
]
};
“`
**Q3: 發送郵件的安全性有保障嗎?**
A3: 是的,Nodemailer 支援 TLS 加密,確保郵件在傳輸過程中的安全性。建議使用安全的郵件伺服器和加密連接。
—