-
Notifications
You must be signed in to change notification settings - Fork 2
/
config.js
126 lines (119 loc) · 3.36 KB
/
config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import { ClientSecretCredential } from "@azure/identity";
import { TokenCredentialAuthenticationProvider } from "@microsoft/microsoft-graph-client/authProviders/azureTokenCredentials";
const MAILBOX_URI = process.env.MAILBOX_URI;
const EMAIL_PROTOCOL = process.env.EMAIL_PROTOCOL || 'smtp';
const FROM_NAME = process.env.FROM_NAME || '';
const HOURS_DELIVERING_TIMEOUT = process.env.HOURS_DELIVERING_TIMEOUT || 1;
const HOURS_SENDING_TIMEOUT = process.env.HOURS_SENDING_TIMEOUT || .5;
const MAX_BATCH_SIZE = process.env.MAX_BATCH_SIZE || 10;
const MAX_BATCH_WAIT_TIME = process.env.MAX_BATCH_WAIT_TIME || 1000;
const MAX_RETRY_ATTEMPTS = process.env.MAX_RETRY_ATTEMPTS || 5;
const WELL_KNOWN_SERVICE = (process.env.WELL_KNOWN_SERVICE || '').toLowerCase();
const CRON_FREQUENCY = process.env.EMAIL_CRON_PATTERN || '* * 1 * * *';
const SECURE_CONNECTION = process.env.SECURE_CONNECTION == "true" || false;
const EMAIL_ADDRESS = process.env.EMAIL_ADDRESS;
const EMAIL_PASSWORD = process.env.EMAIL_PASSWORD;
const LOG_ERRORS = process.env.LOG_ERRORS || false;
const ERROR_LOGS_GRAPH = process.env.ERROR_LOGS_GRAPH || "http://mu.semte.ch/graphs/public";
const HOST = process.env.HOST;
const PORT = process.env.PORT;
const MS_GRAPH_API_CLIENT_ID = process.env.MS_GRAPH_API_CLIENT_ID;
const MS_GRAPH_API_TENANT_ID = process.env.MS_GRAPH_API_TENANT_ID;
const MS_GRAPH_API_CLIENT_SECRET = process.env.MS_GRAPH_API_CLIENT_SECRET;
const MS_GRAPH_API_EMAIL_RETRIEVE_WAIT_TIME = process.env.MS_GRAPH_API_EMAIL_RETRIEVE_WAIT_TIME || 10000;
const LOG_MS_GRAPH_API_REQUESTS = ["true", "yes", "1", "on"].includes(process.env.LOG_MS_GRAPH_API_REQUESTS);
let MS_GRAPH_API_CREDENTIAL;
let MS_GRAPH_API_AUTH_PROVIDER;
if(!MAILBOX_URI){
throw `Expected a MAILBOX_URI`;
}
if (EMAIL_PROTOCOL === "MS_Graph_API") {
if (!MS_GRAPH_API_CLIENT_ID) {
throw "Expected a MS_GRAPH_API_CLIENT_ID";
}
if (!MS_GRAPH_API_TENANT_ID) {
throw "Expected a MS_GRAPH_API_TENANT_ID";
}
if (!MS_GRAPH_API_CLIENT_SECRET) {
throw "Expected a MS_GRAPH_API_CLIENT_SECRET";
}
MS_GRAPH_API_CREDENTIAL = new ClientSecretCredential(
MS_GRAPH_API_TENANT_ID,
MS_GRAPH_API_CLIENT_ID,
MS_GRAPH_API_CLIENT_SECRET
);
MS_GRAPH_API_AUTH_PROVIDER = new TokenCredentialAuthenticationProvider(
MS_GRAPH_API_CREDENTIAL,
{
scopes: ["https://graph.microsoft.com/.default"],
}
);
}
const NODE_MAILER_SERVICES = [
'126',
'163',
'1und1',
'aol',
'debugmail',
'dynectemail',
'fastmail',
'gandimail',
'gmail',
'godaddy',
'godaddyasia',
'godaddyeurope',
'hot.ee',
'hotmail',
'icloud',
'mail.ee',
'mail.ru',
'maildev',
'mailgun',
'mailjet',
'mailosaur',
'mandrill',
'naver',
'openmailbox',
'outlook365',
'postmark',
'qq',
'qqex',
'sendcloud',
'sendgrid',
'sendinblue',
'sendpulse',
'ses',
'ses-us-east-1',
'ses-us-west-2',
'ses-eu-west-1',
'smtp',
'sparkpost',
'yahoo',
'yandex',
'zoho',
'qiye.aliyun',
'test'
];
export {
MAILBOX_URI,
EMAIL_PROTOCOL,
FROM_NAME,
HOURS_DELIVERING_TIMEOUT,
HOURS_SENDING_TIMEOUT,
MAX_BATCH_SIZE,
MAX_BATCH_WAIT_TIME,
MAX_RETRY_ATTEMPTS,
WELL_KNOWN_SERVICE,
CRON_FREQUENCY,
SECURE_CONNECTION,
EMAIL_ADDRESS,
EMAIL_PASSWORD,
LOG_ERRORS,
ERROR_LOGS_GRAPH,
HOST,
PORT,
NODE_MAILER_SERVICES,
MS_GRAPH_API_AUTH_PROVIDER,
MS_GRAPH_API_EMAIL_RETRIEVE_WAIT_TIME,
LOG_MS_GRAPH_API_REQUESTS,
};