Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const nodemailer = require('nodemailer')
- , smtpTransport = require('nodemailer-smtp-transport')
- , fs = require('fs')
- var smtpConfig = {
- host: 'SSL0.OVH.NET',
- port: 465,
- secure: true, // use SSL
- auth: {
- user: 'ne-pas-repondre@x-one-france.com',
- pass: 'FGJGTHNckulcvepo5523'
- }
- };
- //var transporter = nodemailer.createTransport('smtps://x.on.france%40gmail.com:MICHOmifroid@smtp.gmail.com')
- var transporter = nodemailer.createTransport(smtpConfig)
- class Mailer {
- constructor(mailTemplateLink, mailListLink) {
- this.initConfig()
- .then((config) => {
- this.senderUserName = config.senderUserName
- this.senderUserMail = config.senderUserMail
- this.mailSubject = config.mailSubject
- this.initMailTemplate(mailTemplateLink)
- .then((mailTemplate) => {
- this.mailTemplate = mailTemplate
- this.initMailList(mailListLink)
- .then((mailList) => {
- this.mailList = mailList
- this.loop()
- })
- })
- })
- }
- initConfig() {
- return new Promise((resolve, reject) => {
- fs.readFile('config/config.json', {encoding: 'utf-8'}, (err, data) => {
- if (!err) {
- var parsedData = JSON.parse(data)
- console.log('Configuration loaded')
- resolve(parsedData)
- } else {
- console.log(err)
- reject()
- }
- })
- })
- }
- initMailTemplate(mailTemplateLink) {
- return new Promise((resolve, reject) => {
- fs.readFile(mailTemplateLink, {encoding: 'utf-8'}, (err, data) => {
- if (!err) {
- console.log('Mail template loaded')
- resolve(data)
- } else {
- console.log(err)
- reject()
- }
- })
- })
- }
- initMailList(mailListLink) {
- return new Promise((resolve, reject) => {
- fs.readFile(mailListLink, {encoding: 'utf-8'}, (err, data) => {
- if (!err) {
- var list = data.replace(/\s/g, " ").replace(/\s+/g, " ").split(" ").filter(function(e) { return e !== '' })
- console.log('Mail list loaded')
- resolve(list)
- } else {
- console.log(err)
- reject()
- }
- })
- })
- }
- loop() {
- for (let i = 0; i < this.mailList.length; i++) {
- this.sendTo(this.mailList[i])
- }
- console.log('All mails have been sent')
- }
- sendTo(address) {
- var mailOptions = {
- from: '"' + this.senderUserName + '" ' + '<' + this.senderUserMail + '>',
- to: address,
- subject: this.mailSubject,
- html: this.mailTemplate
- }
- transporter.sendMail(mailOptions, (error, info) => {
- if (error) {
- return console.log(error)
- }
- console.log('Message sent: ' + info.response)
- })
- }
- }
- /*
- ** ENTRY POINT
- */
- if (process.argv.length !== 4) {
- console.log('Usage : node index.js mail.html mail_list.txt')
- process.exit(0)
- } else {
- new Mailer(process.argv[2], process.argv[3])
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement