Code ví dụ NodeJs, Gửi email/gmail bằng nodejs

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

 

Code ví dụ NodeJs, Gửi email/gmail bằng nodejs stackjava.com

Kết quả:

Code ví dụ NodeJs, Gửi email/gmail bằng nodejs stackjava.com

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ả:

Code ví dụ NodeJs, Gửi email/gmail bằng nodejs stackjava.com

Để 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:

https://nodemailer.com/about/

https://www.w3schools.com/nodejs/nodejs_email.asp

stackjava.com