· 7 years ago · Mar 16, 2019, 05:30 AM
1import express = require("express")
2import cron = require("node-cron")
3import nodemailer = require("nodemailer")
4
5let transporte = nodemailer.createTransport({
6 service: "gmail",
7 auth: {
8 user: "********@gmail.com",
9 pass: "*******"
10 }
11});
12
13const envioCorreo = mensaje => {
14 let mailOptions = {
15 from: "remitente@gmail.com",
16 to: "destinatario@gmail.com",
17 subject: `Acá va el asunto`,
18 text: mensaje
19 };
20 transporte.sendMail(mailOptions, function (error, info) {
21 if (error) {
22 throw error;
23 } else {
24 console.log("Correo enviado");
25 }
26 });
27}
28
29const app = express()
30
31app.get("/", (req, res) => {
32 res.send("Hola")
33})
34
35app.listen(3000, () => console.log("ejecutándose en el puerto 3000"))
36
37/*
38 * * * * * *
39 | | | | | |
40 | | | | | dÃa de la semana
41 | | | | mes
42 | | | dÃa del mes
43 | | hora
44 | minuto
45 segundo (opcional)
46*/
47
48/*
49 dÃa de la semana: 0-7 (0 y 7 representan al domingo)
50 mes: 1-12
51 dÃa del mes: 1-31
52 hora: 0-23
53 minuto: 0-59
54 segundo: 0-59
55*/
56
57cron.schedule("*/3 * * * * *", () => {
58 console.log("Cada 3 segundos")
59 envioCorreo("Cada 3 segundos")
60}, {
61 timezone: "America/Lima"
62 })
63
64cron.schedule("* * * * *", () => {
65 console.log("Cada minuto")
66 envioCorreo("Cada minuto")
67}, {
68 timezone: "America/Lima"
69 })
70
71cron.schedule("* * 11 * *", () => {
72 console.log("Cada 11 de cada mes")
73 envioCorreo("Cada 11 de cada mes")
74}, {
75 timezone: "America/Lima"
76 })
77
78cron.schedule("38 12 * * *", () => {
79 console.log("Tarea de las 12:38")
80 envioCorreo("Tarea de las 12:38")
81}, {
82 timezone: "America/Lima"
83 })