@impruthvi/nodemail 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/CHANGELOG.md +81 -0
- package/LICENSE +21 -0
- package/README.md +323 -0
- package/dist/core/MailFacade.d.ts +13 -0
- package/dist/core/MailFacade.d.ts.map +1 -0
- package/dist/core/MailFacade.js +30 -0
- package/dist/core/MailFacade.js.map +1 -0
- package/dist/core/MailManager.d.ts +23 -0
- package/dist/core/MailManager.d.ts.map +1 -0
- package/dist/core/MailManager.js +91 -0
- package/dist/core/MailManager.js.map +1 -0
- package/dist/core/Mailable.d.ts +12 -0
- package/dist/core/Mailable.d.ts.map +1 -0
- package/dist/core/Mailable.js +38 -0
- package/dist/core/Mailable.js.map +1 -0
- package/dist/core/Message.d.ts +17 -0
- package/dist/core/Message.d.ts.map +1 -0
- package/dist/core/Message.js +62 -0
- package/dist/core/Message.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/SendGridProvider.d.ts +7 -0
- package/dist/providers/SendGridProvider.d.ts.map +1 -0
- package/dist/providers/SendGridProvider.js +72 -0
- package/dist/providers/SendGridProvider.js.map +1 -0
- package/dist/providers/SesProvider.d.ts +7 -0
- package/dist/providers/SesProvider.d.ts.map +1 -0
- package/dist/providers/SesProvider.js +97 -0
- package/dist/providers/SesProvider.js.map +1 -0
- package/dist/providers/SmtpProvider.d.ts +8 -0
- package/dist/providers/SmtpProvider.d.ts.map +1 -0
- package/dist/providers/SmtpProvider.js +81 -0
- package/dist/providers/SmtpProvider.js.map +1 -0
- package/dist/types/index.d.ts +92 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/examples/aws-ses.ts +46 -0
- package/examples/basic-smtp.ts +50 -0
- package/examples/sendgrid.ts +44 -0
- package/package.json +117 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Mail } from '../src/index.js';
|
|
2
|
+
import dotenv from 'dotenv';
|
|
3
|
+
|
|
4
|
+
// Load environment variables
|
|
5
|
+
dotenv.config();
|
|
6
|
+
|
|
7
|
+
// Configure mail with SendGrid
|
|
8
|
+
Mail.configure({
|
|
9
|
+
default: 'sendgrid',
|
|
10
|
+
from: {
|
|
11
|
+
address: 'noreply@example.com',
|
|
12
|
+
name: 'Nodemail Test',
|
|
13
|
+
},
|
|
14
|
+
mailers: {
|
|
15
|
+
sendgrid: {
|
|
16
|
+
driver: 'sendgrid',
|
|
17
|
+
apiKey: process.env.SENDGRID_API_KEY ?? '',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
async function sendTestEmail() {
|
|
23
|
+
try {
|
|
24
|
+
console.log('Sending test email via SendGrid...');
|
|
25
|
+
|
|
26
|
+
const result = await Mail.to('test@example.com')
|
|
27
|
+
.subject('Test Email from Nodemail (SendGrid)')
|
|
28
|
+
.html('<h1>Hello from Nodemail!</h1><p>This email was sent via SendGrid.</p>')
|
|
29
|
+
.text('Hello from Nodemail! This email was sent via SendGrid.')
|
|
30
|
+
.send();
|
|
31
|
+
|
|
32
|
+
if (result.success) {
|
|
33
|
+
console.log('✅ Email sent successfully!');
|
|
34
|
+
console.log('Message ID:', result.messageId);
|
|
35
|
+
} else {
|
|
36
|
+
console.error('❌ Failed to send email:', result.error);
|
|
37
|
+
}
|
|
38
|
+
} catch (error) {
|
|
39
|
+
console.error('❌ Error:', error);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Run the test
|
|
44
|
+
sendTestEmail().catch(console.error);
|
package/package.json
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@impruthvi/nodemail",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "A unified mail service for Node.js/TypeScript with Laravel-like simplicity. Support for multiple providers (SMTP, SendGrid, AWS SES, Mailgun, Resend, etc.) - just change environment variables, no code changes needed.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"dev": "tsx watch src/index.ts",
|
|
12
|
+
"example": "tsx --tsconfig tsconfig.json examples/basic-smtp.ts",
|
|
13
|
+
"test": "jest",
|
|
14
|
+
"test:watch": "jest --watch",
|
|
15
|
+
"test:coverage": "jest --coverage",
|
|
16
|
+
"lint": "eslint src/**/*.ts",
|
|
17
|
+
"lint:fix": "eslint src/**/*.ts --fix",
|
|
18
|
+
"format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
19
|
+
"format:check": "prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
20
|
+
"prepublishOnly": "npm run build",
|
|
21
|
+
"docs": "typedoc src/index.ts"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"email",
|
|
25
|
+
"mail",
|
|
26
|
+
"mailer",
|
|
27
|
+
"smtp",
|
|
28
|
+
"sendgrid",
|
|
29
|
+
"ses",
|
|
30
|
+
"mailgun",
|
|
31
|
+
"resend",
|
|
32
|
+
"postmark",
|
|
33
|
+
"typescript",
|
|
34
|
+
"laravel",
|
|
35
|
+
"mailable",
|
|
36
|
+
"notification",
|
|
37
|
+
"queue",
|
|
38
|
+
"template",
|
|
39
|
+
"markdown"
|
|
40
|
+
],
|
|
41
|
+
"author": "Pruthvisinh Rajput (https://github.com/impruthvi)",
|
|
42
|
+
"license": "MIT",
|
|
43
|
+
"repository": {
|
|
44
|
+
"type": "git",
|
|
45
|
+
"url": "git+https://github.com/impruthvi/nodemail.git"
|
|
46
|
+
},
|
|
47
|
+
"bugs": {
|
|
48
|
+
"url": "https://github.com/impruthvi/nodemail/issues"
|
|
49
|
+
},
|
|
50
|
+
"homepage": "https://github.com/impruthvi/nodemail#readme",
|
|
51
|
+
"engines": {
|
|
52
|
+
"node": ">=18.0.0"
|
|
53
|
+
},
|
|
54
|
+
"files": [
|
|
55
|
+
"dist",
|
|
56
|
+
"examples",
|
|
57
|
+
"README.md",
|
|
58
|
+
"LICENSE",
|
|
59
|
+
"CHANGELOG.md"
|
|
60
|
+
],
|
|
61
|
+
"dependencies": {
|
|
62
|
+
"dotenv": "^16.4.5",
|
|
63
|
+
"nodemailer": "^7.0.10",
|
|
64
|
+
"zod": "^3.23.8"
|
|
65
|
+
},
|
|
66
|
+
"peerDependencies": {
|
|
67
|
+
"@aws-sdk/client-ses": "^3.699.0",
|
|
68
|
+
"@sendgrid/mail": "^8.1.4",
|
|
69
|
+
"mailgun.js": "^10.2.3",
|
|
70
|
+
"postmark": "^4.0.5",
|
|
71
|
+
"resend": "^4.0.1"
|
|
72
|
+
},
|
|
73
|
+
"peerDependenciesMeta": {
|
|
74
|
+
"@sendgrid/mail": {
|
|
75
|
+
"optional": true
|
|
76
|
+
},
|
|
77
|
+
"@aws-sdk/client-ses": {
|
|
78
|
+
"optional": true
|
|
79
|
+
},
|
|
80
|
+
"mailgun.js": {
|
|
81
|
+
"optional": true
|
|
82
|
+
},
|
|
83
|
+
"resend": {
|
|
84
|
+
"optional": true
|
|
85
|
+
},
|
|
86
|
+
"postmark": {
|
|
87
|
+
"optional": true
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"devDependencies": {
|
|
91
|
+
"@eslint/js": "^9.15.0",
|
|
92
|
+
"@types/jest": "^29.5.14",
|
|
93
|
+
"@types/node": "^22.9.3",
|
|
94
|
+
"@types/nodemailer": "^6.4.16",
|
|
95
|
+
"eslint": "^9.15.0",
|
|
96
|
+
"eslint-config-prettier": "^9.1.0",
|
|
97
|
+
"globals": "^15.12.0",
|
|
98
|
+
"jest": "^29.7.0",
|
|
99
|
+
"prettier": "^3.3.3",
|
|
100
|
+
"ts-jest": "^29.2.5",
|
|
101
|
+
"tsx": "^4.19.2",
|
|
102
|
+
"typedoc": "^0.26.11",
|
|
103
|
+
"typescript": "^5.6.3",
|
|
104
|
+
"typescript-eslint": "^8.15.0"
|
|
105
|
+
},
|
|
106
|
+
"optionalDependencies": {
|
|
107
|
+
"bull": "^4.16.3",
|
|
108
|
+
"bullmq": "^5.28.2",
|
|
109
|
+
"commander": "^12.1.0",
|
|
110
|
+
"ejs": "^3.1.10",
|
|
111
|
+
"handlebars": "^4.7.8",
|
|
112
|
+
"i18next": "^23.16.4",
|
|
113
|
+
"juice": "^11.0.1",
|
|
114
|
+
"marked": "^14.1.3",
|
|
115
|
+
"pug": "^3.0.3"
|
|
116
|
+
}
|
|
117
|
+
}
|