Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.83 KB | None | 0 0
  1. var nodemailer = require("nodemailer");
  2. var smtpTransport = require("nodemailer-smtp-transport");
  3. var Imap = require("imap");
  4. var inspect = require("util").inspect;
  5. const simpleParser = require("mailparser").simpleParser;
  6. var WebSocketServer = require("ws").Server;
  7. wss = new WebSocketServer({ port: 5000 });
  8.  
  9. // Nodemailer SMTP transporter
  10. var transporter = nodemailer.createTransport(
  11. smtpTransport({
  12. service: "gmail",
  13. host: "smtp.gmail.com",
  14. port: 465,
  15. secure: true,
  16. auth: {
  17. user: "bilcenterodense@gmail.com",
  18. pass: "bco123qwe"
  19. },
  20. tls: {
  21. ciphers: "SSLv3",
  22. rejectUnauthorized: false
  23. }
  24. })
  25. );
  26.  
  27. // Objekt til klient
  28. var mailObject = {};
  29.  
  30. // IMAP hvor vi henter mails (Google)
  31. var imap = new Imap({
  32. user: "bilcenterodense@gmail.com",
  33. password: "bco123qwe",
  34. host: "imap.gmail.com",
  35. port: 993,
  36. tls: true
  37. });
  38.  
  39. var mailOptions = {
  40. from: "bilcenterodense@gmail.com",
  41. to: "",
  42. subject: "",
  43. text: "" // Skal være en streng!
  44. };
  45.  
  46. // Websocket forbindelse med klient
  47. wss.on("connection", function(ws) {
  48. console.log("Websocket Client connected");
  49.  
  50. ws.on("message", function(e) {
  51. var request = JSON.parse(e);
  52. // console.log(request);
  53.  
  54. if (request.type === "test") {
  55. console.log("Test success: " + request.message);
  56. ws.send(JSON.stringify("Server recieved: " + request.message));
  57. }
  58.  
  59. if (request.type === "post") {
  60. mailOptions = {
  61. from: request.mailObject.from,
  62. to: request.mailObject.to,
  63. subject: request.mailObject.subject,
  64. text: request.mailObject.text
  65. };
  66. transporter.sendMail(mailOptions, function(error, info) {
  67. if (error) {
  68. console.log(error);
  69. } else {
  70. console.log("Email sent: " + info.response);
  71. }
  72. });
  73. }
  74.  
  75. if (request.type === "get") {
  76. function openInbox(cb) {
  77. imap.openBox("INBOX", true, cb);
  78. }
  79. imap.once("ready", function() {
  80. openInbox(function(err, box) {
  81. if (err) throw err;
  82.  
  83. // IMAP henter ALLE mails fra GMail
  84. imap.search(["UNSEEN"], function(err, results) {
  85. if (err) throw err;
  86. var f = imap.fetch(results, { bodies: "" });
  87. f.on("message", function(msg, seqno) {
  88. console.log("Message #%d", seqno);
  89. var prefix = "(#" + seqno + ") ";
  90. msg.on("body", function(stream, info) {
  91. simpleParser(stream, (err, parsed) => {
  92. mailObject = parsed; // Gemmer seneste mail i mailObject
  93. console.log(mailObject);
  94. });
  95. // console.log(prefix + "Body");
  96. // stream.pipe(fs.createWriteStream("msg-" + seqno + "-body.txt"));
  97. });
  98. msg.once("attributes", function(attrs) {
  99. console.log(
  100. prefix + "Attributes: %s",
  101. inspect(attrs, false, 8)
  102. );
  103. });
  104. msg.once("end", function() {
  105. console.log(prefix + "Finished");
  106. });
  107. });
  108. f.once("error", function(err) {
  109. console.log("Fetch error: " + err);
  110. });
  111. f.once("end", function() {
  112. console.log("Done fetching all messages!");
  113. imap.end();
  114. });
  115. });
  116. });
  117. });
  118. imap.once("error", function(err) {
  119. console.log(err);
  120. });
  121.  
  122. // Når vi er færdige, sender vi mails til klienten
  123. imap.once("end", function() {
  124. console.log("Connection ended, sending mails to klient..");
  125. ws.send(JSON.stringify(mailObject));
  126. });
  127. imap.connect();
  128. }
  129. });
  130.  
  131. ws.on("close", function() {
  132. ws.close();
  133. });
  134. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement