@pixelplex/mail-service 0.1.21 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitlab-ci.yml +1 -25
- package/LICENSE.md +1 -1
- package/README.md +76 -111
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.js +18 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/mail.constants.d.ts +10 -0
- package/dist/constants/mail.constants.js +16 -0
- package/dist/constants/mail.constants.js.map +1 -0
- package/dist/decorators/index.d.ts +2 -0
- package/dist/decorators/index.js +19 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/inject-gateways.decorator.d.ts +2 -0
- package/dist/decorators/inject-gateways.decorator.js +10 -0
- package/dist/decorators/inject-gateways.decorator.js.map +1 -0
- package/dist/decorators/inject-options.decorator.d.ts +3 -0
- package/dist/decorators/inject-options.decorator.js +14 -0
- package/dist/decorators/inject-options.decorator.js.map +1 -0
- package/dist/factories/gateway.factory.d.ts +4 -0
- package/dist/factories/gateway.factory.js +17 -0
- package/dist/factories/gateway.factory.js.map +1 -0
- package/dist/factories/index.d.ts +1 -0
- package/dist/factories/index.js +18 -0
- package/dist/factories/index.js.map +1 -0
- package/dist/gateways/console.gateway.d.ts +6 -0
- package/dist/{connect/app.module.js → gateways/console.gateway.js} +14 -13
- package/dist/gateways/console.gateway.js.map +1 -0
- package/dist/gateways/index.d.ts +3 -0
- package/dist/gateways/index.js +20 -0
- package/dist/gateways/index.js.map +1 -0
- package/dist/gateways/slack.gateway.d.ts +8 -0
- package/dist/gateways/slack.gateway.js +40 -0
- package/dist/gateways/slack.gateway.js.map +1 -0
- package/dist/gateways/smtp.gateway.d.ts +9 -0
- package/dist/gateways/smtp.gateway.js +43 -0
- package/dist/gateways/smtp.gateway.js.map +1 -0
- package/dist/index.d.ts +7 -3
- package/dist/index.js +21 -5
- package/dist/index.js.map +1 -1
- package/dist/interfaces/gateway.interface.d.ts +4 -0
- package/dist/interfaces/gateway.interface.js +3 -0
- package/dist/interfaces/gateway.interface.js.map +1 -0
- package/dist/interfaces/index.d.ts +1 -0
- package/dist/interfaces/index.js +18 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/mail.module.d.ts +5 -0
- package/dist/mail.module.js +68 -0
- package/dist/mail.module.js.map +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +18 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/mail-sender.service.d.ts +11 -0
- package/dist/services/mail-sender.service.js +84 -0
- package/dist/services/mail-sender.service.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -8158
- package/dist/types/decorators.types.d.ts +2 -0
- package/dist/types/decorators.types.js +3 -0
- package/dist/types/decorators.types.js.map +1 -0
- package/dist/types/gateway.class.d.ts +4 -0
- package/dist/types/gateway.class.js +3 -0
- package/dist/types/gateway.class.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/options.types.d.ts +13 -0
- package/dist/types/options.types.js +3 -0
- package/dist/types/options.types.js.map +1 -0
- package/dist/types/slack-options.types.d.ts +3 -0
- package/dist/types/slack-options.types.js +3 -0
- package/dist/types/slack-options.types.js.map +1 -0
- package/dist/types/smtp-options.types.d.ts +7 -0
- package/dist/types/smtp-options.types.js +3 -0
- package/dist/types/smtp-options.types.js.map +1 -0
- package/dist/types/templates.types.d.ts +10 -0
- package/dist/types/templates.types.js +3 -0
- package/dist/types/templates.types.js.map +1 -0
- package/dist/utils/connection.utils.d.ts +4 -0
- package/dist/utils/connection.utils.js +17 -0
- package/dist/utils/connection.utils.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/types.utils.d.ts +1 -0
- package/dist/utils/types.utils.js +3 -0
- package/dist/utils/types.utils.js.map +1 -0
- package/package.json +29 -38
- package/tsconfig.json +4 -1
- package/.dockerignore +0 -5
- package/dist/connect/app.module.d.ts +0 -2
- package/dist/connect/app.module.js.map +0 -1
- package/dist/connect/app.service.d.ts +0 -20
- package/dist/connect/app.service.js +0 -61
- package/dist/connect/app.service.js.map +0 -1
- package/dist/connect/retry.d.ts +0 -2
- package/dist/connect/retry.js +0 -13
- package/dist/connect/retry.js.map +0 -1
- package/dist/connection.d.ts +0 -3
- package/dist/connection.js +0 -33
- package/dist/connection.js.map +0 -1
- package/dist/main.d.ts +0 -1
- package/dist/main.js +0 -23
- package/dist/main.js.map +0 -1
- package/dist/service/app.controller.d.ts +0 -9
- package/dist/service/app.controller.js +0 -59
- package/dist/service/app.controller.js.map +0 -1
- package/dist/service/app.module.d.ts +0 -2
- package/dist/service/app.module.js +0 -23
- package/dist/service/app.module.js.map +0 -1
- package/dist/service/sender.service.d.ts +0 -7
- package/dist/service/sender.service.js +0 -63
- package/dist/service/sender.service.js.map +0 -1
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.AppModule = void 0;
|
|
10
|
-
const common_1 = require("@nestjs/common");
|
|
11
|
-
const app_controller_1 = require("./app.controller");
|
|
12
|
-
const sender_service_1 = require("./sender.service");
|
|
13
|
-
let AppModule = class AppModule {
|
|
14
|
-
};
|
|
15
|
-
AppModule = __decorate([
|
|
16
|
-
common_1.Module({
|
|
17
|
-
imports: [],
|
|
18
|
-
controllers: [app_controller_1.AppController],
|
|
19
|
-
providers: [sender_service_1.SenderService],
|
|
20
|
-
})
|
|
21
|
-
], AppModule);
|
|
22
|
-
exports.AppModule = AppModule;
|
|
23
|
-
//# sourceMappingURL=app.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/service/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,qDAAiD;AAOjD,IAAa,SAAS,GAAtB,MAAa,SAAS;CAAG,CAAA;AAAZ,SAAS;IALrB,eAAM,CAAC;QACN,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,8BAAa,CAAC;KAC3B,CAAC;GACW,SAAS,CAAG;AAAZ,8BAAS"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SenderService = void 0;
|
|
4
|
-
const fs = require("fs");
|
|
5
|
-
const common_1 = require("@nestjs/common");
|
|
6
|
-
const config_1 = require("config");
|
|
7
|
-
const Handlebars = require("handlebars");
|
|
8
|
-
const nodemailer_1 = require("nodemailer");
|
|
9
|
-
const hbs = require("nodemailer-express-handlebars");
|
|
10
|
-
const hbsOptions = {
|
|
11
|
-
viewEngine: {
|
|
12
|
-
layoutsDir: 'templates/',
|
|
13
|
-
},
|
|
14
|
-
viewPath: 'templates/',
|
|
15
|
-
};
|
|
16
|
-
class SenderService {
|
|
17
|
-
constructor() {
|
|
18
|
-
this.logger = new common_1.Logger('Mail::SenderService');
|
|
19
|
-
}
|
|
20
|
-
async onModuleInit() {
|
|
21
|
-
await this.connect();
|
|
22
|
-
}
|
|
23
|
-
async connect() {
|
|
24
|
-
const isEthereal = config_1.MAIL_SERVICE.SMTP.HOST === 'smtp.ethereal.email';
|
|
25
|
-
if (!config_1.MAIL_SERVICE.SMTP.PASSWORD && !isEthereal) {
|
|
26
|
-
throw new Error(`[NodemailerConnector Error] Password wasn\'t provided.
|
|
27
|
-
You should provide the password in ENV Variable or in local.json config file`);
|
|
28
|
-
}
|
|
29
|
-
let testAccount;
|
|
30
|
-
if (isEthereal) {
|
|
31
|
-
this.logger.warn('Run in ethereal.email mode');
|
|
32
|
-
testAccount = await nodemailer_1.createTestAccount();
|
|
33
|
-
}
|
|
34
|
-
this.transporter = nodemailer_1.createTransport({
|
|
35
|
-
host: config_1.MAIL_SERVICE.SMTP.HOST,
|
|
36
|
-
port: config_1.MAIL_SERVICE.SMTP.PORT,
|
|
37
|
-
auth: {
|
|
38
|
-
user: config_1.MAIL_SERVICE.SMTP.USERNAME || testAccount.user,
|
|
39
|
-
pass: config_1.MAIL_SERVICE.SMTP.PASSWORD || testAccount.pass,
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
this.transporter.use('compile', hbs(hbsOptions));
|
|
43
|
-
this.logger.log('Connected');
|
|
44
|
-
}
|
|
45
|
-
async sendMail(to, template, context = {}) {
|
|
46
|
-
this.logger.debug(`New message to "${to}" with template "${template}"`);
|
|
47
|
-
const subjectTpl = Handlebars.compile(fs.readFileSync(`templates/${template}.subject.handlebars`).toString());
|
|
48
|
-
const info = await this.transporter.sendMail({
|
|
49
|
-
from: config_1.MAIL_SERVICE.SMTP.SENDER,
|
|
50
|
-
to,
|
|
51
|
-
subject: subjectTpl(context),
|
|
52
|
-
template,
|
|
53
|
-
context,
|
|
54
|
-
});
|
|
55
|
-
this.logger.debug(`Message sent: ${info.messageId}, ${info.response}`);
|
|
56
|
-
const isEthereal = config_1.MAIL_SERVICE.SMTP.HOST === 'smtp.ethereal.email';
|
|
57
|
-
if (isEthereal) {
|
|
58
|
-
this.logger.debug(`Preview URL: ${nodemailer_1.getTestMessageUrl(info)}`);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
exports.SenderService = SenderService;
|
|
63
|
-
//# sourceMappingURL=sender.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sender.service.js","sourceRoot":"","sources":["../../src/service/sender.service.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,2CAAwC;AACxC,mCAAsC;AACtC,yCAAyC;AACzC,2CAAgG;AAChG,qDAAqD;AAErD,MAAM,UAAU,GAAG;IACjB,UAAU,EAAE;QACV,UAAU,EAAE,YAAY;KACzB;IACD,QAAQ,EAAE,YAAY;CACvB,CAAC;AAEF,MAAa,aAAa;IAA1B;QAEmB,WAAM,GAAW,IAAI,eAAM,CAAC,qBAAqB,CAAC,CAAC;IAgDtE,CAAC;IA9CC,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,UAAU,GAAG,qBAAY,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC;QACpE,IAAI,CAAC,qBAAY,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE;YAC9C,MAAM,IAAI,KAAK,CACb;qFAC6E,CAC9E,CAAC;SACH;QAED,IAAI,WAAW,CAAC;QAChB,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC/C,WAAW,GAAG,MAAM,8BAAiB,EAAE,CAAC;SACzC;QACD,IAAI,CAAC,WAAW,GAAG,4BAAe,CAAC;YACjC,IAAI,EAAE,qBAAY,CAAC,IAAI,CAAC,IAAI;YAC5B,IAAI,EAAE,qBAAY,CAAC,IAAI,CAAC,IAAI;YAC5B,IAAI,EAAE;gBACJ,IAAI,EAAE,qBAAY,CAAC,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI;gBACpD,IAAI,EAAE,qBAAY,CAAC,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI;aACrD;SACF,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,QAAgB,EAAE,OAAO,GAAG,EAAE;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,QAAQ,GAAG,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,QAAQ,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9G,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YAC3C,IAAI,EAAE,qBAAY,CAAC,IAAI,CAAC,MAAM;YAC9B,EAAE;YACF,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;YAC5B,QAAQ;YACR,OAAO;SACR,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,qBAAY,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC;QACpE,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,8BAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC9D;IACH,CAAC;CACF;AAlDD,sCAkDC"}
|