Code ví dụ NodeJs, Gửi email/gmail bằng nodejs.
Việc gửi email bằng NodeJs khá đơn giản và nhanh chóng.
Module sử dụng
Để sử dụng chức năng gửi email trong node.js ta sử dụng module Nodemailer
Cài đặt module nodemailer bằng lệnh:
npm install nodemailer
Sau khi cài đặt nodemailer ta có thể include nó vào ứng dụng bằng lệnh:
var nodemailer = require('nodemailer');
Gửi email
Trong ví dụ này mình sẽ thực hiện gửi email bằng tài khoản gmail:
var nodemailer = require('nodemailer'); var transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'youremail@gmail.com', pass: 'yourpassword' } }); var mailOptions = { from: 'youremail@gmail.com', to: 'myfriend@yahoo.com', subject: 'Sending Email using Node.js', text: 'That was easy!' }; transporter.sendMail(mailOptions, function(error, info){ if (error) { console.log(error); } else { console.log('Email sent: ' + info.response); } });
Biến transporter
sẽ chứa thông tin tài khoản email
Biến mailOptions
sẽ chứa thông tin của email được gửi đi (người nhận, subject, nội dung, file đính kèm…)
transporter.sendMail
thực hiện gửi email
Ví dụ mình dùng tài khoản teststackjava@gmail.com
gửi email tới stackjava.com@gmail.com
với tiêu đề là “Sending Email using Node.js” và nội dung là “Demo send gmail with node.js”
var nodemailer = require('nodemailer'); var transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'teststackjava@gmail.com', pass: '********' } }); var mailOptions = { from: 'teststackjava@gmail.com', to: 'stackjava.com@gmail.com', subject: 'Sending Email using Node.js', text: 'Demo send gmail with node.js' }; transporter.sendMail(mailOptions, function(error, info){ if (error) { console.log(error); } else { console.log('Email sent: ' + info.response); } });
Lưu file với tên là server.js
và chạy “node server.js
”
Kết quả:
Trường hợp muốn gửi nội dung là html thì ta thay thuộc tính tex trong biến mailOptions thành html, ví dụ:
var mailOptions = { from: 'youremail@gmail.com', to: 'stackjava.com@gmail.com', subject: 'Sending Email using Node.js', html: '<h1>Demo Nodemailer</h1><br/> <a href="stackjava.com">stackjava.com</a>' };
Kết quả:
Để gửi email cho nhiều người cùng lúc thì ta nhập nhiều email ở phần To, các email cách nhau bằng dấu phẩy
var mailOptions = { from: 'youremail@gmail.com', to: 'stackjava.com@gmail.com, abc@gmail.com, xyz@gmail.com', subject: 'Sending Email using Node.js', html: '<h1>Demo Nodemailer</h1><br/> <a href="stackjava.com">stackjava.com</a>' };
Ngoài ra còn một số thuộc tính khác cho mailOptions như:
- cc –
- bcc –
- attachments – Gửi các file đính kèm
- …
Tham khảo thêm tại https://nodemailer.com/message/
Code ví dụ NodeJs, Gửi email/gmail bằng nodejs stackjava.com
Okay, Done!
Download code ví dụ trên tại đây
References: