@rubytech/create-realagent 1.0.614 → 1.0.616
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/dist/index.js +42 -8
- package/package.json +1 -1
- package/payload/platform/config/brand.json +4 -0
- package/payload/platform/lib/mcp-stderr-tee/dist/index.d.ts +23 -13
- package/payload/platform/lib/mcp-stderr-tee/dist/index.d.ts.map +1 -1
- package/payload/platform/lib/mcp-stderr-tee/dist/index.js +86 -89
- package/payload/platform/lib/mcp-stderr-tee/dist/index.js.map +1 -1
- package/payload/platform/lib/mcp-stderr-tee/src/index.ts +86 -101
- package/payload/platform/plugins/admin/mcp/dist/index.js +33 -2
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.d.ts.map +1 -1
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.js +2 -0
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.js.map +1 -1
- package/payload/platform/plugins/admin/skills/stream-log-review/SKILL.md +22 -8
- package/payload/platform/plugins/cloudflare/PLUGIN.md +5 -4
- package/payload/platform/plugins/cloudflare/mcp/__tests__/auth-binding.test.ts +196 -0
- package/payload/platform/plugins/cloudflare/mcp/__tests__/brand-load.test.ts +81 -0
- package/payload/platform/plugins/cloudflare/mcp/__tests__/manifest-scope.test.ts +65 -0
- package/payload/platform/plugins/cloudflare/mcp/__tests__/verify-scenario-0.test.ts +70 -0
- package/payload/platform/plugins/cloudflare/mcp/__tests__/verify-scenario-B.test.ts +124 -0
- package/payload/platform/plugins/cloudflare/mcp/dist/index.js +232 -183
- package/payload/platform/plugins/cloudflare/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts +181 -30
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts.map +1 -1
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js +938 -154
- package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js.map +1 -1
- package/payload/platform/plugins/cloudflare/mcp/package.json +5 -2
- package/payload/platform/plugins/cloudflare/mcp/vitest.config.ts +10 -0
- package/payload/platform/plugins/cloudflare/references/setup-guide.md +32 -27
- package/payload/platform/plugins/cloudflare/skills/setup-tunnel/SKILL.md +25 -3
- package/payload/platform/plugins/docs/PLUGIN.md +2 -0
- package/payload/platform/plugins/docs/references/cloudflare.md +68 -0
- package/payload/platform/plugins/docs/references/plugins-guide.md +8 -6
- package/payload/platform/plugins/docs/references/troubleshooting.md +2 -0
- package/payload/platform/plugins/email/mcp/dist/lib/providers.d.ts +9 -2
- package/payload/platform/plugins/email/mcp/dist/lib/providers.d.ts.map +1 -1
- package/payload/platform/plugins/email/mcp/dist/lib/providers.js +545 -92
- package/payload/platform/plugins/email/mcp/dist/lib/providers.js.map +1 -1
- package/payload/platform/scripts/logs-read.sh +114 -54
- package/payload/platform/templates/agents/admin/IDENTITY.md +6 -0
- package/payload/platform/templates/agents/public/IDENTITY.md +1 -0
- package/payload/platform/templates/specialists/agents/content-producer.md +4 -0
- package/payload/platform/templates/specialists/agents/personal-assistant.md +16 -8
- package/payload/platform/templates/specialists/agents/project-manager.md +4 -0
- package/payload/platform/templates/specialists/agents/research-assistant.md +4 -0
- package/payload/server/server.js +714 -125
|
@@ -1,99 +1,552 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Known email provider defaults.
|
|
3
3
|
* Maps domain → IMAP/SMTP host + port + security.
|
|
4
|
-
* Used by email-setup to auto-infer connection settings
|
|
4
|
+
* Used by email-setup to auto-infer connection settings so the agent
|
|
5
|
+
* does not need to ask the user for technical server details.
|
|
6
|
+
*
|
|
7
|
+
* Convention for port + security pairs:
|
|
8
|
+
* 993 → "tls" (IMAP implicit TLS)
|
|
9
|
+
* 143 → "starttls" (IMAP with STARTTLS upgrade)
|
|
10
|
+
* 465 → "tls" (SMTP implicit TLS / legacy SSL)
|
|
11
|
+
* 587 → "starttls" (SMTP submission with STARTTLS)
|
|
5
12
|
*/
|
|
13
|
+
// ---------- Shared provider definitions ----------
|
|
14
|
+
// Alias domains reference the same object so updates stay in sync.
|
|
15
|
+
const gmail = {
|
|
16
|
+
imapHost: "imap.gmail.com",
|
|
17
|
+
imapPort: 993,
|
|
18
|
+
imapSecurity: "tls",
|
|
19
|
+
smtpHost: "smtp.gmail.com",
|
|
20
|
+
smtpPort: 587,
|
|
21
|
+
smtpSecurity: "starttls",
|
|
22
|
+
notes: "Requires an app-specific password (Google Account → Security → 2-Step Verification → App passwords). IMAP must be enabled in Gmail settings. Google Workspace custom domains use the same hosts.",
|
|
23
|
+
};
|
|
24
|
+
const outlook = {
|
|
25
|
+
imapHost: "outlook.office365.com",
|
|
26
|
+
imapPort: 993,
|
|
27
|
+
imapSecurity: "tls",
|
|
28
|
+
smtpHost: "smtp.office365.com",
|
|
29
|
+
smtpPort: 587,
|
|
30
|
+
smtpSecurity: "starttls",
|
|
31
|
+
notes: "Requires an app password if 2FA is enabled (Microsoft Account → Security → App passwords). Microsoft 365 custom domains use the same hosts.",
|
|
32
|
+
};
|
|
33
|
+
const icloud = {
|
|
34
|
+
imapHost: "imap.mail.me.com",
|
|
35
|
+
imapPort: 993,
|
|
36
|
+
imapSecurity: "tls",
|
|
37
|
+
smtpHost: "smtp.mail.me.com",
|
|
38
|
+
smtpPort: 587,
|
|
39
|
+
smtpSecurity: "starttls",
|
|
40
|
+
notes: "Requires an app-specific password (Apple ID → Sign-In and Security → App-Specific Passwords). iCloud+ custom domains use the same hosts.",
|
|
41
|
+
};
|
|
42
|
+
const yahoo = {
|
|
43
|
+
imapHost: "imap.mail.yahoo.com",
|
|
44
|
+
imapPort: 993,
|
|
45
|
+
imapSecurity: "tls",
|
|
46
|
+
smtpHost: "smtp.mail.yahoo.com",
|
|
47
|
+
smtpPort: 587,
|
|
48
|
+
smtpSecurity: "starttls",
|
|
49
|
+
notes: "Requires an app password (Yahoo Account → Account Security → Generate app password).",
|
|
50
|
+
};
|
|
51
|
+
const aol = {
|
|
52
|
+
imapHost: "imap.aol.com",
|
|
53
|
+
imapPort: 993,
|
|
54
|
+
imapSecurity: "tls",
|
|
55
|
+
smtpHost: "smtp.aol.com",
|
|
56
|
+
smtpPort: 465,
|
|
57
|
+
smtpSecurity: "tls",
|
|
58
|
+
notes: "Requires an app password (AOL Account Security → Generate app password). AOL is operated by Yahoo; Verizon.net mail migrated here.",
|
|
59
|
+
};
|
|
60
|
+
const protonBridge = {
|
|
61
|
+
imapHost: "127.0.0.1",
|
|
62
|
+
imapPort: 1143,
|
|
63
|
+
imapSecurity: "starttls",
|
|
64
|
+
smtpHost: "127.0.0.1",
|
|
65
|
+
smtpPort: 1025,
|
|
66
|
+
smtpSecurity: "starttls",
|
|
67
|
+
notes: "Requires Proton Mail Bridge running locally. Bridge provides IMAP/SMTP on localhost and supplies the bridge-specific password to use here.",
|
|
68
|
+
};
|
|
69
|
+
const gmxCom = {
|
|
70
|
+
imapHost: "imap.gmx.com",
|
|
71
|
+
imapPort: 993,
|
|
72
|
+
imapSecurity: "tls",
|
|
73
|
+
smtpHost: "mail.gmx.com",
|
|
74
|
+
smtpPort: 587,
|
|
75
|
+
smtpSecurity: "starttls",
|
|
76
|
+
notes: "POP3/IMAP access must be enabled in GMX webmail settings first.",
|
|
77
|
+
};
|
|
78
|
+
const gmxNet = {
|
|
79
|
+
imapHost: "imap.gmx.net",
|
|
80
|
+
imapPort: 993,
|
|
81
|
+
imapSecurity: "tls",
|
|
82
|
+
smtpHost: "mail.gmx.net",
|
|
83
|
+
smtpPort: 587,
|
|
84
|
+
smtpSecurity: "starttls",
|
|
85
|
+
notes: "German GMX — POP3/IMAP access must be enabled in GMX webmail settings first.",
|
|
86
|
+
};
|
|
87
|
+
const mailCom = {
|
|
88
|
+
imapHost: "imap.mail.com",
|
|
89
|
+
imapPort: 993,
|
|
90
|
+
imapSecurity: "tls",
|
|
91
|
+
smtpHost: "smtp.mail.com",
|
|
92
|
+
smtpPort: 587,
|
|
93
|
+
smtpSecurity: "starttls",
|
|
94
|
+
notes: "POP3/IMAP access must be enabled in mail.com webmail settings first.",
|
|
95
|
+
};
|
|
96
|
+
const zohoCom = {
|
|
97
|
+
imapHost: "imap.zoho.com",
|
|
98
|
+
imapPort: 993,
|
|
99
|
+
imapSecurity: "tls",
|
|
100
|
+
smtpHost: "smtp.zoho.com",
|
|
101
|
+
smtpPort: 465,
|
|
102
|
+
smtpSecurity: "tls",
|
|
103
|
+
notes: "Requires an app-specific password when 2FA is enabled (Zoho Account → Security → App Passwords). Zoho Mail free accounts must enable IMAP access in Mail Settings first.",
|
|
104
|
+
};
|
|
105
|
+
const zohoEu = {
|
|
106
|
+
imapHost: "imap.zoho.eu",
|
|
107
|
+
imapPort: 993,
|
|
108
|
+
imapSecurity: "tls",
|
|
109
|
+
smtpHost: "smtp.zoho.eu",
|
|
110
|
+
smtpPort: 465,
|
|
111
|
+
smtpSecurity: "tls",
|
|
112
|
+
notes: "Zoho EU region. Requires app-specific password with 2FA and IMAP enabled in Mail Settings.",
|
|
113
|
+
};
|
|
114
|
+
const zohoIn = {
|
|
115
|
+
imapHost: "imap.zoho.in",
|
|
116
|
+
imapPort: 993,
|
|
117
|
+
imapSecurity: "tls",
|
|
118
|
+
smtpHost: "smtp.zoho.in",
|
|
119
|
+
smtpPort: 465,
|
|
120
|
+
smtpSecurity: "tls",
|
|
121
|
+
notes: "Zoho India region. Requires app-specific password with 2FA and IMAP enabled in Mail Settings.",
|
|
122
|
+
};
|
|
123
|
+
const fastmail = {
|
|
124
|
+
imapHost: "imap.fastmail.com",
|
|
125
|
+
imapPort: 993,
|
|
126
|
+
imapSecurity: "tls",
|
|
127
|
+
smtpHost: "smtp.fastmail.com",
|
|
128
|
+
smtpPort: 465,
|
|
129
|
+
smtpSecurity: "tls",
|
|
130
|
+
notes: "Requires an app-specific password (Fastmail Settings → Privacy & Security → App passwords). Fastmail also hosts many custom-domain mailboxes — use the same hosts.",
|
|
131
|
+
};
|
|
132
|
+
const yandex = {
|
|
133
|
+
imapHost: "imap.yandex.com",
|
|
134
|
+
imapPort: 993,
|
|
135
|
+
imapSecurity: "tls",
|
|
136
|
+
smtpHost: "smtp.yandex.com",
|
|
137
|
+
smtpPort: 465,
|
|
138
|
+
smtpSecurity: "tls",
|
|
139
|
+
notes: "Requires an app password (Yandex ID → Security → App passwords). IMAP access must be enabled in Yandex Mail settings.",
|
|
140
|
+
};
|
|
141
|
+
const mailRu = {
|
|
142
|
+
imapHost: "imap.mail.ru",
|
|
143
|
+
imapPort: 993,
|
|
144
|
+
imapSecurity: "tls",
|
|
145
|
+
smtpHost: "smtp.mail.ru",
|
|
146
|
+
smtpPort: 465,
|
|
147
|
+
smtpSecurity: "tls",
|
|
148
|
+
notes: "Requires an app password (Mail.ru Account → Security → External applications).",
|
|
149
|
+
};
|
|
150
|
+
const qq = {
|
|
151
|
+
imapHost: "imap.qq.com",
|
|
152
|
+
imapPort: 993,
|
|
153
|
+
imapSecurity: "tls",
|
|
154
|
+
smtpHost: "smtp.qq.com",
|
|
155
|
+
smtpPort: 465,
|
|
156
|
+
smtpSecurity: "tls",
|
|
157
|
+
notes: "Use the IMAP/SMTP authorization code from QQ Mail settings, not the account password. IMAP service must be enabled first.",
|
|
158
|
+
};
|
|
159
|
+
const netease163 = {
|
|
160
|
+
imapHost: "imap.163.com",
|
|
161
|
+
imapPort: 993,
|
|
162
|
+
imapSecurity: "tls",
|
|
163
|
+
smtpHost: "smtp.163.com",
|
|
164
|
+
smtpPort: 465,
|
|
165
|
+
smtpSecurity: "tls",
|
|
166
|
+
notes: "NetEase 163 Mail — use the client authorization code from Mail Settings → POP3/SMTP/IMAP, not the account password.",
|
|
167
|
+
};
|
|
168
|
+
const netease126 = {
|
|
169
|
+
imapHost: "imap.126.com",
|
|
170
|
+
imapPort: 993,
|
|
171
|
+
imapSecurity: "tls",
|
|
172
|
+
smtpHost: "smtp.126.com",
|
|
173
|
+
smtpPort: 465,
|
|
174
|
+
smtpSecurity: "tls",
|
|
175
|
+
notes: "NetEase 126 Mail — use the client authorization code from Mail Settings → POP3/SMTP/IMAP.",
|
|
176
|
+
};
|
|
177
|
+
const neteaseYeah = {
|
|
178
|
+
imapHost: "imap.yeah.net",
|
|
179
|
+
imapPort: 993,
|
|
180
|
+
imapSecurity: "tls",
|
|
181
|
+
smtpHost: "smtp.yeah.net",
|
|
182
|
+
smtpPort: 465,
|
|
183
|
+
smtpSecurity: "tls",
|
|
184
|
+
notes: "NetEase yeah.net — use the client authorization code from Mail Settings → POP3/SMTP/IMAP.",
|
|
185
|
+
};
|
|
186
|
+
const sina = {
|
|
187
|
+
imapHost: "imap.sina.com",
|
|
188
|
+
imapPort: 993,
|
|
189
|
+
imapSecurity: "tls",
|
|
190
|
+
smtpHost: "smtp.sina.com",
|
|
191
|
+
smtpPort: 465,
|
|
192
|
+
smtpSecurity: "tls",
|
|
193
|
+
notes: "Sina Mail — enable IMAP/SMTP in webmail settings first.",
|
|
194
|
+
};
|
|
195
|
+
const orangeFr = {
|
|
196
|
+
imapHost: "imap.orange.fr",
|
|
197
|
+
imapPort: 993,
|
|
198
|
+
imapSecurity: "tls",
|
|
199
|
+
smtpHost: "smtp.orange.fr",
|
|
200
|
+
smtpPort: 465,
|
|
201
|
+
smtpSecurity: "tls",
|
|
202
|
+
notes: "Orange/Wanadoo — a mail-specific password may be required (managed via Orange account security).",
|
|
203
|
+
};
|
|
204
|
+
const freeFr = {
|
|
205
|
+
imapHost: "imap.free.fr",
|
|
206
|
+
imapPort: 993,
|
|
207
|
+
imapSecurity: "tls",
|
|
208
|
+
smtpHost: "smtp.free.fr",
|
|
209
|
+
smtpPort: 465,
|
|
210
|
+
smtpSecurity: "tls",
|
|
211
|
+
};
|
|
212
|
+
const laposte = {
|
|
213
|
+
imapHost: "imap.laposte.net",
|
|
214
|
+
imapPort: 993,
|
|
215
|
+
imapSecurity: "tls",
|
|
216
|
+
smtpHost: "smtp.laposte.net",
|
|
217
|
+
smtpPort: 465,
|
|
218
|
+
smtpSecurity: "tls",
|
|
219
|
+
};
|
|
220
|
+
const sfrFr = {
|
|
221
|
+
imapHost: "imap.sfr.fr",
|
|
222
|
+
imapPort: 993,
|
|
223
|
+
imapSecurity: "tls",
|
|
224
|
+
smtpHost: "smtp.sfr.fr",
|
|
225
|
+
smtpPort: 465,
|
|
226
|
+
smtpSecurity: "tls",
|
|
227
|
+
};
|
|
228
|
+
const tOnline = {
|
|
229
|
+
imapHost: "secureimap.t-online.de",
|
|
230
|
+
imapPort: 993,
|
|
231
|
+
imapSecurity: "tls",
|
|
232
|
+
smtpHost: "securesmtp.t-online.de",
|
|
233
|
+
smtpPort: 465,
|
|
234
|
+
smtpSecurity: "tls",
|
|
235
|
+
notes: "Deutsche Telekom / T-Online — an E-Mail-Passwort (separate from the account password) must be generated in Telekom account security settings.",
|
|
236
|
+
};
|
|
237
|
+
const webDe = {
|
|
238
|
+
imapHost: "imap.web.de",
|
|
239
|
+
imapPort: 993,
|
|
240
|
+
imapSecurity: "tls",
|
|
241
|
+
smtpHost: "smtp.web.de",
|
|
242
|
+
smtpPort: 587,
|
|
243
|
+
smtpSecurity: "starttls",
|
|
244
|
+
notes: "POP3/IMAP access must be enabled in web.de webmail settings first.",
|
|
245
|
+
};
|
|
246
|
+
const ionosDe = {
|
|
247
|
+
imapHost: "imap.ionos.de",
|
|
248
|
+
imapPort: 993,
|
|
249
|
+
imapSecurity: "tls",
|
|
250
|
+
smtpHost: "smtp.ionos.de",
|
|
251
|
+
smtpPort: 465,
|
|
252
|
+
smtpSecurity: "tls",
|
|
253
|
+
notes: "IONOS / 1&1 hosted mail. Business mailboxes on custom domains also use these hosts.",
|
|
254
|
+
};
|
|
255
|
+
const ionosCom = {
|
|
256
|
+
imapHost: "imap.ionos.com",
|
|
257
|
+
imapPort: 993,
|
|
258
|
+
imapSecurity: "tls",
|
|
259
|
+
smtpHost: "smtp.ionos.com",
|
|
260
|
+
smtpPort: 465,
|
|
261
|
+
smtpSecurity: "tls",
|
|
262
|
+
notes: "IONOS (non-DE regions). Business mailboxes on custom domains also use these hosts.",
|
|
263
|
+
};
|
|
264
|
+
const libero = {
|
|
265
|
+
imapHost: "imapmail.libero.it",
|
|
266
|
+
imapPort: 993,
|
|
267
|
+
imapSecurity: "tls",
|
|
268
|
+
smtpHost: "smtp.libero.it",
|
|
269
|
+
smtpPort: 465,
|
|
270
|
+
smtpSecurity: "tls",
|
|
271
|
+
};
|
|
272
|
+
const virgilio = {
|
|
273
|
+
imapHost: "in.virgilio.it",
|
|
274
|
+
imapPort: 993,
|
|
275
|
+
imapSecurity: "tls",
|
|
276
|
+
smtpHost: "out.virgilio.it",
|
|
277
|
+
smtpPort: 465,
|
|
278
|
+
smtpSecurity: "tls",
|
|
279
|
+
};
|
|
280
|
+
const tiscali = {
|
|
281
|
+
imapHost: "imap.tiscali.it",
|
|
282
|
+
imapPort: 993,
|
|
283
|
+
imapSecurity: "tls",
|
|
284
|
+
smtpHost: "smtp.tiscali.it",
|
|
285
|
+
smtpPort: 465,
|
|
286
|
+
smtpSecurity: "tls",
|
|
287
|
+
};
|
|
288
|
+
const seznam = {
|
|
289
|
+
imapHost: "imap.seznam.cz",
|
|
290
|
+
imapPort: 993,
|
|
291
|
+
imapSecurity: "tls",
|
|
292
|
+
smtpHost: "smtp.seznam.cz",
|
|
293
|
+
smtpPort: 465,
|
|
294
|
+
smtpSecurity: "tls",
|
|
295
|
+
};
|
|
296
|
+
const wp = {
|
|
297
|
+
imapHost: "imap.wp.pl",
|
|
298
|
+
imapPort: 993,
|
|
299
|
+
imapSecurity: "tls",
|
|
300
|
+
smtpHost: "smtp.wp.pl",
|
|
301
|
+
smtpPort: 465,
|
|
302
|
+
smtpSecurity: "tls",
|
|
303
|
+
};
|
|
304
|
+
const onet = {
|
|
305
|
+
imapHost: "imap.poczta.onet.pl",
|
|
306
|
+
imapPort: 993,
|
|
307
|
+
imapSecurity: "tls",
|
|
308
|
+
smtpHost: "smtp.poczta.onet.pl",
|
|
309
|
+
smtpPort: 465,
|
|
310
|
+
smtpSecurity: "tls",
|
|
311
|
+
};
|
|
312
|
+
const comcast = {
|
|
313
|
+
imapHost: "imap.comcast.net",
|
|
314
|
+
imapPort: 993,
|
|
315
|
+
imapSecurity: "tls",
|
|
316
|
+
smtpHost: "smtp.comcast.net",
|
|
317
|
+
smtpPort: 587,
|
|
318
|
+
smtpSecurity: "starttls",
|
|
319
|
+
notes: "Xfinity/Comcast. Third-party access must be enabled at xfinity.com/email → Security → Third Party Access Security.",
|
|
320
|
+
};
|
|
321
|
+
const att = {
|
|
322
|
+
imapHost: "imap.mail.att.net",
|
|
323
|
+
imapPort: 993,
|
|
324
|
+
imapSecurity: "tls",
|
|
325
|
+
smtpHost: "smtp.mail.att.net",
|
|
326
|
+
smtpPort: 465,
|
|
327
|
+
smtpSecurity: "tls",
|
|
328
|
+
notes: "AT&T / SBCGlobal / BellSouth / Ameritech / PacBell. Requires a Secure Mail Key from currently.com → Profile → Sign-in info, not the account password.",
|
|
329
|
+
};
|
|
330
|
+
const cox = {
|
|
331
|
+
imapHost: "imap.cox.net",
|
|
332
|
+
imapPort: 993,
|
|
333
|
+
imapSecurity: "tls",
|
|
334
|
+
smtpHost: "smtp.cox.net",
|
|
335
|
+
smtpPort: 465,
|
|
336
|
+
smtpSecurity: "tls",
|
|
337
|
+
notes: "Cox requires third-party email access to be enabled at myaccount.cox.com.",
|
|
338
|
+
};
|
|
339
|
+
const spectrum = {
|
|
340
|
+
imapHost: "mobile.charter.net",
|
|
341
|
+
imapPort: 993,
|
|
342
|
+
imapSecurity: "tls",
|
|
343
|
+
smtpHost: "mobile.charter.net",
|
|
344
|
+
smtpPort: 587,
|
|
345
|
+
smtpSecurity: "starttls",
|
|
346
|
+
notes: "Charter/Spectrum/TWC. Third-party email access must be enabled in Spectrum account settings.",
|
|
347
|
+
};
|
|
348
|
+
const earthlink = {
|
|
349
|
+
imapHost: "imap.earthlink.net",
|
|
350
|
+
imapPort: 993,
|
|
351
|
+
imapSecurity: "tls",
|
|
352
|
+
smtpHost: "smtpauth.earthlink.net",
|
|
353
|
+
smtpPort: 587,
|
|
354
|
+
smtpSecurity: "starttls",
|
|
355
|
+
};
|
|
356
|
+
const btInternet = {
|
|
357
|
+
imapHost: "mail.btinternet.com",
|
|
358
|
+
imapPort: 993,
|
|
359
|
+
imapSecurity: "tls",
|
|
360
|
+
smtpHost: "mail.btinternet.com",
|
|
361
|
+
smtpPort: 465,
|
|
362
|
+
smtpSecurity: "tls",
|
|
363
|
+
notes: "BT Internet / BT Openworld / BT Yahoo. Third-party access may require enabling in the BT email security settings.",
|
|
364
|
+
};
|
|
365
|
+
const sky = {
|
|
366
|
+
imapHost: "imap.tools.sky.com",
|
|
367
|
+
imapPort: 993,
|
|
368
|
+
imapSecurity: "tls",
|
|
369
|
+
smtpHost: "smtp.tools.sky.com",
|
|
370
|
+
smtpPort: 465,
|
|
371
|
+
smtpSecurity: "tls",
|
|
372
|
+
};
|
|
373
|
+
const virginMedia = {
|
|
374
|
+
imapHost: "imap.virginmedia.com",
|
|
375
|
+
imapPort: 993,
|
|
376
|
+
imapSecurity: "tls",
|
|
377
|
+
smtpHost: "smtp.virginmedia.com",
|
|
378
|
+
smtpPort: 465,
|
|
379
|
+
smtpSecurity: "tls",
|
|
380
|
+
};
|
|
381
|
+
const talktalk = {
|
|
382
|
+
imapHost: "mail.talktalk.net",
|
|
383
|
+
imapPort: 993,
|
|
384
|
+
imapSecurity: "tls",
|
|
385
|
+
smtpHost: "smtp.talktalk.net",
|
|
386
|
+
smtpPort: 465,
|
|
387
|
+
smtpSecurity: "tls",
|
|
388
|
+
};
|
|
389
|
+
const rackspace = {
|
|
390
|
+
imapHost: "secure.emailsrvr.com",
|
|
391
|
+
imapPort: 993,
|
|
392
|
+
imapSecurity: "tls",
|
|
393
|
+
smtpHost: "secure.emailsrvr.com",
|
|
394
|
+
smtpPort: 465,
|
|
395
|
+
smtpSecurity: "tls",
|
|
396
|
+
notes: "Rackspace Email — also covers custom domains hosted on Rackspace. Use the full email address as the username.",
|
|
397
|
+
};
|
|
398
|
+
// ---------- Domain → provider map ----------
|
|
6
399
|
const providers = {
|
|
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
|
-
|
|
400
|
+
// Gmail + Google Workspace consumer aliases
|
|
401
|
+
"gmail.com": gmail,
|
|
402
|
+
"googlemail.com": gmail,
|
|
403
|
+
// Microsoft consumer
|
|
404
|
+
"outlook.com": outlook,
|
|
405
|
+
"hotmail.com": outlook,
|
|
406
|
+
"live.com": outlook,
|
|
407
|
+
"msn.com": outlook,
|
|
408
|
+
"outlook.co.uk": outlook,
|
|
409
|
+
"hotmail.co.uk": outlook,
|
|
410
|
+
"live.co.uk": outlook,
|
|
411
|
+
"outlook.de": outlook,
|
|
412
|
+
"hotmail.de": outlook,
|
|
413
|
+
"live.de": outlook,
|
|
414
|
+
"outlook.fr": outlook,
|
|
415
|
+
"hotmail.fr": outlook,
|
|
416
|
+
"live.fr": outlook,
|
|
417
|
+
"outlook.es": outlook,
|
|
418
|
+
"hotmail.es": outlook,
|
|
419
|
+
"outlook.it": outlook,
|
|
420
|
+
"hotmail.it": outlook,
|
|
421
|
+
"passport.com": outlook,
|
|
422
|
+
// Apple
|
|
423
|
+
"icloud.com": icloud,
|
|
424
|
+
"me.com": icloud,
|
|
425
|
+
"mac.com": icloud,
|
|
426
|
+
// Yahoo
|
|
427
|
+
"yahoo.com": yahoo,
|
|
428
|
+
"yahoo.co.uk": yahoo,
|
|
429
|
+
"yahoo.co.jp": yahoo,
|
|
430
|
+
"yahoo.fr": yahoo,
|
|
431
|
+
"yahoo.de": yahoo,
|
|
432
|
+
"yahoo.it": yahoo,
|
|
433
|
+
"yahoo.es": yahoo,
|
|
434
|
+
"yahoo.ca": yahoo,
|
|
435
|
+
"yahoo.com.au": yahoo,
|
|
436
|
+
"yahoo.com.br": yahoo,
|
|
437
|
+
"yahoo.in": yahoo,
|
|
438
|
+
"ymail.com": yahoo,
|
|
439
|
+
"rocketmail.com": yahoo,
|
|
440
|
+
"frontier.com": yahoo,
|
|
441
|
+
"frontiernet.net": yahoo,
|
|
442
|
+
// AOL (Yahoo-operated; Verizon migrated here)
|
|
443
|
+
"aol.com": aol,
|
|
444
|
+
"aim.com": aol,
|
|
445
|
+
"verizon.net": aol,
|
|
446
|
+
// Proton (requires Bridge for IMAP/SMTP)
|
|
447
|
+
"protonmail.com": protonBridge,
|
|
448
|
+
"proton.me": protonBridge,
|
|
449
|
+
"pm.me": protonBridge,
|
|
450
|
+
"protonmail.ch": protonBridge,
|
|
451
|
+
// GMX / Mail.com (United Internet family)
|
|
452
|
+
"gmx.com": gmxCom,
|
|
453
|
+
"gmx.co.uk": gmxCom,
|
|
454
|
+
"gmx.us": gmxCom,
|
|
455
|
+
"gmx.net": gmxNet,
|
|
456
|
+
"gmx.de": gmxNet,
|
|
457
|
+
"gmx.at": gmxNet,
|
|
458
|
+
"gmx.ch": gmxNet,
|
|
459
|
+
"mail.com": mailCom,
|
|
460
|
+
"email.com": mailCom,
|
|
461
|
+
// Zoho (per-region hosts)
|
|
462
|
+
"zoho.com": zohoCom,
|
|
463
|
+
"zohomail.com": zohoCom,
|
|
464
|
+
"zoho.eu": zohoEu,
|
|
465
|
+
"zohomail.eu": zohoEu,
|
|
466
|
+
"zoho.in": zohoIn,
|
|
467
|
+
"zohomail.in": zohoIn,
|
|
468
|
+
// Fastmail (and its alias domains)
|
|
469
|
+
"fastmail.com": fastmail,
|
|
470
|
+
"fastmail.fm": fastmail,
|
|
471
|
+
"fastmail.co.uk": fastmail,
|
|
472
|
+
"fastmail.net": fastmail,
|
|
473
|
+
"fastmail.to": fastmail,
|
|
474
|
+
"fastmail.us": fastmail,
|
|
475
|
+
"messagingengine.com": fastmail,
|
|
476
|
+
// Yandex
|
|
477
|
+
"yandex.com": yandex,
|
|
478
|
+
"yandex.ru": yandex,
|
|
479
|
+
"yandex.by": yandex,
|
|
480
|
+
"yandex.kz": yandex,
|
|
481
|
+
"yandex.ua": yandex,
|
|
482
|
+
"ya.ru": yandex,
|
|
483
|
+
"narod.ru": yandex,
|
|
484
|
+
// Mail.ru
|
|
485
|
+
"mail.ru": mailRu,
|
|
486
|
+
"inbox.ru": mailRu,
|
|
487
|
+
"list.ru": mailRu,
|
|
488
|
+
"bk.ru": mailRu,
|
|
489
|
+
"internet.ru": mailRu,
|
|
490
|
+
// Chinese providers
|
|
491
|
+
"qq.com": qq,
|
|
492
|
+
"foxmail.com": qq,
|
|
493
|
+
"163.com": netease163,
|
|
494
|
+
"126.com": netease126,
|
|
495
|
+
"yeah.net": neteaseYeah,
|
|
496
|
+
"sina.com": sina,
|
|
497
|
+
"sina.cn": sina,
|
|
498
|
+
// France
|
|
499
|
+
"orange.fr": orangeFr,
|
|
500
|
+
"wanadoo.fr": orangeFr,
|
|
501
|
+
"free.fr": freeFr,
|
|
502
|
+
"laposte.net": laposte,
|
|
503
|
+
"sfr.fr": sfrFr,
|
|
504
|
+
"neuf.fr": sfrFr,
|
|
505
|
+
// Germany / Austria / Switzerland
|
|
506
|
+
"t-online.de": tOnline,
|
|
507
|
+
"web.de": webDe,
|
|
508
|
+
"ionos.de": ionosDe,
|
|
509
|
+
"ionos.com": ionosCom,
|
|
510
|
+
"1und1.de": ionosDe,
|
|
511
|
+
// Italy
|
|
512
|
+
"libero.it": libero,
|
|
513
|
+
"virgilio.it": virgilio,
|
|
514
|
+
"tiscali.it": tiscali,
|
|
515
|
+
// Czech Republic / Poland
|
|
516
|
+
"seznam.cz": seznam,
|
|
517
|
+
"email.cz": seznam,
|
|
518
|
+
"wp.pl": wp,
|
|
519
|
+
"o2.pl": wp,
|
|
520
|
+
"onet.pl": onet,
|
|
521
|
+
"op.pl": onet,
|
|
522
|
+
// US ISPs
|
|
523
|
+
"comcast.net": comcast,
|
|
524
|
+
"xfinity.com": comcast,
|
|
525
|
+
"att.net": att,
|
|
526
|
+
"sbcglobal.net": att,
|
|
527
|
+
"bellsouth.net": att,
|
|
528
|
+
"ameritech.net": att,
|
|
529
|
+
"pacbell.net": att,
|
|
530
|
+
"swbell.net": att,
|
|
531
|
+
"cox.net": cox,
|
|
532
|
+
"charter.net": spectrum,
|
|
533
|
+
"spectrum.net": spectrum,
|
|
534
|
+
"twc.com": spectrum,
|
|
535
|
+
"rr.com": spectrum,
|
|
536
|
+
"roadrunner.com": spectrum,
|
|
537
|
+
"earthlink.net": earthlink,
|
|
538
|
+
// UK ISPs
|
|
539
|
+
"btinternet.com": btInternet,
|
|
540
|
+
"btopenworld.com": btInternet,
|
|
541
|
+
"btconnect.com": btInternet,
|
|
542
|
+
"sky.com": sky,
|
|
543
|
+
"virginmedia.com": virginMedia,
|
|
544
|
+
"blueyonder.co.uk": virginMedia,
|
|
545
|
+
"ntlworld.com": virginMedia,
|
|
546
|
+
"talktalk.net": talktalk,
|
|
547
|
+
"tiscali.co.uk": talktalk,
|
|
548
|
+
// Business/hosting (custom domains — users often don't know the infrastructure, but these patterns are common)
|
|
549
|
+
"emailsrvr.com": rackspace,
|
|
97
550
|
};
|
|
98
551
|
/**
|
|
99
552
|
* Look up provider defaults from an email address domain.
|
|
@@ -107,7 +560,7 @@ export function inferProvider(email) {
|
|
|
107
560
|
}
|
|
108
561
|
/**
|
|
109
562
|
* Get provider-specific setup notes for an email domain.
|
|
110
|
-
* Returns null for unknown domains.
|
|
563
|
+
* Returns null for unknown domains or providers without notes.
|
|
111
564
|
*/
|
|
112
565
|
export function getProviderNotes(email) {
|
|
113
566
|
const defaults = inferProvider(email);
|