From 160bb0c6052a756e0c566bcc7f2101a760f595b6 Mon Sep 17 00:00:00 2001 From: grimhilt Date: Sun, 9 Apr 2023 23:29:05 +0200 Subject: [PATCH] add send mail --- back/mails/smtp/SmtpInstance.ts | 39 +++++++++++++++++++++++++++++++++ back/package-lock.json | 20 +++++++++++++++++ back/package.json | 3 ++- 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 back/mails/smtp/SmtpInstance.ts diff --git a/back/mails/smtp/SmtpInstance.ts b/back/mails/smtp/SmtpInstance.ts new file mode 100644 index 0000000..3406db0 --- /dev/null +++ b/back/mails/smtp/SmtpInstance.ts @@ -0,0 +1,39 @@ +import { Account } from "../imap/ImapSync"; +import logger from "../../system/Logger"; +import nodemailer, { Transporter } from "nodemailer"; + +export class SmapInstance { + transporter: Transporter; + account: Account; + + constructor(account) { + // todo store other data + this.transporter = nodemailer.createTransport({ + host: "smtp.gmail.com", + port: 465, + secure: true, + auth: { + user: account.user, + pass: account.password, + }, + }); + this.account = account; + } + + sendMail() { + const msg = { + from: "", + to: "", + subject: "Hello ✔", + text: "Hello world?", + html: "Hello world?", + }; + this.transporter.sendMail(msg, (err, message) => { + if (err) { + logger.err(err); + throw err; + } + logger.log(message); + }); + } +} diff --git a/back/package-lock.json b/back/package-lock.json index 0ccdc59..2f4968d 100644 --- a/back/package-lock.json +++ b/back/package-lock.json @@ -26,6 +26,7 @@ "@types/mailparser": "^3.0.2", "@types/moment": "^2.13.0", "@types/node": "^18.15.11", + "@types/nodemailer": "^6.4.7", "concurrently": "^8.0.1", "jest": "^29.5.0", "sql-mysql": "^1.2.0", @@ -1627,6 +1628,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/nodemailer": { + "version": "6.4.7", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@types/nodemailer/-/nodemailer-6.4.7.tgz", + "integrity": "sha512-f5qCBGAn/f0qtRcd4SEn88c8Fp3Swct1731X4ryPKqS61/A3LmmzN8zaEz7hneJvpjFbUUgY7lru/B/7ODTazg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/prettier": { "version": "2.7.2", "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@types/prettier/-/prettier-2.7.2.tgz", @@ -8310,6 +8321,15 @@ "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", "dev": true }, + "@types/nodemailer": { + "version": "6.4.7", + "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@types/nodemailer/-/nodemailer-6.4.7.tgz", + "integrity": "sha512-f5qCBGAn/f0qtRcd4SEn88c8Fp3Swct1731X4ryPKqS61/A3LmmzN8zaEz7hneJvpjFbUUgY7lru/B/7ODTazg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/prettier": { "version": "2.7.2", "resolved": "https://repo.plus4u.net/operatorGate/repository/public-javascript/@types/prettier/-/prettier-2.7.2.tgz", diff --git a/back/package.json b/back/package.json index 64b4b35..1e6e481 100644 --- a/back/package.json +++ b/back/package.json @@ -27,6 +27,7 @@ "@types/mailparser": "^3.0.2", "@types/moment": "^2.13.0", "@types/node": "^18.15.11", + "@types/nodemailer": "^6.4.7", "concurrently": "^8.0.1", "jest": "^29.5.0", "sql-mysql": "^1.2.0", @@ -46,4 +47,4 @@ "/test//**/*-test.[jt]s?(x)" ] } -} \ No newline at end of file +}