@studiosonrai/nestjs-email 1.0.0 → 1.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/README.md ADDED
@@ -0,0 +1,66 @@
1
+ # @studiosonrai/nestjs-email
2
+
3
+ Email module for NestJS with SMTP and Azure Communication Service support.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @studiosonrai/nestjs-email
9
+
10
+ # For SMTP:
11
+ npm install nodemailer
12
+
13
+ # For Azure:
14
+ npm install @azure/communication-email
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ### SMTP
20
+
21
+ ```typescript
22
+ import { EmailModule, EmailService } from '@studiosonrai/nestjs-email';
23
+
24
+ @Module({
25
+ imports: [
26
+ EmailModule.forRootAsync({
27
+ inject: [ConfigService],
28
+ useFactory: (config: ConfigService) => ({
29
+ provider: 'smtp',
30
+ smtp: {
31
+ host: config.get('SMTP_HOST'),
32
+ port: config.get('SMTP_PORT'),
33
+ auth: { user: config.get('SMTP_USER'), pass: config.get('SMTP_PASS') },
34
+ },
35
+ defaultFrom: config.get('MAIL_FROM'),
36
+ }),
37
+ }),
38
+ ],
39
+ })
40
+ export class AppModule {}
41
+ ```
42
+
43
+ ### Sending Emails
44
+
45
+ ```typescript
46
+ // Inject and use
47
+ @Injectable()
48
+ export class MyService {
49
+ constructor(private emailService: EmailService) {}
50
+
51
+ async send() {
52
+ await this.emailService.sendEmail('to@example.com', 'Subject', '<p>Body</p>');
53
+ }
54
+ }
55
+ ```
56
+
57
+ ## Configuration
58
+
59
+ | Option | Type | Description |
60
+ |--------|------|-------------|
61
+ | `provider` | `'smtp' \| 'azure'` | Email provider |
62
+ | `smtp` | `{ host, port, secure?, auth? }` | SMTP config |
63
+ | `azure` | `{ connectionString, senderAddress }` | Azure config |
64
+ | `defaultFrom` | `string` | Default sender address |
65
+ | `imageCompression` | `{ enabled, maxWidth?, quality? }` | Compress inline images |
66
+ | `verbose` | `boolean` | Enable logging |
@@ -16,6 +16,8 @@ exports.EmailService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const email_constants_1 = require("./email.constants");
18
18
  let EmailService = class EmailService {
19
+ options;
20
+ provider;
19
21
  constructor(options, provider) {
20
22
  this.options = options;
21
23
  this.provider = provider;
@@ -1 +1 @@
1
- {"version":3,"file":"email.service.js","sourceRoot":"","sources":["../../src/email.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkF;AAQlF,uDAAyE;AAMlE,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB,YAEmB,OAA2B,EAE3B,QAAuB;QAFvB,YAAO,GAAP,OAAO,CAAoB;QAE3B,aAAQ,GAAR,QAAQ,CAAe;IACvC,CAAC;IAUJ,KAAK,CAAC,SAAS,CACb,EAAqB,EACrB,OAAe,EACf,IAAY,EACZ,WAA+B;QAE/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC3C,EAAE;YACF,OAAO;YACP,IAAI,EAAE,IAAI;YACV,WAAW;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,qCAA4B,CACpC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,sBAAsB,CAChD,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAOD,KAAK,CAAC,IAAI,CAAC,OAAyB;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,qCAA4B,CACpC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,sBAAsB,CAChD,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAOD,KAAK,CAAC,OAAO,CAAC,OAAyB;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAKD,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAKD,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;CACF,CAAA;AA7EY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,sCAAoB,CAAC,CAAA;IAE5B,WAAA,IAAA,eAAM,EAAC,gCAAc,CAAC,CAAA;;GAJd,YAAY,CA6ExB"}
1
+ {"version":3,"file":"email.service.js","sourceRoot":"","sources":["../../src/email.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkF;AAQlF,uDAAyE;AAMlE,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGJ;IAEA;IAJnB,YAEmB,OAA2B,EAE3B,QAAuB;QAFvB,YAAO,GAAP,OAAO,CAAoB;QAE3B,aAAQ,GAAR,QAAQ,CAAe;IACvC,CAAC;IAUJ,KAAK,CAAC,SAAS,CACb,EAAqB,EACrB,OAAe,EACf,IAAY,EACZ,WAA+B;QAE/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC3C,EAAE;YACF,OAAO;YACP,IAAI,EAAE,IAAI;YACV,WAAW;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,qCAA4B,CACpC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,sBAAsB,CAChD,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAOD,KAAK,CAAC,IAAI,CAAC,OAAyB;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,qCAA4B,CACpC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,sBAAsB,CAChD,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAOD,KAAK,CAAC,OAAO,CAAC,OAAyB;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAKD,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAKD,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;CACF,CAAA;AA7EY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,sCAAoB,CAAC,CAAA;IAE5B,WAAA,IAAA,eAAM,EAAC,gCAAc,CAAC,CAAA;;GAJd,YAAY,CA6ExB"}
@@ -35,8 +35,12 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.AzureEmailProvider = void 0;
37
37
  class AzureEmailProvider {
38
+ emailClient;
39
+ senderAddress;
40
+ ready = false;
41
+ imageCompression;
42
+ verbose;
38
43
  constructor(config, options) {
39
- this.ready = false;
40
44
  this.senderAddress = config.senderAddress;
41
45
  this.imageCompression = options?.imageCompression;
42
46
  this.verbose = options?.verbose ?? false;
@@ -1 +1 @@
1
- {"version":3,"file":"azure.provider.js","sourceRoot":"","sources":["../../../src/providers/azure.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"azure.provider.js","sourceRoot":"","sources":["../../../src/providers/azure.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const azure_provider_1 = require("./azure.provider");
4
+ describe('AzureEmailProvider Integration', () => {
5
+ let provider;
6
+ const config = {
7
+ connectionString: process.env.AZURE_EMAIL_CONNECTION_STRING || '',
8
+ senderAddress: process.env.AZURE_EMAIL_SENDER || '',
9
+ };
10
+ const testRecipient = process.env.TEST_EMAIL_TO || 'test@example.com';
11
+ beforeAll(async () => {
12
+ if (!config.connectionString) {
13
+ throw new Error('Azure connection string is required (AZURE_EMAIL_CONNECTION_STRING)');
14
+ }
15
+ if (!config.senderAddress) {
16
+ throw new Error('Azure sender address is required (AZURE_EMAIL_SENDER)');
17
+ }
18
+ provider = new azure_provider_1.AzureEmailProvider(config, {
19
+ verbose: true,
20
+ });
21
+ await new Promise((resolve) => setTimeout(resolve, 500));
22
+ });
23
+ it('should initialize successfully', () => {
24
+ expect(provider.isReady()).toBe(true);
25
+ });
26
+ it('should send a simple email', async () => {
27
+ const result = await provider.sendEmail({
28
+ to: testRecipient,
29
+ subject: `[Azure Test] Simple Email - ${new Date().toISOString()}`,
30
+ html: '<h1>Test Email</h1><p>This is a test email sent via Azure Communication Service.</p>',
31
+ text: 'Test Email\n\nThis is a test email sent via Azure Communication Service.',
32
+ });
33
+ expect(result.success).toBe(true);
34
+ expect(result.messageId).toBeDefined();
35
+ console.log('Message ID:', result.messageId);
36
+ }, 30000);
37
+ it('should send email with custom from address', async () => {
38
+ const result = await provider.sendEmail({
39
+ to: testRecipient,
40
+ from: config.senderAddress,
41
+ subject: `[Azure Test] Custom From - ${new Date().toISOString()}`,
42
+ html: '<p>Email with custom from address.</p>',
43
+ });
44
+ expect(result.success).toBe(true);
45
+ expect(result.messageId).toBeDefined();
46
+ }, 30000);
47
+ it('should send email with cc', async () => {
48
+ const result = await provider.sendEmail({
49
+ to: testRecipient,
50
+ cc: testRecipient,
51
+ subject: `[Azure Test] CC Test - ${new Date().toISOString()}`,
52
+ html: '<p>Email with CC recipient.</p>',
53
+ });
54
+ expect(result.success).toBe(true);
55
+ expect(result.messageId).toBeDefined();
56
+ }, 30000);
57
+ it('should send email with replyTo', async () => {
58
+ const result = await provider.sendEmail({
59
+ to: testRecipient,
60
+ replyTo: testRecipient,
61
+ subject: `[Azure Test] Reply-To Test - ${new Date().toISOString()}`,
62
+ html: '<p>Email with reply-to address.</p>',
63
+ });
64
+ expect(result.success).toBe(true);
65
+ expect(result.messageId).toBeDefined();
66
+ }, 30000);
67
+ it('should send email with attachment', async () => {
68
+ const result = await provider.sendEmail({
69
+ to: testRecipient,
70
+ subject: `[Azure Test] Attachment Test - ${new Date().toISOString()}`,
71
+ html: '<p>Email with attachment.</p>',
72
+ attachments: [
73
+ {
74
+ filename: 'test.txt',
75
+ content: Buffer.from('This is a test attachment content.'),
76
+ contentType: 'text/plain',
77
+ },
78
+ ],
79
+ });
80
+ expect(result.success).toBe(true);
81
+ expect(result.messageId).toBeDefined();
82
+ }, 30000);
83
+ });
84
+ //# sourceMappingURL=azure.provider.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure.provider.spec.js","sourceRoot":"","sources":["../../../src/providers/azure.provider.spec.ts"],"names":[],"mappings":"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"}
@@ -35,8 +35,12 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.SmtpEmailProvider = void 0;
37
37
  class SmtpEmailProvider {
38
+ transporter;
39
+ ready = false;
40
+ defaultFrom;
41
+ imageCompression;
42
+ verbose;
38
43
  constructor(config, options) {
39
- this.ready = false;
40
44
  this.defaultFrom = options?.defaultFrom;
41
45
  this.imageCompression = options?.imageCompression;
42
46
  this.verbose = options?.verbose ?? false;
@@ -1 +1 @@
1
- {"version":3,"file":"smtp.provider.js","sourceRoot":"","sources":["../../../src/providers/smtp.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smtp.provider.js","sourceRoot":"","sources":["../../../src/providers/smtp.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const smtp_provider_1 = require("./smtp.provider");
4
+ describe('SmtpEmailProvider Integration', () => {
5
+ let provider;
6
+ const config = {
7
+ host: process.env.SMTP_HOST || 'localhost',
8
+ port: parseInt(process.env.SMTP_PORT || '2525', 10),
9
+ secure: process.env.SMTP_SECURE === 'true',
10
+ auth: process.env.SMTP_USER
11
+ ? {
12
+ user: process.env.SMTP_USER,
13
+ pass: process.env.SMTP_PASS,
14
+ }
15
+ : undefined,
16
+ };
17
+ const defaultFrom = process.env.SMTP_FROM || 'noreply@dev.local';
18
+ const testRecipient = process.env.TEST_EMAIL_TO || 'test@example.com';
19
+ beforeAll(async () => {
20
+ if (!config.host) {
21
+ throw new Error('SMTP host is required');
22
+ }
23
+ provider = new smtp_provider_1.SmtpEmailProvider(config, {
24
+ defaultFrom,
25
+ verbose: true,
26
+ });
27
+ await new Promise((resolve) => setTimeout(resolve, 500));
28
+ });
29
+ it('should initialize successfully', () => {
30
+ expect(provider.isReady()).toBe(true);
31
+ });
32
+ it('should send a simple email', async () => {
33
+ const result = await provider.sendEmail({
34
+ to: testRecipient,
35
+ subject: `[SMTP Test] Simple Email - ${new Date().toISOString()}`,
36
+ html: '<h1>Test Email</h1><p>This is a test email sent via SMTP provider.</p>',
37
+ text: 'Test Email\n\nThis is a test email sent via SMTP provider.',
38
+ });
39
+ expect(result.success).toBe(true);
40
+ expect(result.messageId).toBeDefined();
41
+ console.log('Message ID:', result.messageId);
42
+ });
43
+ it('should send email with custom from address', async () => {
44
+ const result = await provider.sendEmail({
45
+ to: testRecipient,
46
+ from: defaultFrom,
47
+ subject: `[SMTP Test] Custom From - ${new Date().toISOString()}`,
48
+ html: '<p>Email with custom from address.</p>',
49
+ });
50
+ expect(result.success).toBe(true);
51
+ expect(result.messageId).toBeDefined();
52
+ });
53
+ it('should send email with cc and bcc', async () => {
54
+ const result = await provider.sendEmail({
55
+ to: testRecipient,
56
+ cc: testRecipient,
57
+ subject: `[SMTP Test] CC/BCC Test - ${new Date().toISOString()}`,
58
+ html: '<p>Email with CC recipient.</p>',
59
+ });
60
+ expect(result.success).toBe(true);
61
+ expect(result.messageId).toBeDefined();
62
+ });
63
+ it('should send email with replyTo', async () => {
64
+ const result = await provider.sendEmail({
65
+ to: testRecipient,
66
+ replyTo: testRecipient,
67
+ subject: `[SMTP Test] Reply-To Test - ${new Date().toISOString()}`,
68
+ html: '<p>Email with reply-to address.</p>',
69
+ });
70
+ expect(result.success).toBe(true);
71
+ expect(result.messageId).toBeDefined();
72
+ });
73
+ it('should send email with attachment', async () => {
74
+ const result = await provider.sendEmail({
75
+ to: testRecipient,
76
+ subject: `[SMTP Test] Attachment Test - ${new Date().toISOString()}`,
77
+ html: '<p>Email with attachment.</p>',
78
+ attachments: [
79
+ {
80
+ filename: 'test.txt',
81
+ content: Buffer.from('This is a test attachment content.'),
82
+ contentType: 'text/plain',
83
+ },
84
+ ],
85
+ });
86
+ expect(result.success).toBe(true);
87
+ expect(result.messageId).toBeDefined();
88
+ });
89
+ });
90
+ //# sourceMappingURL=smtp.provider.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtp.provider.spec.js","sourceRoot":"","sources":["../../../src/providers/smtp.provider.spec.ts"],"names":[],"mappings":"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"}