Trong bài này, bạn sẽ tìm hiểu cách gửi 1 email bằng Node.js.
Module Nodemailer
Module Nodemailer giúp việc lập trình gửi email thuận tiện hơn. Bạn có thể tải và cài đặt module này sử dụng lệnh npm:
C:\Users\[User Name]\AppData\Roaming\npm>npm install nodemailer
Sau khi tải module Nodemailer về, bạn có thể nhúng module này vào bất kỳ ứng dụng nào:
var nodemailer = require('nodemailer');
Gửi email
Để gửi email, đầu tiên bạn cần có 1 tài khoản email với username và password (mật khẩu). Bài này sẽ hướng dẫn bạn cách gửi email bằng Gmail. Bạn tạo 1 tập tin tên là dammio_email.js và đặt vào thư mục C:\Users\[User Name]\AppData\Roaming\npm.
var nodemailer = require('nodemailer'); var transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: '[email protected]', pass: 'matkhau' } }); var mailOptions = { from: '[email protected]', to: '[email protected]', subject: 'Gửi email dùng Node.js --- dammio.com', text: 'Xin chào, đây là email gửi bằng Node.js --- dammio.com' }; transporter.sendMail(mailOptions, function(error, info){ if (error) { console.log(error); } else { console.log('Email sent: ' + info.response); } });
Trong đoạn mã trên, trước hết chúng ta tạo 1 biến transporter để chứa tài khoản người gửi (username, password) và biến mailOptions để chứa các thông tin cần gửi. Sau đó, chúng ta sử dụng hàm sendMail để thực hiện việc gửi email, nếu thất bại thì mã lỗi error sẽ hiển thị, nếu thành công thì dòng chữ “Email sent: ….” sẽ hiển thị.
Lưu ý: Gmail có tính năng bảo mật không cho phép các ứng dụng kém bảo mật gửi email, vì vậy bạn phải tắt tính năng này (OFF) đối với tài khoản email Gmail bạn dùng để gửi tại: https://myaccount.google.com/lesssecureapps?pli=1
Gửi email đến nhiều người
Để gửi email đến nhiều người, bạn chỉ cầm thêm thuộc tính “to” vào đối tượng biến mailOptions, các nhau bằng dấu phẩy:
var mailOptions = { from: '[email protected]', to: '[email protected], [email protected]', subject: 'Sending Email using Node.js', text: 'That was easy!' }
Gửi mã HTML trong email
Tương tự, nếu muốn gửi mã HTML trong email, chúng ta dùng thuộc tính “html” thay vì thuộc tính “text” trong nội dung cần gửi:
var mailOptions = { from: '[email protected]', to: '[email protected]', subject: 'Gửi email dùng Node.js --- dammio.com', html: '<h1>Chào mừng</h1><p>Gửi email thành công bằng Node.js --- dammio.com</p>' }
Tiếp theo, ở Command Prompt (cmd), chạy lệnh C:\Users\Dammio\AppData\Roaming\npm>node dammio_email.js để theo dõi kết quả gửi email.
Kết luận
Bài viết đã hướng dẫn bạn cách tải module Nodemailer để thao tác lập trình gửi email và đưa ra một ví dụ để gửi email Gmail. Đối với các server gửi mai khác (Yahoo, Live), bạn có thể tìm hiểu thêm cách gửi email trên mạng. Mời bạn theo dõi bài tiếp theo.
- APA:
Dammio. (2018). [Node.js] Phần 10: Gửi email bằng Node.js. https://www.dammio.com/2018/06/16/node-js-phan-10-gui-email-bang-node-js.
- BibTeX:
@misc{dammio,
author = {Dammio},
title = {[Node.js] Phần 10: Gửi email bằng Node.js},
year = {2018},
url = {https://www.dammio.com/2018/06/16/node-js-phan-10-gui-email-bang-node-js},
urldate = {2024-09-28}
}