Mail là một phần khá là quan trọng trong các trang Web, và hầu như ngôn ngữ nào nó cũng hỗ trợ chúng ta gửi mail. Và bài hôm nay mình sẽ giới thiệu với mọi người cách gửi mail trong Node.js.
1, Chuẩn bị.
Đầu tiên mọi người cần tạo cho mình một thư mục mới và trong thư mục này chứa một file main.js
. Sau đó mọi người sử dụng cmd cd đến thư mục dự án mà mọi người vừa tạo và chạy lệnh:
npm install nodemailer
Lệnh trên là để cài đặt module nodemailer, chúng ta sẽ sử dụng module này để gửi mail trong Node.js.
2, Cấu hình và gửi email.
Sau khi đã cài đặt xong module nodemailer mọi người mở file main.js
lên và thực hiện require modole.
// main.js
var nodemailer = require('nodemailer');
Sau đó để có thể gửi email bạn cần cấu hình 1 số thông số theo cú pháp như sau:
// main.js
var nodemailer = require('nodemailer');
const option = {
service: 'gmail',
auth: {
user: '[email protected]', // email hoặc username
pass: '*******' // password
}
};
var transporter = nodemailer.createTransport(option);
Và nếu như bạn muốn kiểm tra xem chương trình đã kết nối thành công đến email chưa thì sử dụng cú pháp sau:
transporter.verify(function(error, success) {
// Nếu có lỗi.
if (error) {
console.log(error);
} else { //Nếu thành công.
console.log('Kết nối thành công!');
}
});
Nếu như đã kết nối thành công rồi thì chúng ta sẽ tiếp tục chuyển sang bước cấu hình email nhận thư.
var mail = {
from: '[email protected]', // Địa chỉ email của người gửi
to: '[email protected]', // Địa chỉ email của người gửi
subject: 'Thư được gửi bằng Node.js', // Tiêu đề mail
text: 'Toidicode.com', // Nội dung mail dạng text
html: '<h1>Toidicode.com</h1>' // Nội dung mail dạng html
};
//Tiến hành gửi email
transporter.sendMail(mail, function(error, info) {
if (error) { // nếu có lỗi
console.log(error);
} else { //nếu thành công
console.log('Email sent: ' + info.response);
}
});
Bên cạnh đó bạn cũng có thể cấu hình thêm các thông số sau vào email nhận thư.
Field | Mô Tả |
sender | Email sẽ xuất hiện trong sender |
replyTo | Email sẽ nhận thư trả lời. |
encoding | Dạng encode text/html. Mặc định là utf-8. |
attachments | Object chứa các file đính kèm (xem thêm). |
... | .... xem thêm |
Và nếu như bạn muốn gửi thư cho nhiều email
một lúc, thì ở field to
bạn chỉ cần ngăn các giữa các email bằng dấu ,
.
VD:
var mail = {
from: '[email protected]', // Địa chỉ email của người gửi
to: '[email protected], [email protected]', // Địa chỉ email của người gửi
subject: 'Thư được gửi bằng Node.js', // Tiêu đề mail
text: 'Toidicode.com', // Nội dung mail dạng text
html: '<h1>Toidicode.com</h1>' // Nội dung mail dạng html
};
3, Full source code.
Và đây là full source của bài này.
// main.js
var nodemailer = require('nodemailer');
const option = {
service: 'gmail',
auth: {
user: '[email protected]', // email hoặc username
pass: '******' // password
}
};
var transporter = nodemailer.createTransport(option);
transporter.verify(function(error, success) {
// Nếu có lỗi.
if (error) {
console.log(error);
} else { //Nếu thành công.
console.log('Kết nối thành công!');
var mail = {
from: '[email protected]', // Địa chỉ email của người gửi
to: '[email protected], [email protected]', // Địa chỉ email của người gửi
subject: 'Thư được gửi bằng Node.js', // Tiêu đề mail
text: 'Toidicode.com học lập trình online miễn phí', // Nội dung mail dạng text
};
//Tiến hành gửi email
transporter.sendMail(mail, function(error, info) {
if (error) { // nếu có lỗi
console.log(error);
} else { //nếu thành công
console.log('Email sent: ' + info.response);
}
});
}
});
4, Lời kết.
Phần này mình chỉ giới thiệu qua với mọi người về cách gửi email trong Node.js thôi còn nếu như bạn nào muốn tìm hiểu thêm về các driver trong đó thì có thể tham khảo thêm tại đây.
Đăng ký nhận tin.
Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!
password là password của cái nào v
Nguyễn Đình Hùng
6 năm trước
Hiện hay google mặc định đã tắt truy cập kém an toàn nên bạn thường gặp lỗi trong bước connect vì thế bạn phải bật chế độ truy vập kém an toàn ở đây =))
https://myaccount.google.com/lesssecureapps?pli=1
ádasd
6 năm trước
Son Nguyen
3 năm trước
Error: Mail command failed: 530-5.7.0 Authentication Required. Learn more at ...
Son Nguyen
3 năm trước
Chào Son Nguyen,
Cái này là do bạn chưa sử dụng username, password hoặc có thể thông tin sai nhé bạn.
Vũ Thanh Tài
3 năm trước
Son Nguyen
3 năm trước