Skip to content

Commit 47e9914

Browse files
author
Nutchanon Mongkonvilas
committed
script and template
0 parents  commit 47e9914

11 files changed

+2570
-0
lines changed

.env.example

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
MAIL_PASS=

.gitignore

+139
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
lerna-debug.log*
8+
.pnpm-debug.log*
9+
10+
# Diagnostic reports (https://nodejs.org/api/report.html)
11+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
12+
13+
# Runtime data
14+
pids
15+
*.pid
16+
*.seed
17+
*.pid.lock
18+
19+
# Directory for instrumented libs generated by jscoverage/JSCover
20+
lib-cov
21+
22+
# Coverage directory used by tools like istanbul
23+
coverage
24+
*.lcov
25+
26+
# nyc test coverage
27+
.nyc_output
28+
29+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
30+
.grunt
31+
32+
# Bower dependency directory (https://bower.io/)
33+
bower_components
34+
35+
# node-waf configuration
36+
.lock-wscript
37+
38+
# Compiled binary addons (https://nodejs.org/api/addons.html)
39+
build/Release
40+
41+
# Dependency directories
42+
node_modules/
43+
jspm_packages/
44+
45+
# Snowpack dependency directory (https://snowpack.dev/)
46+
web_modules/
47+
48+
# TypeScript cache
49+
*.tsbuildinfo
50+
51+
# Optional npm cache directory
52+
.npm
53+
54+
# Optional eslint cache
55+
.eslintcache
56+
57+
# Optional stylelint cache
58+
.stylelintcache
59+
60+
# Microbundle cache
61+
.rpt2_cache/
62+
.rts2_cache_cjs/
63+
.rts2_cache_es/
64+
.rts2_cache_umd/
65+
66+
# Optional REPL history
67+
.node_repl_history
68+
69+
# Output of 'npm pack'
70+
*.tgz
71+
72+
# Yarn Integrity file
73+
.yarn-integrity
74+
75+
# dotenv environment variable files
76+
.env
77+
.env.development.local
78+
.env.test.local
79+
.env.production.local
80+
.env.local
81+
82+
# parcel-bundler cache (https://parceljs.org/)
83+
.cache
84+
.parcel-cache
85+
86+
# Next.js build output
87+
.next
88+
out
89+
90+
# Nuxt.js build / generate output
91+
.nuxt
92+
dist
93+
94+
# Gatsby files
95+
.cache/
96+
# Comment in the public line in if your project uses Gatsby and not Next.js
97+
# https://nextjs.org/blog/next-9-1#public-directory-support
98+
# public
99+
100+
# vuepress build output
101+
.vuepress/dist
102+
103+
# vuepress v2.x temp and cache directory
104+
.temp
105+
.cache
106+
107+
# vitepress build output
108+
**/.vitepress/dist
109+
110+
# vitepress cache directory
111+
**/.vitepress/cache
112+
113+
# Docusaurus cache and generated files
114+
.docusaurus
115+
116+
# Serverless directories
117+
.serverless/
118+
119+
# FuseBox cache
120+
.fusebox/
121+
122+
# DynamoDB Local files
123+
.dynamodb/
124+
125+
# TernJS port file
126+
.tern-port
127+
128+
# Stores VSCode versions used for testing VSCode extensions
129+
.vscode-test
130+
131+
# yarn v2
132+
.yarn/cache
133+
.yarn/unplugged
134+
.yarn/build-state.yml
135+
.yarn/install-state.gz
136+
.pnp.*
137+
138+
# arbitrary temp file
139+
temp/

README.md

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
## About the Project
2+
3+
This is an email sending script aimed for sending a mail template to multiple recipients at the same time. Mail's content is changed according to each recipient detail in a CSV file. This is created for ISAG WWC event, and it is used instead of brower extensions that can do the same job. Because those extensions have usage limitation if you're using for free (e.g. 50 mails per day). Also some browser extensions aren't safe and are annoying to install.
4+
5+
We're currently trying to find a way to avoid being flagged as spam mail. **_Don't use this for actual spamming though._**
6+
7+
## Getting Started
8+
9+
### Prerequisites
10+
- pnpm
11+
- node.js
12+
13+
### Installation
14+
15+
1. Create the gmail app password, then put it in .env\
16+
https://knowledge.workspace.google.com/kb/how-to-create-app-passwords-000009237
17+
18+
2. Clone the repo
19+
20+
3. Get the recipients CSV file
21+
22+
4. Run this
23+
24+
```
25+
pnpm install
26+
pnpm run dev
27+
```
28+
29+
## Usage
30+
31+
**Running script**
32+
![script](docs/usage-1.png)
33+
34+
**Result**
35+
![result](docs/usage-2.png)
36+
37+
## License
38+
![license](docs/license.jpg)

docs/license.jpg

78.5 KB
Loading

docs/usage-1.png

58.5 KB
Loading

docs/usage-2.png

462 KB
Loading

mail.csv

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
รหัสนักศึกษา,คำนำหน้า,ชื่อ,นามสกุล,ชื่อเล่น,เบอร์1,เบอร์2,อีเมล,อีเมลสำรอง,เลขลงท้าย,ยอด,ผู้รับผิดชอบ,อีเมลผู้รับผิดชอบ,Date Sent,Filter Rows to Merge
2+
64010899,,สิระติ,หิรัญธานี,บ่าว,0805052555,,[email protected],,0.01,"1,000.01",บีม,[email protected],,
3+
65010290,,ณัฐชนน,มงคลวิลาศ,ยิม,0970472541,,[email protected],,0.02,"1,000.02",บีม,[email protected],,

package.json

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"name": "auto-mail-send",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "script.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1",
8+
"dev": "node script.js"
9+
},
10+
"keywords": [],
11+
"author": "",
12+
"license": "ISC",
13+
"dependencies": {
14+
"dotenv": "^16.4.7",
15+
"email-templates": "^12.0.1",
16+
"neat-csv": "^7.0.0",
17+
"nodemailer": "^6.9.16",
18+
"nodemailer-express-handlebars": "^7.0.0"
19+
}
20+
}

0 commit comments

Comments
 (0)