1use crate::provider::Protocol::*;
4use crate::provider::Socket::*;
5use crate::provider::UsernamePattern::*;
6use crate::provider::{
7    Config, ConfigDefault, Oauth2Authorizer, Provider, ProviderOptions, Server, Status,
8};
9use std::collections::HashMap;
10
11use std::sync::LazyLock;
12
13static P_163: Provider = Provider {
15    id: "163",
16    status: Status::Preparation,
17    before_login_hint: "Enable \"POP3/SMTP/IMAP\" on the website, add a third-party auth code and use that as the login password",
18    after_login_hint: "",
19    overview_page: "https://providers.delta.chat/163",
20    server: &[
21        Server {
22            protocol: Imap,
23            socket: Ssl,
24            hostname: "imap.163.com",
25            port: 993,
26            username_pattern: Email,
27        },
28        Server {
29            protocol: Smtp,
30            socket: Ssl,
31            hostname: "smtp.163.com",
32            port: 465,
33            username_pattern: Email,
34        },
35    ],
36    opt: ProviderOptions::new(),
37    config_defaults: None,
38    oauth2_authorizer: None,
39};
40
41static P_AKTIVIX_ORG: Provider = Provider {
43    id: "aktivix.org",
44    status: Status::Ok,
45    before_login_hint: "",
46    after_login_hint: "",
47    overview_page: "https://providers.delta.chat/aktivix-org",
48    server: &[
49        Server {
50            protocol: Imap,
51            socket: Starttls,
52            hostname: "newyear.aktivix.org",
53            port: 143,
54            username_pattern: Email,
55        },
56        Server {
57            protocol: Smtp,
58            socket: Starttls,
59            hostname: "newyear.aktivix.org",
60            port: 587,
61            username_pattern: Email,
62        },
63    ],
64    opt: ProviderOptions::new(),
65    config_defaults: None,
66    oauth2_authorizer: None,
67};
68
69static P_ALIYUN: Provider = Provider {
71    id: "aliyun",
72    status: Status::Ok,
73    before_login_hint: "",
74    after_login_hint: "",
75    overview_page: "https://providers.delta.chat/aliyun",
76    server: &[
77        Server {
78            protocol: Imap,
79            socket: Ssl,
80            hostname: "imap.aliyun.com",
81            port: 993,
82            username_pattern: Email,
83        },
84        Server {
85            protocol: Smtp,
86            socket: Ssl,
87            hostname: "smtp.aliyun.com",
88            port: 465,
89            username_pattern: Email,
90        },
91    ],
92    opt: ProviderOptions::new(),
93    config_defaults: None,
94    oauth2_authorizer: None,
95};
96
97static P_AOL: Provider = Provider {
99    id: "aol",
100    status: Status::Preparation,
101    before_login_hint: "To log in to AOL, you need to set up an app password in the AOL web interface.",
102    after_login_hint: "",
103    overview_page: "https://providers.delta.chat/aol",
104    server: &[
105        Server {
106            protocol: Imap,
107            socket: Ssl,
108            hostname: "imap.aol.com",
109            port: 993,
110            username_pattern: Email,
111        },
112        Server {
113            protocol: Smtp,
114            socket: Ssl,
115            hostname: "smtp.aol.com",
116            port: 465,
117            username_pattern: Email,
118        },
119    ],
120    opt: ProviderOptions::new(),
121    config_defaults: None,
122    oauth2_authorizer: None,
123};
124
125static P_ARCOR_DE: Provider = Provider {
127    id: "arcor.de",
128    status: Status::Ok,
129    before_login_hint: "",
130    after_login_hint: "",
131    overview_page: "https://providers.delta.chat/arcor-de",
132    server: &[
133        Server {
134            protocol: Imap,
135            socket: Ssl,
136            hostname: "imap.arcor.de",
137            port: 993,
138            username_pattern: Email,
139        },
140        Server {
141            protocol: Smtp,
142            socket: Ssl,
143            hostname: "mail.arcor.de",
144            port: 465,
145            username_pattern: Email,
146        },
147    ],
148    opt: ProviderOptions::new(),
149    config_defaults: None,
150    oauth2_authorizer: None,
151};
152
153static P_AUTISTICI_ORG: Provider = Provider {
155    id: "autistici.org",
156    status: Status::Ok,
157    before_login_hint: "",
158    after_login_hint: "",
159    overview_page: "https://providers.delta.chat/autistici-org",
160    server: &[
161        Server {
162            protocol: Imap,
163            socket: Ssl,
164            hostname: "mail.autistici.org",
165            port: 993,
166            username_pattern: Email,
167        },
168        Server {
169            protocol: Smtp,
170            socket: Ssl,
171            hostname: "smtp.autistici.org",
172            port: 465,
173            username_pattern: Email,
174        },
175    ],
176    opt: ProviderOptions::new(),
177    config_defaults: None,
178    oauth2_authorizer: None,
179};
180
181static P_BLINDZELN_ORG: Provider = Provider {
183    id: "blindzeln.org",
184    status: Status::Ok,
185    before_login_hint: "",
186    after_login_hint: "",
187    overview_page: "https://providers.delta.chat/blindzeln-org",
188    server: &[
189        Server {
190            protocol: Imap,
191            socket: Ssl,
192            hostname: "webbox222.server-home.org",
193            port: 993,
194            username_pattern: Email,
195        },
196        Server {
197            protocol: Smtp,
198            socket: Ssl,
199            hostname: "webbox222.server-home.org",
200            port: 465,
201            username_pattern: Email,
202        },
203    ],
204    opt: ProviderOptions::new(),
205    config_defaults: None,
206    oauth2_authorizer: None,
207};
208
209static P_BLUEWIN_CH: Provider = Provider {
211    id: "bluewin.ch",
212    status: Status::Ok,
213    before_login_hint: "",
214    after_login_hint: "",
215    overview_page: "https://providers.delta.chat/bluewin-ch",
216    server: &[
217        Server {
218            protocol: Imap,
219            socket: Ssl,
220            hostname: "imaps.bluewin.ch",
221            port: 993,
222            username_pattern: Email,
223        },
224        Server {
225            protocol: Smtp,
226            socket: Ssl,
227            hostname: "smtpauths.bluewin.ch",
228            port: 465,
229            username_pattern: Email,
230        },
231    ],
232    opt: ProviderOptions::new(),
233    config_defaults: None,
234    oauth2_authorizer: None,
235};
236
237static P_BUZON_UY: Provider = Provider {
239    id: "buzon.uy",
240    status: Status::Ok,
241    before_login_hint: "",
242    after_login_hint: "",
243    overview_page: "https://providers.delta.chat/buzon-uy",
244    server: &[
245        Server {
246            protocol: Imap,
247            socket: Starttls,
248            hostname: "mail.buzon.uy",
249            port: 143,
250            username_pattern: Email,
251        },
252        Server {
253            protocol: Smtp,
254            socket: Starttls,
255            hostname: "mail.buzon.uy",
256            port: 587,
257            username_pattern: Email,
258        },
259    ],
260    opt: ProviderOptions::new(),
261    config_defaults: None,
262    oauth2_authorizer: None,
263};
264
265static P_CHELLO_AT: Provider = Provider {
267    id: "chello.at",
268    status: Status::Ok,
269    before_login_hint: "",
270    after_login_hint: "",
271    overview_page: "https://providers.delta.chat/chello-at",
272    server: &[
273        Server {
274            protocol: Imap,
275            socket: Ssl,
276            hostname: "mail.mymagenta.at",
277            port: 993,
278            username_pattern: Email,
279        },
280        Server {
281            protocol: Smtp,
282            socket: Ssl,
283            hostname: "mail.mymagenta.at",
284            port: 465,
285            username_pattern: Email,
286        },
287    ],
288    opt: ProviderOptions::new(),
289    config_defaults: None,
290    oauth2_authorizer: None,
291};
292
293static P_COMCAST: Provider = Provider {
295    id: "comcast",
296    status: Status::Ok,
297    before_login_hint: "",
298    after_login_hint: "",
299    overview_page: "https://providers.delta.chat/comcast",
300    server: &[],
301    opt: ProviderOptions::new(),
302    config_defaults: None,
303    oauth2_authorizer: None,
304};
305
306static P_DALETH_CAFE: Provider = Provider {
308    id: "daleth.cafe",
309    status: Status::Ok,
310    before_login_hint: "",
311    after_login_hint: "",
312    overview_page: "https://providers.delta.chat/daleth-cafe",
313    server: &[
314        Server {
315            protocol: Imap,
316            socket: Ssl,
317            hostname: "daleth.cafe",
318            port: 993,
319            username_pattern: Email,
320        },
321        Server {
322            protocol: Smtp,
323            socket: Ssl,
324            hostname: "daleth.cafe",
325            port: 465,
326            username_pattern: Email,
327        },
328        Server {
329            protocol: Imap,
330            socket: Starttls,
331            hostname: "daleth.cafe",
332            port: 143,
333            username_pattern: Email,
334        },
335        Server {
336            protocol: Smtp,
337            socket: Starttls,
338            hostname: "daleth.cafe",
339            port: 587,
340            username_pattern: Email,
341        },
342    ],
343    opt: ProviderOptions::new(),
344    config_defaults: None,
345    oauth2_authorizer: None,
346};
347
348static P_DISMAIL_DE: Provider = Provider {
350    id: "dismail.de",
351    status: Status::Ok,
352    before_login_hint: "",
353    after_login_hint: "",
354    overview_page: "https://providers.delta.chat/dismail-de",
355    server: &[],
356    opt: ProviderOptions::new(),
357    config_defaults: None,
358    oauth2_authorizer: None,
359};
360
361static P_DISROOT: Provider = Provider {
363    id: "disroot",
364    status: Status::Ok,
365    before_login_hint: "",
366    after_login_hint: "",
367    overview_page: "https://providers.delta.chat/disroot",
368    server: &[
369        Server {
370            protocol: Imap,
371            socket: Ssl,
372            hostname: "disroot.org",
373            port: 993,
374            username_pattern: Emaillocalpart,
375        },
376        Server {
377            protocol: Smtp,
378            socket: Starttls,
379            hostname: "disroot.org",
380            port: 587,
381            username_pattern: Emaillocalpart,
382        },
383    ],
384    opt: ProviderOptions::new(),
385    config_defaults: None,
386    oauth2_authorizer: None,
387};
388
389static P_E_EMAIL: Provider = Provider {
391    id: "e.email",
392    status: Status::Ok,
393    before_login_hint: "",
394    after_login_hint: "",
395    overview_page: "https://providers.delta.chat/e-email",
396    server: &[
397        Server {
398            protocol: Imap,
399            socket: Ssl,
400            hostname: "mail.ecloud.global",
401            port: 993,
402            username_pattern: Email,
403        },
404        Server {
405            protocol: Smtp,
406            socket: Starttls,
407            hostname: "mail.ecloud.global",
408            port: 587,
409            username_pattern: Email,
410        },
411    ],
412    opt: ProviderOptions::new(),
413    config_defaults: None,
414    oauth2_authorizer: None,
415};
416
417static P_ESPIV_NET: Provider = Provider {
419    id: "espiv.net",
420    status: Status::Ok,
421    before_login_hint: "",
422    after_login_hint: "",
423    overview_page: "https://providers.delta.chat/espiv-net",
424    server: &[],
425    opt: ProviderOptions::new(),
426    config_defaults: None,
427    oauth2_authorizer: None,
428};
429
430static P_EXAMPLE_COM: Provider = Provider {
432    id: "example.com",
433    status: Status::Broken,
434    before_login_hint: "Hush this provider doesn't exist!",
435    after_login_hint: "This provider doesn't really exist, so you can't use it :/ If you need an email provider, take a look at providers.delta.chat!",
436    overview_page: "https://providers.delta.chat/example-com",
437    server: &[
438        Server {
439            protocol: Imap,
440            socket: Ssl,
441            hostname: "imap.example.com",
442            port: 1337,
443            username_pattern: Emaillocalpart,
444        },
445        Server {
446            protocol: Smtp,
447            socket: Starttls,
448            hostname: "smtp.example.com",
449            port: 1337,
450            username_pattern: Email,
451        },
452    ],
453    opt: ProviderOptions::new(),
454    config_defaults: None,
455    oauth2_authorizer: None,
456};
457
458static P_FASTMAIL: Provider = Provider {
460    id: "fastmail",
461    status: Status::Preparation,
462    before_login_hint: "You must create an app-specific password before you can log in.",
463    after_login_hint: "",
464    overview_page: "https://providers.delta.chat/fastmail",
465    server: &[
466        Server {
467            protocol: Imap,
468            socket: Ssl,
469            hostname: "imap.fastmail.com",
470            port: 993,
471            username_pattern: Email,
472        },
473        Server {
474            protocol: Smtp,
475            socket: Ssl,
476            hostname: "smtp.fastmail.com",
477            port: 465,
478            username_pattern: Email,
479        },
480    ],
481    opt: ProviderOptions::new(),
482    config_defaults: None,
483    oauth2_authorizer: None,
484};
485
486static P_FIREMAIL_DE: Provider = Provider {
488    id: "firemail.de",
489    status: Status::Preparation,
490    before_login_hint: "Firemail erlaubt nur bei bezahlten Accounts den vollen Zugriff auf das E-Mail-Protokoll. Wenn Sie nicht für Firemail bezahlen, verwenden Sie bitte einen anderen E-Mail-Anbieter.",
491    after_login_hint: "Leider schränkt Firemail die maximale Gruppengröße ein. Je nach Bezahlmodell sind nur 5 bis 30 Gruppenmitglieder erlaubt.",
492    overview_page: "https://providers.delta.chat/firemail-de",
493    server: &[],
494    opt: ProviderOptions::new(),
495    config_defaults: None,
496    oauth2_authorizer: None,
497};
498
499static P_FIVE_CHAT: Provider = Provider {
501    id: "five.chat",
502    status: Status::Ok,
503    before_login_hint: "",
504    after_login_hint: "",
505    overview_page: "https://providers.delta.chat/five-chat",
506    server: &[],
507    opt: ProviderOptions::new(),
508    config_defaults: Some(&[
509        ConfigDefault {
510            key: Config::BccSelf,
511            value: "1",
512        },
513        ConfigDefault {
514            key: Config::MvboxMove,
515            value: "0",
516        },
517    ]),
518    oauth2_authorizer: None,
519};
520
521static P_FREENET_DE: Provider = Provider {
523    id: "freenet.de",
524    status: Status::Preparation,
525    before_login_hint: "Um deine freenet.de E-Mail-Adresse zu benutzen, musst du erst auf der freenet.de-Webseite \"POP3/IMAP/SMTP\" aktivieren.",
526    after_login_hint: "",
527    overview_page: "https://providers.delta.chat/freenet-de",
528    server: &[
529        Server {
530            protocol: Imap,
531            socket: Ssl,
532            hostname: "mx.freenet.de",
533            port: 993,
534            username_pattern: Email,
535        },
536        Server {
537            protocol: Imap,
538            socket: Starttls,
539            hostname: "mx.freenet.de",
540            port: 143,
541            username_pattern: Email,
542        },
543        Server {
544            protocol: Smtp,
545            socket: Ssl,
546            hostname: "mx.freenet.de",
547            port: 465,
548            username_pattern: Email,
549        },
550        Server {
551            protocol: Smtp,
552            socket: Starttls,
553            hostname: "mx.freenet.de",
554            port: 587,
555            username_pattern: Email,
556        },
557    ],
558    opt: ProviderOptions::new(),
559    config_defaults: None,
560    oauth2_authorizer: None,
561};
562
563static P_GMAIL: Provider = Provider {
565    id: "gmail",
566    status: Status::Preparation,
567    before_login_hint: "For Gmail accounts, you need to have \"2-Step Verification\" enabled and create an app-password.",
568    after_login_hint: "",
569    overview_page: "https://providers.delta.chat/gmail",
570    server: &[
571        Server {
572            protocol: Imap,
573            socket: Ssl,
574            hostname: "imap.gmail.com",
575            port: 993,
576            username_pattern: Email,
577        },
578        Server {
579            protocol: Smtp,
580            socket: Ssl,
581            hostname: "smtp.gmail.com",
582            port: 465,
583            username_pattern: Email,
584        },
585    ],
586    opt: ProviderOptions {
587        delete_to_trash: true,
588        ..ProviderOptions::new()
589    },
590    config_defaults: None,
591    oauth2_authorizer: None,
592};
593
594static P_GMX_NET: Provider = Provider {
596    id: "gmx.net",
597    status: Status::Preparation,
598    before_login_hint: "You must allow IMAP access to your account before you can login.",
599    after_login_hint: "",
600    overview_page: "https://providers.delta.chat/gmx-net",
601    server: &[
602        Server {
603            protocol: Imap,
604            socket: Ssl,
605            hostname: "imap.gmx.net",
606            port: 993,
607            username_pattern: Email,
608        },
609        Server {
610            protocol: Smtp,
611            socket: Ssl,
612            hostname: "mail.gmx.net",
613            port: 465,
614            username_pattern: Email,
615        },
616        Server {
617            protocol: Smtp,
618            socket: Starttls,
619            hostname: "mail.gmx.net",
620            port: 587,
621            username_pattern: Email,
622        },
623    ],
624    opt: ProviderOptions::new(),
625    config_defaults: None,
626    oauth2_authorizer: None,
627};
628
629static P_HERMES_RADIO: Provider = Provider {
631    id: "hermes.radio",
632    status: Status::Ok,
633    before_login_hint: "",
634    after_login_hint: "",
635    overview_page: "https://providers.delta.chat/hermes-radio",
636    server: &[],
637    opt: ProviderOptions {
638        strict_tls: false,
639        ..ProviderOptions::new()
640    },
641    config_defaults: Some(&[
642        ConfigDefault {
643            key: Config::MdnsEnabled,
644            value: "0",
645        },
646        ConfigDefault {
647            key: Config::ShowEmails,
648            value: "2",
649        },
650    ]),
651    oauth2_authorizer: None,
652};
653
654static P_HEY_COM: Provider = Provider {
656    id: "hey.com",
657    status: Status::Broken,
658    before_login_hint: "hey.com does not offer the standard IMAP e-mail protocol, so you cannot log in to hey.com.",
659    after_login_hint: "",
660    overview_page: "https://providers.delta.chat/hey-com",
661    server: &[],
662    opt: ProviderOptions::new(),
663    config_defaults: None,
664    oauth2_authorizer: None,
665};
666
667static P_I_UA: Provider = Provider {
669    id: "i.ua",
670    status: Status::Broken,
671    before_login_hint: "Протокол IMAP не предоставляется и не планируется.",
672    after_login_hint: "",
673    overview_page: "https://providers.delta.chat/i-ua",
674    server: &[],
675    opt: ProviderOptions::new(),
676    config_defaults: None,
677    oauth2_authorizer: None,
678};
679
680static P_I3_NET: Provider = Provider {
682    id: "i3.net",
683    status: Status::Ok,
684    before_login_hint: "",
685    after_login_hint: "",
686    overview_page: "https://providers.delta.chat/i3-net",
687    server: &[],
688    opt: ProviderOptions::new(),
689    config_defaults: None,
690    oauth2_authorizer: None,
691};
692
693static P_ICLOUD: Provider = Provider {
695    id: "icloud",
696    status: Status::Preparation,
697    before_login_hint: "You must create an app-specific password before login.",
698    after_login_hint: "",
699    overview_page: "https://providers.delta.chat/icloud",
700    server: &[
701        Server {
702            protocol: Imap,
703            socket: Ssl,
704            hostname: "imap.mail.me.com",
705            port: 993,
706            username_pattern: Emaillocalpart,
707        },
708        Server {
709            protocol: Smtp,
710            socket: Starttls,
711            hostname: "smtp.mail.me.com",
712            port: 587,
713            username_pattern: Email,
714        },
715    ],
716    opt: ProviderOptions::new(),
717    config_defaults: None,
718    oauth2_authorizer: None,
719};
720
721static P_INFOMANIAK_COM: Provider = Provider {
723    id: "infomaniak.com",
724    status: Status::Ok,
725    before_login_hint: "",
726    after_login_hint: "",
727    overview_page: "https://providers.delta.chat/infomaniak-com",
728    server: &[
729        Server {
730            protocol: Imap,
731            socket: Ssl,
732            hostname: "mail.infomaniak.com",
733            port: 993,
734            username_pattern: Email,
735        },
736        Server {
737            protocol: Smtp,
738            socket: Ssl,
739            hostname: "mail.infomaniak.com",
740            port: 465,
741            username_pattern: Email,
742        },
743    ],
744    opt: ProviderOptions {
745        max_smtp_rcpt_to: Some(10),
746        ..ProviderOptions::new()
747    },
748    config_defaults: None,
749    oauth2_authorizer: None,
750};
751
752static P_KOLST_COM: Provider = Provider {
754    id: "kolst.com",
755    status: Status::Ok,
756    before_login_hint: "",
757    after_login_hint: "",
758    overview_page: "https://providers.delta.chat/kolst-com",
759    server: &[],
760    opt: ProviderOptions::new(),
761    config_defaults: None,
762    oauth2_authorizer: None,
763};
764
765static P_KONTENT_COM: Provider = Provider {
767    id: "kontent.com",
768    status: Status::Ok,
769    before_login_hint: "",
770    after_login_hint: "",
771    overview_page: "https://providers.delta.chat/kontent-com",
772    server: &[],
773    opt: ProviderOptions::new(),
774    config_defaults: None,
775    oauth2_authorizer: None,
776};
777
778static P_MAIL_COM: Provider = Provider {
780    id: "mail.com",
781    status: Status::Preparation,
782    before_login_hint: "To log in, you first need to activate POP3/IMAP in your mail.com settings. Note that this is a mail.com Premium feature only.",
783    after_login_hint: "",
784    overview_page: "https://providers.delta.chat/mail-com",
785    server: &[],
786    opt: ProviderOptions::new(),
787    config_defaults: None,
788    oauth2_authorizer: None,
789};
790
791static P_MAIL_DE: Provider = Provider {
793    id: "mail.de",
794    status: Status::Ok,
795    before_login_hint: "",
796    after_login_hint: "",
797    overview_page: "https://providers.delta.chat/mail-de",
798    server: &[
799        Server {
800            protocol: Imap,
801            socket: Ssl,
802            hostname: "imap.mail.de",
803            port: 993,
804            username_pattern: Email,
805        },
806        Server {
807            protocol: Smtp,
808            socket: Ssl,
809            hostname: "smtp.mail.de",
810            port: 465,
811            username_pattern: Email,
812        },
813    ],
814    opt: ProviderOptions::new(),
815    config_defaults: None,
816    oauth2_authorizer: None,
817};
818
819static P_MAIL_RU: Provider = Provider {
821    id: "mail.ru",
822    status: Status::Preparation,
823    before_login_hint: "Вам необходимо сгенерировать \"пароль для внешнего приложения\" в веб-интерфейсе mail.ru, чтобы mail.ru работал с chatmail.",
824    after_login_hint: "",
825    overview_page: "https://providers.delta.chat/mail-ru",
826    server: &[
827        Server {
828            protocol: Imap,
829            socket: Ssl,
830            hostname: "imap.mail.ru",
831            port: 993,
832            username_pattern: Email,
833        },
834        Server {
835            protocol: Smtp,
836            socket: Ssl,
837            hostname: "smtp.mail.ru",
838            port: 465,
839            username_pattern: Email,
840        },
841    ],
842    opt: ProviderOptions::new(),
843    config_defaults: None,
844    oauth2_authorizer: None,
845};
846
847static P_MAIL2TOR: Provider = Provider {
849    id: "mail2tor",
850    status: Status::Preparation,
851    before_login_hint: "Tor is needed to connect to the email servers.",
852    after_login_hint: "",
853    overview_page: "https://providers.delta.chat/mail2tor",
854    server: &[
855        Server {
856            protocol: Imap,
857            socket: Plain,
858            hostname: "g77kjrad6bafzzyldqvffq6kxlsgphcygptxhnn4xlnktfgaqshilmyd.onion",
859            port: 143,
860            username_pattern: Email,
861        },
862        Server {
863            protocol: Smtp,
864            socket: Plain,
865            hostname: "xc7tgk2c5onxni2wsy76jslfsitxjbbptejnqhw6gy2ft7khpevhc7ad.onion",
866            port: 25,
867            username_pattern: Email,
868        },
869    ],
870    opt: ProviderOptions::new(),
871    config_defaults: None,
872    oauth2_authorizer: None,
873};
874
875static P_MAILBOX_ORG: Provider = Provider {
877    id: "mailbox.org",
878    status: Status::Ok,
879    before_login_hint: "",
880    after_login_hint: "",
881    overview_page: "https://providers.delta.chat/mailbox-org",
882    server: &[
883        Server {
884            protocol: Imap,
885            socket: Ssl,
886            hostname: "imap.mailbox.org",
887            port: 993,
888            username_pattern: Email,
889        },
890        Server {
891            protocol: Smtp,
892            socket: Ssl,
893            hostname: "smtp.mailbox.org",
894            port: 465,
895            username_pattern: Email,
896        },
897    ],
898    opt: ProviderOptions::new(),
899    config_defaults: None,
900    oauth2_authorizer: None,
901};
902
903static P_MAILO_COM: Provider = Provider {
905    id: "mailo.com",
906    status: Status::Ok,
907    before_login_hint: "",
908    after_login_hint: "",
909    overview_page: "https://providers.delta.chat/mailo-com",
910    server: &[
911        Server {
912            protocol: Imap,
913            socket: Ssl,
914            hostname: "imap.mailo.com",
915            port: 993,
916            username_pattern: Email,
917        },
918        Server {
919            protocol: Smtp,
920            socket: Ssl,
921            hostname: "smtp.mailo.com",
922            port: 465,
923            username_pattern: Email,
924        },
925    ],
926    opt: ProviderOptions::new(),
927    config_defaults: None,
928    oauth2_authorizer: None,
929};
930
931static P_MEHL_CLOUD: Provider = Provider {
933    id: "mehl.cloud",
934    status: Status::Ok,
935    before_login_hint: "",
936    after_login_hint: "",
937    overview_page: "https://providers.delta.chat/mehl-cloud",
938    server: &[
939        Server {
940            protocol: Imap,
941            socket: Ssl,
942            hostname: "mehl.cloud",
943            port: 443,
944            username_pattern: Email,
945        },
946        Server {
947            protocol: Smtp,
948            socket: Ssl,
949            hostname: "mehl.cloud",
950            port: 443,
951            username_pattern: Email,
952        },
953        Server {
954            protocol: Imap,
955            socket: Ssl,
956            hostname: "mehl.cloud",
957            port: 993,
958            username_pattern: Email,
959        },
960        Server {
961            protocol: Smtp,
962            socket: Ssl,
963            hostname: "mehl.cloud",
964            port: 465,
965            username_pattern: Email,
966        },
967        Server {
968            protocol: Imap,
969            socket: Starttls,
970            hostname: "mehl.cloud",
971            port: 143,
972            username_pattern: Email,
973        },
974        Server {
975            protocol: Smtp,
976            socket: Starttls,
977            hostname: "mehl.cloud",
978            port: 587,
979            username_pattern: Email,
980        },
981    ],
982    opt: ProviderOptions::new(),
983    config_defaults: None,
984    oauth2_authorizer: None,
985};
986
987static P_MEHL_STORE: Provider = Provider {
989    id: "mehl.store",
990    status: Status::Ok,
991    before_login_hint: "",
992    after_login_hint: "This account provides 3GB storage for eMails and the possibility to access a NEXTCLOUD-instance by using the email-credits!",
993    overview_page: "https://providers.delta.chat/mehl-store",
994    server: &[
995        Server {
996            protocol: Imap,
997            socket: Ssl,
998            hostname: "mail.ende.in.net",
999            port: 993,
1000            username_pattern: Email,
1001        },
1002        Server {
1003            protocol: Smtp,
1004            socket: Starttls,
1005            hostname: "mail.ende.in.net",
1006            port: 587,
1007            username_pattern: Email,
1008        },
1009    ],
1010    opt: ProviderOptions::new(),
1011    config_defaults: None,
1012    oauth2_authorizer: None,
1013};
1014
1015static P_MIGADU: Provider = Provider {
1017    id: "migadu",
1018    status: Status::Ok,
1019    before_login_hint: "",
1020    after_login_hint: "",
1021    overview_page: "https://providers.delta.chat/migadu",
1022    server: &[
1023        Server {
1024            protocol: Imap,
1025            socket: Ssl,
1026            hostname: "imap.migadu.com",
1027            port: 993,
1028            username_pattern: Email,
1029        },
1030        Server {
1031            protocol: Smtp,
1032            socket: Ssl,
1033            hostname: "smtp.migadu.com",
1034            port: 465,
1035            username_pattern: Email,
1036        },
1037        Server {
1038            protocol: Smtp,
1039            socket: Starttls,
1040            hostname: "smtp.migadu.com",
1041            port: 587,
1042            username_pattern: Email,
1043        },
1044    ],
1045    opt: ProviderOptions::new(),
1046    config_defaults: None,
1047    oauth2_authorizer: None,
1048};
1049
1050static P_NAUTA_CU: Provider = Provider {
1052    id: "nauta.cu",
1053    status: Status::Ok,
1054    before_login_hint: "",
1055    after_login_hint: "",
1056    overview_page: "https://providers.delta.chat/nauta-cu",
1057    server: &[
1058        Server {
1059            protocol: Imap,
1060            socket: Starttls,
1061            hostname: "imap.nauta.cu",
1062            port: 143,
1063            username_pattern: Email,
1064        },
1065        Server {
1066            protocol: Smtp,
1067            socket: Starttls,
1068            hostname: "smtp.nauta.cu",
1069            port: 25,
1070            username_pattern: Email,
1071        },
1072    ],
1073    opt: ProviderOptions {
1074        max_smtp_rcpt_to: Some(20),
1075        strict_tls: false,
1076        ..ProviderOptions::new()
1077    },
1078    config_defaults: Some(&[
1079        ConfigDefault {
1080            key: Config::DeleteServerAfter,
1081            value: "1",
1082        },
1083        ConfigDefault {
1084            key: Config::MvboxMove,
1085            value: "0",
1086        },
1087        ConfigDefault {
1088            key: Config::MediaQuality,
1089            value: "1",
1090        },
1091    ]),
1092    oauth2_authorizer: None,
1093};
1094
1095static P_NAVER: Provider = Provider {
1097    id: "naver",
1098    status: Status::Preparation,
1099    before_login_hint: "Manually enabling IMAP/SMTP is required.",
1100    after_login_hint: "",
1101    overview_page: "https://providers.delta.chat/naver",
1102    server: &[
1103        Server {
1104            protocol: Imap,
1105            socket: Ssl,
1106            hostname: "imap.naver.com",
1107            port: 993,
1108            username_pattern: Emaillocalpart,
1109        },
1110        Server {
1111            protocol: Smtp,
1112            socket: Starttls,
1113            hostname: "smtp.naver.com",
1114            port: 587,
1115            username_pattern: Email,
1116        },
1117    ],
1118    opt: ProviderOptions::new(),
1119    config_defaults: None,
1120    oauth2_authorizer: None,
1121};
1122
1123static P_NINE_TESTRUN_ORG: Provider = Provider {
1125    id: "nine.testrun.org",
1126    status: Status::Ok,
1127    before_login_hint: "",
1128    after_login_hint: "",
1129    overview_page: "https://providers.delta.chat/nine-testrun-org",
1130    server: &[
1131        Server {
1132            protocol: Imap,
1133            socket: Ssl,
1134            hostname: "nine.testrun.org",
1135            port: 443,
1136            username_pattern: Email,
1137        },
1138        Server {
1139            protocol: Smtp,
1140            socket: Ssl,
1141            hostname: "nine.testrun.org",
1142            port: 443,
1143            username_pattern: Email,
1144        },
1145        Server {
1146            protocol: Imap,
1147            socket: Ssl,
1148            hostname: "nine.testrun.org",
1149            port: 993,
1150            username_pattern: Email,
1151        },
1152        Server {
1153            protocol: Smtp,
1154            socket: Ssl,
1155            hostname: "nine.testrun.org",
1156            port: 465,
1157            username_pattern: Email,
1158        },
1159        Server {
1160            protocol: Imap,
1161            socket: Starttls,
1162            hostname: "nine.testrun.org",
1163            port: 143,
1164            username_pattern: Email,
1165        },
1166        Server {
1167            protocol: Smtp,
1168            socket: Starttls,
1169            hostname: "nine.testrun.org",
1170            port: 587,
1171            username_pattern: Email,
1172        },
1173    ],
1174    opt: ProviderOptions::new(),
1175    config_defaults: Some(&[ConfigDefault {
1176        key: Config::MvboxMove,
1177        value: "0",
1178    }]),
1179    oauth2_authorizer: None,
1180};
1181
1182static P_NUBO_COOP: Provider = Provider {
1184    id: "nubo.coop",
1185    status: Status::Ok,
1186    before_login_hint: "",
1187    after_login_hint: "",
1188    overview_page: "https://providers.delta.chat/nubo-coop",
1189    server: &[
1190        Server {
1191            protocol: Imap,
1192            socket: Ssl,
1193            hostname: "mail.nubo.coop",
1194            port: 993,
1195            username_pattern: Email,
1196        },
1197        Server {
1198            protocol: Smtp,
1199            socket: Ssl,
1200            hostname: "mail.nubo.coop",
1201            port: 465,
1202            username_pattern: Email,
1203        },
1204    ],
1205    opt: ProviderOptions::new(),
1206    config_defaults: None,
1207    oauth2_authorizer: None,
1208};
1209
1210static P_OUTLOOK_COM: Provider = Provider {
1212    id: "outlook.com",
1213    status: Status::Broken,
1214    before_login_hint: "Unfortunately, Outlook does not allow using passwords anymore, per-app-passwords are currently not working.",
1215    after_login_hint: "",
1216    overview_page: "https://providers.delta.chat/outlook-com",
1217    server: &[
1218        Server {
1219            protocol: Imap,
1220            socket: Ssl,
1221            hostname: "outlook.office365.com",
1222            port: 993,
1223            username_pattern: Email,
1224        },
1225        Server {
1226            protocol: Smtp,
1227            socket: Starttls,
1228            hostname: "smtp.office365.com",
1229            port: 587,
1230            username_pattern: Email,
1231        },
1232    ],
1233    opt: ProviderOptions::new(),
1234    config_defaults: None,
1235    oauth2_authorizer: None,
1236};
1237
1238static P_OUVATON_COOP: Provider = Provider {
1240    id: "ouvaton.coop",
1241    status: Status::Ok,
1242    before_login_hint: "",
1243    after_login_hint: "",
1244    overview_page: "https://providers.delta.chat/ouvaton-coop",
1245    server: &[
1246        Server {
1247            protocol: Imap,
1248            socket: Ssl,
1249            hostname: "imap.ouvaton.coop",
1250            port: 993,
1251            username_pattern: Email,
1252        },
1253        Server {
1254            protocol: Smtp,
1255            socket: Ssl,
1256            hostname: "smtp.ouvaton.coop",
1257            port: 465,
1258            username_pattern: Email,
1259        },
1260    ],
1261    opt: ProviderOptions::new(),
1262    config_defaults: None,
1263    oauth2_authorizer: None,
1264};
1265
1266static P_POSTEO: Provider = Provider {
1268    id: "posteo",
1269    status: Status::Ok,
1270    before_login_hint: "",
1271    after_login_hint: "",
1272    overview_page: "https://providers.delta.chat/posteo",
1273    server: &[
1274        Server {
1275            protocol: Imap,
1276            socket: Ssl,
1277            hostname: "posteo.de",
1278            port: 993,
1279            username_pattern: Email,
1280        },
1281        Server {
1282            protocol: Imap,
1283            socket: Starttls,
1284            hostname: "posteo.de",
1285            port: 143,
1286            username_pattern: Email,
1287        },
1288        Server {
1289            protocol: Smtp,
1290            socket: Ssl,
1291            hostname: "posteo.de",
1292            port: 465,
1293            username_pattern: Email,
1294        },
1295        Server {
1296            protocol: Smtp,
1297            socket: Starttls,
1298            hostname: "posteo.de",
1299            port: 587,
1300            username_pattern: Email,
1301        },
1302    ],
1303    opt: ProviderOptions::new(),
1304    config_defaults: None,
1305    oauth2_authorizer: None,
1306};
1307
1308static P_PROTONMAIL: Provider = Provider {
1310    id: "protonmail",
1311    status: Status::Broken,
1312    before_login_hint: "Protonmail does not offer the standard IMAP e-mail protocol, so you cannot log in with to Protonmail.",
1313    after_login_hint: "To use Protonmail, the IMAP bridge must be running in the background. If you have connectivity issues, double check whether it works as expected.",
1314    overview_page: "https://providers.delta.chat/protonmail",
1315    server: &[],
1316    opt: ProviderOptions::new(),
1317    config_defaults: None,
1318    oauth2_authorizer: None,
1319};
1320
1321static P_PURELYMAIL_COM: Provider = Provider {
1323    id: "purelymail.com",
1324    status: Status::Ok,
1325    before_login_hint: "",
1326    after_login_hint: "",
1327    overview_page: "https://providers.delta.chat/purelymail-com",
1328    server: &[
1329        Server {
1330            protocol: Imap,
1331            socket: Ssl,
1332            hostname: "imap.purelymail.com",
1333            port: 993,
1334            username_pattern: Email,
1335        },
1336        Server {
1337            protocol: Smtp,
1338            socket: Ssl,
1339            hostname: "smtp.purelymail.com",
1340            port: 465,
1341            username_pattern: Email,
1342        },
1343    ],
1344    opt: ProviderOptions::new(),
1345    config_defaults: None,
1346    oauth2_authorizer: None,
1347};
1348
1349static P_QQ: Provider = Provider {
1351    id: "qq",
1352    status: Status::Preparation,
1353    before_login_hint: "Manually enabling IMAP/SMTP and creating an app-specific password are required.",
1354    after_login_hint: "",
1355    overview_page: "https://providers.delta.chat/qq",
1356    server: &[
1357        Server {
1358            protocol: Imap,
1359            socket: Ssl,
1360            hostname: "imap.qq.com",
1361            port: 993,
1362            username_pattern: Emaillocalpart,
1363        },
1364        Server {
1365            protocol: Smtp,
1366            socket: Ssl,
1367            hostname: "smtp.qq.com",
1368            port: 465,
1369            username_pattern: Email,
1370        },
1371    ],
1372    opt: ProviderOptions::new(),
1373    config_defaults: None,
1374    oauth2_authorizer: None,
1375};
1376
1377static P_RAMBLER_RU: Provider = Provider {
1379    id: "rambler.ru",
1380    status: Status::Preparation,
1381    before_login_hint: "Чтобы войти в Рамблер/почта, необходимо предварительно включить доступ с помощью почтовых клиентов на сайте mail.rambler.ru",
1382    after_login_hint: "",
1383    overview_page: "https://providers.delta.chat/rambler-ru",
1384    server: &[
1385        Server {
1386            protocol: Imap,
1387            socket: Ssl,
1388            hostname: "imap.rambler.ru",
1389            port: 993,
1390            username_pattern: Email,
1391        },
1392        Server {
1393            protocol: Smtp,
1394            socket: Ssl,
1395            hostname: "smtp.rambler.ru",
1396            port: 465,
1397            username_pattern: Email,
1398        },
1399        Server {
1400            protocol: Imap,
1401            socket: Starttls,
1402            hostname: "imap.rambler.ru",
1403            port: 143,
1404            username_pattern: Email,
1405        },
1406    ],
1407    opt: ProviderOptions::new(),
1408    config_defaults: None,
1409    oauth2_authorizer: None,
1410};
1411
1412static P_RISEUP_NET: Provider = Provider {
1414    id: "riseup.net",
1415    status: Status::Ok,
1416    before_login_hint: "",
1417    after_login_hint: "",
1418    overview_page: "https://providers.delta.chat/riseup-net",
1419    server: &[
1420        Server {
1421            protocol: Imap,
1422            socket: Ssl,
1423            hostname: "mail.riseup.net",
1424            port: 993,
1425            username_pattern: Email,
1426        },
1427        Server {
1428            protocol: Smtp,
1429            socket: Ssl,
1430            hostname: "mail.riseup.net",
1431            port: 465,
1432            username_pattern: Email,
1433        },
1434    ],
1435    opt: ProviderOptions::new(),
1436    config_defaults: None,
1437    oauth2_authorizer: None,
1438};
1439
1440static P_ROGERS_COM: Provider = Provider {
1442    id: "rogers.com",
1443    status: Status::Ok,
1444    before_login_hint: "",
1445    after_login_hint: "",
1446    overview_page: "https://providers.delta.chat/rogers-com",
1447    server: &[],
1448    opt: ProviderOptions::new(),
1449    config_defaults: None,
1450    oauth2_authorizer: None,
1451};
1452
1453static P_SONIC: Provider = Provider {
1455    id: "sonic",
1456    status: Status::Ok,
1457    before_login_hint: "",
1458    after_login_hint: "",
1459    overview_page: "https://providers.delta.chat/sonic",
1460    server: &[],
1461    opt: ProviderOptions::new(),
1462    config_defaults: None,
1463    oauth2_authorizer: None,
1464};
1465
1466static P_STINPRIZA_NET: Provider = Provider {
1468    id: "stinpriza.net",
1469    status: Status::Ok,
1470    before_login_hint: "",
1471    after_login_hint: "",
1472    overview_page: "https://providers.delta.chat/stinpriza-net",
1473    server: &[
1474        Server {
1475            protocol: Imap,
1476            socket: Starttls,
1477            hostname: "stinpriza.net",
1478            port: 143,
1479            username_pattern: Email,
1480        },
1481        Server {
1482            protocol: Smtp,
1483            socket: Starttls,
1484            hostname: "stinpriza.net",
1485            port: 587,
1486            username_pattern: Email,
1487        },
1488    ],
1489    opt: ProviderOptions {
1490        strict_tls: true,
1491        ..ProviderOptions::new()
1492    },
1493    config_defaults: None,
1494    oauth2_authorizer: None,
1495};
1496
1497static P_SYSTEMAUSFALL_ORG: Provider = Provider {
1499    id: "systemausfall.org",
1500    status: Status::Ok,
1501    before_login_hint: "",
1502    after_login_hint: "",
1503    overview_page: "https://providers.delta.chat/systemausfall-org",
1504    server: &[
1505        Server {
1506            protocol: Imap,
1507            socket: Ssl,
1508            hostname: "mail.systemausfall.org",
1509            port: 993,
1510            username_pattern: Email,
1511        },
1512        Server {
1513            protocol: Smtp,
1514            socket: Ssl,
1515            hostname: "mail.systemausfall.org",
1516            port: 465,
1517            username_pattern: Email,
1518        },
1519    ],
1520    opt: ProviderOptions::new(),
1521    config_defaults: None,
1522    oauth2_authorizer: None,
1523};
1524
1525static P_SYSTEMLI_ORG: Provider = Provider {
1527    id: "systemli.org",
1528    status: Status::Ok,
1529    before_login_hint: "",
1530    after_login_hint: "",
1531    overview_page: "https://providers.delta.chat/systemli-org",
1532    server: &[
1533        Server {
1534            protocol: Imap,
1535            socket: Ssl,
1536            hostname: "mail.systemli.org",
1537            port: 993,
1538            username_pattern: Email,
1539        },
1540        Server {
1541            protocol: Smtp,
1542            socket: Ssl,
1543            hostname: "mail.systemli.org",
1544            port: 465,
1545            username_pattern: Email,
1546        },
1547    ],
1548    opt: ProviderOptions::new(),
1549    config_defaults: None,
1550    oauth2_authorizer: None,
1551};
1552
1553static P_T_ONLINE: Provider = Provider {
1555    id: "t-online",
1556    status: Status::Preparation,
1557    before_login_hint: "To use a T-Online email address, you need to create an app password in the web interface.",
1558    after_login_hint: "",
1559    overview_page: "https://providers.delta.chat/t-online",
1560    server: &[
1561        Server {
1562            protocol: Imap,
1563            socket: Ssl,
1564            hostname: "secureimap.t-online.de",
1565            port: 993,
1566            username_pattern: Email,
1567        },
1568        Server {
1569            protocol: Smtp,
1570            socket: Ssl,
1571            hostname: "securesmtp.t-online.de",
1572            port: 465,
1573            username_pattern: Email,
1574        },
1575    ],
1576    opt: ProviderOptions::new(),
1577    config_defaults: None,
1578    oauth2_authorizer: None,
1579};
1580
1581static P_TESTRUN: Provider = Provider {
1583    id: "testrun",
1584    status: Status::Ok,
1585    before_login_hint: "",
1586    after_login_hint: "",
1587    overview_page: "https://providers.delta.chat/testrun",
1588    server: &[
1589        Server {
1590            protocol: Imap,
1591            socket: Ssl,
1592            hostname: "testrun.org",
1593            port: 993,
1594            username_pattern: Email,
1595        },
1596        Server {
1597            protocol: Smtp,
1598            socket: Ssl,
1599            hostname: "testrun.org",
1600            port: 465,
1601            username_pattern: Email,
1602        },
1603        Server {
1604            protocol: Imap,
1605            socket: Starttls,
1606            hostname: "testrun.org",
1607            port: 143,
1608            username_pattern: Email,
1609        },
1610        Server {
1611            protocol: Smtp,
1612            socket: Starttls,
1613            hostname: "testrun.org",
1614            port: 587,
1615            username_pattern: Email,
1616        },
1617    ],
1618    opt: ProviderOptions::new(),
1619    config_defaults: Some(&[
1620        ConfigDefault {
1621            key: Config::BccSelf,
1622            value: "1",
1623        },
1624        ConfigDefault {
1625            key: Config::MvboxMove,
1626            value: "0",
1627        },
1628    ]),
1629    oauth2_authorizer: None,
1630};
1631
1632static P_TISCALI_IT: Provider = Provider {
1634    id: "tiscali.it",
1635    status: Status::Ok,
1636    before_login_hint: "",
1637    after_login_hint: "",
1638    overview_page: "https://providers.delta.chat/tiscali-it",
1639    server: &[
1640        Server {
1641            protocol: Imap,
1642            socket: Ssl,
1643            hostname: "imap.tiscali.it",
1644            port: 993,
1645            username_pattern: Email,
1646        },
1647        Server {
1648            protocol: Smtp,
1649            socket: Ssl,
1650            hostname: "smtp.tiscali.it",
1651            port: 465,
1652            username_pattern: Email,
1653        },
1654    ],
1655    opt: ProviderOptions::new(),
1656    config_defaults: None,
1657    oauth2_authorizer: None,
1658};
1659
1660static P_TUTANOTA: Provider = Provider {
1662    id: "tutanota",
1663    status: Status::Broken,
1664    before_login_hint: "Tutanota does not offer the standard IMAP e-mail protocol, so you cannot log in to Tutanota.",
1665    after_login_hint: "",
1666    overview_page: "https://providers.delta.chat/tutanota",
1667    server: &[],
1668    opt: ProviderOptions::new(),
1669    config_defaults: None,
1670    oauth2_authorizer: None,
1671};
1672
1673static P_UKR_NET: Provider = Provider {
1675    id: "ukr.net",
1676    status: Status::Preparation,
1677    before_login_hint: "You must allow IMAP access to your account before you can login.",
1678    after_login_hint: "",
1679    overview_page: "https://providers.delta.chat/ukr-net",
1680    server: &[
1681        Server {
1682            protocol: Imap,
1683            socket: Ssl,
1684            hostname: "imap.ukr.net",
1685            port: 993,
1686            username_pattern: Email,
1687        },
1688        Server {
1689            protocol: Smtp,
1690            socket: Ssl,
1691            hostname: "smtp.ukr.net",
1692            port: 465,
1693            username_pattern: Email,
1694        },
1695    ],
1696    opt: ProviderOptions::new(),
1697    config_defaults: None,
1698    oauth2_authorizer: None,
1699};
1700
1701static P_UNDERNET_UY: Provider = Provider {
1703    id: "undernet.uy",
1704    status: Status::Ok,
1705    before_login_hint: "",
1706    after_login_hint: "",
1707    overview_page: "https://providers.delta.chat/undernet-uy",
1708    server: &[
1709        Server {
1710            protocol: Imap,
1711            socket: Starttls,
1712            hostname: "undernet.uy",
1713            port: 143,
1714            username_pattern: Email,
1715        },
1716        Server {
1717            protocol: Smtp,
1718            socket: Starttls,
1719            hostname: "undernet.uy",
1720            port: 587,
1721            username_pattern: Email,
1722        },
1723    ],
1724    opt: ProviderOptions::new(),
1725    config_defaults: None,
1726    oauth2_authorizer: None,
1727};
1728
1729static P_VFEMAIL: Provider = Provider {
1731    id: "vfemail",
1732    status: Status::Ok,
1733    before_login_hint: "",
1734    after_login_hint: "",
1735    overview_page: "https://providers.delta.chat/vfemail",
1736    server: &[],
1737    opt: ProviderOptions::new(),
1738    config_defaults: None,
1739    oauth2_authorizer: None,
1740};
1741
1742static P_VIVALDI: Provider = Provider {
1744    id: "vivaldi",
1745    status: Status::Ok,
1746    before_login_hint: "",
1747    after_login_hint: "",
1748    overview_page: "https://providers.delta.chat/vivaldi",
1749    server: &[
1750        Server {
1751            protocol: Imap,
1752            socket: Starttls,
1753            hostname: "imap.vivaldi.net",
1754            port: 143,
1755            username_pattern: Email,
1756        },
1757        Server {
1758            protocol: Smtp,
1759            socket: Starttls,
1760            hostname: "smtp.vivaldi.net",
1761            port: 587,
1762            username_pattern: Email,
1763        },
1764    ],
1765    opt: ProviderOptions::new(),
1766    config_defaults: None,
1767    oauth2_authorizer: None,
1768};
1769
1770static P_VK_COM: Provider = Provider {
1772    id: "vk.com",
1773    status: Status::Preparation,
1774    before_login_hint: "Вам необходимо сгенерировать \"пароль для внешнего приложения\" в веб-интерфейсе mail.ru https://account.mail.ru/user/2-step-auth/passwords/ чтобы vk.com работал с chatmail.",
1775    after_login_hint: "",
1776    overview_page: "https://providers.delta.chat/vk-com",
1777    server: &[
1778        Server {
1779            protocol: Imap,
1780            socket: Ssl,
1781            hostname: "imap.mail.ru",
1782            port: 993,
1783            username_pattern: Email,
1784        },
1785        Server {
1786            protocol: Smtp,
1787            socket: Ssl,
1788            hostname: "smtp.mail.ru",
1789            port: 465,
1790            username_pattern: Email,
1791        },
1792    ],
1793    opt: ProviderOptions::new(),
1794    config_defaults: None,
1795    oauth2_authorizer: None,
1796};
1797
1798static P_VODAFONE_DE: Provider = Provider {
1800    id: "vodafone.de",
1801    status: Status::Ok,
1802    before_login_hint: "",
1803    after_login_hint: "",
1804    overview_page: "https://providers.delta.chat/vodafone-de",
1805    server: &[
1806        Server {
1807            protocol: Imap,
1808            socket: Ssl,
1809            hostname: "imap.vodafonemail.de",
1810            port: 993,
1811            username_pattern: Email,
1812        },
1813        Server {
1814            protocol: Smtp,
1815            socket: Starttls,
1816            hostname: "smtp.vodafonemail.de",
1817            port: 587,
1818            username_pattern: Email,
1819        },
1820    ],
1821    opt: ProviderOptions::new(),
1822    config_defaults: None,
1823    oauth2_authorizer: None,
1824};
1825
1826static P_WEB_DE: Provider = Provider {
1828    id: "web.de",
1829    status: Status::Preparation,
1830    before_login_hint: "You must allow IMAP access to your account before you can login.",
1831    after_login_hint: "Note: if you have your web.de spam settings too strict, you won't receive contact requests from new people. If you want to receive contact requests, you should disable the \"3-Wege-Spamschutz\" in the web.de settings.  Read how: https://hilfe.web.de/email/spam-und-viren/spamschutz-einstellungen.html",
1832    overview_page: "https://providers.delta.chat/web-de",
1833    server: &[
1834        Server {
1835            protocol: Imap,
1836            socket: Ssl,
1837            hostname: "imap.web.de",
1838            port: 993,
1839            username_pattern: Emaillocalpart,
1840        },
1841        Server {
1842            protocol: Imap,
1843            socket: Starttls,
1844            hostname: "imap.web.de",
1845            port: 143,
1846            username_pattern: Emaillocalpart,
1847        },
1848        Server {
1849            protocol: Smtp,
1850            socket: Starttls,
1851            hostname: "smtp.web.de",
1852            port: 587,
1853            username_pattern: Emaillocalpart,
1854        },
1855    ],
1856    opt: ProviderOptions::new(),
1857    config_defaults: None,
1858    oauth2_authorizer: None,
1859};
1860
1861static P_WKPB_DE: Provider = Provider {
1863    id: "wkpb.de",
1864    status: Status::Preparation,
1865    before_login_hint: "Dies sind die gleichen Anmeldedaten wie bei Moodle und Abitur-Online.",
1866    after_login_hint: "",
1867    overview_page: "https://providers.delta.chat/wkpb-de",
1868    server: &[
1869        Server {
1870            protocol: Imap,
1871            socket: Ssl,
1872            hostname: "pimap.schulon.org",
1873            port: 993,
1874            username_pattern: Email,
1875        },
1876        Server {
1877            protocol: Smtp,
1878            socket: Ssl,
1879            hostname: "psmtp.schulon.org",
1880            port: 465,
1881            username_pattern: Email,
1882        },
1883    ],
1884    opt: ProviderOptions::new(),
1885    config_defaults: None,
1886    oauth2_authorizer: None,
1887};
1888
1889static P_YAHOO: Provider = Provider {
1891    id: "yahoo",
1892    status: Status::Preparation,
1893    before_login_hint: "To use your Yahoo email address you have to create an app password in the Yahoo account security screen.",
1894    after_login_hint: "",
1895    overview_page: "https://providers.delta.chat/yahoo",
1896    server: &[
1897        Server {
1898            protocol: Imap,
1899            socket: Ssl,
1900            hostname: "imap.mail.yahoo.com",
1901            port: 993,
1902            username_pattern: Email,
1903        },
1904        Server {
1905            protocol: Smtp,
1906            socket: Ssl,
1907            hostname: "smtp.mail.yahoo.com",
1908            port: 465,
1909            username_pattern: Email,
1910        },
1911    ],
1912    opt: ProviderOptions::new(),
1913    config_defaults: None,
1914    oauth2_authorizer: None,
1915};
1916
1917static P_YANDEX_RU: Provider = Provider {
1919    id: "yandex.ru",
1920    status: Status::Preparation,
1921    before_login_hint: "For Yandex accounts, you have to set IMAP protocol option turned on.",
1922    after_login_hint: "",
1923    overview_page: "https://providers.delta.chat/yandex-ru",
1924    server: &[
1925        Server {
1926            protocol: Imap,
1927            socket: Ssl,
1928            hostname: "imap.yandex.com",
1929            port: 993,
1930            username_pattern: Email,
1931        },
1932        Server {
1933            protocol: Smtp,
1934            socket: Ssl,
1935            hostname: "smtp.yandex.com",
1936            port: 465,
1937            username_pattern: Email,
1938        },
1939    ],
1940    opt: ProviderOptions::new(),
1941    config_defaults: None,
1942    oauth2_authorizer: Some(Oauth2Authorizer::Yandex),
1943};
1944
1945static P_YGGMAIL: Provider = Provider {
1947    id: "yggmail",
1948    status: Status::Preparation,
1949    before_login_hint: "An Yggmail companion app needs to be installed on your device to access the Yggmail network.",
1950    after_login_hint: "Make sure, the Yggmail companion app runs whenever you want to use this account. Note, that you usually cannot write from @yggmail addresses to normal e-mail-addresses (as @gmx.net). However, you can create another account in the normal e-mail-network for this purpose.",
1951    overview_page: "https://providers.delta.chat/yggmail",
1952    server: &[
1953        Server {
1954            protocol: Imap,
1955            socket: Plain,
1956            hostname: "localhost",
1957            port: 1143,
1958            username_pattern: Email,
1959        },
1960        Server {
1961            protocol: Smtp,
1962            socket: Plain,
1963            hostname: "localhost",
1964            port: 1025,
1965            username_pattern: Email,
1966        },
1967    ],
1968    opt: ProviderOptions::new(),
1969    config_defaults: Some(&[ConfigDefault {
1970        key: Config::MvboxMove,
1971        value: "0",
1972    }]),
1973    oauth2_authorizer: None,
1974};
1975
1976static P_ZIGGO_NL: Provider = Provider {
1978    id: "ziggo.nl",
1979    status: Status::Ok,
1980    before_login_hint: "",
1981    after_login_hint: "",
1982    overview_page: "https://providers.delta.chat/ziggo-nl",
1983    server: &[
1984        Server {
1985            protocol: Imap,
1986            socket: Ssl,
1987            hostname: "imap.ziggo.nl",
1988            port: 993,
1989            username_pattern: Email,
1990        },
1991        Server {
1992            protocol: Smtp,
1993            socket: Starttls,
1994            hostname: "smtp.ziggo.nl",
1995            port: 587,
1996            username_pattern: Email,
1997        },
1998    ],
1999    opt: ProviderOptions::new(),
2000    config_defaults: None,
2001    oauth2_authorizer: None,
2002};
2003
2004static P_ZOHO: Provider = Provider {
2006    id: "zoho",
2007    status: Status::Preparation,
2008    before_login_hint: "To use Zoho Mail, you have to turn on IMAP in the Zoho Mail backend.",
2009    after_login_hint: "",
2010    overview_page: "https://providers.delta.chat/zoho",
2011    server: &[
2012        Server {
2013            protocol: Imap,
2014            socket: Ssl,
2015            hostname: "imap.zoho.eu",
2016            port: 993,
2017            username_pattern: Email,
2018        },
2019        Server {
2020            protocol: Smtp,
2021            socket: Ssl,
2022            hostname: "smtp.zoho.eu",
2023            port: 465,
2024            username_pattern: Email,
2025        },
2026    ],
2027    opt: ProviderOptions::new(),
2028    config_defaults: None,
2029    oauth2_authorizer: None,
2030};
2031
2032pub(crate) static PROVIDER_DATA: [(&str, &Provider); 534] = [
2033    ("163.com", &P_163),
2034    ("aktivix.org", &P_AKTIVIX_ORG),
2035    ("aliyun.com", &P_ALIYUN),
2036    ("aol.com", &P_AOL),
2037    ("arcor.de", &P_ARCOR_DE),
2038    ("autistici.org", &P_AUTISTICI_ORG),
2039    ("delta.blinzeln.de", &P_BLINDZELN_ORG),
2040    ("delta.blindzeln.org", &P_BLINDZELN_ORG),
2041    ("bluewin.ch", &P_BLUEWIN_CH),
2042    ("buzon.uy", &P_BUZON_UY),
2043    ("chello.at", &P_CHELLO_AT),
2044    ("xfinity.com", &P_COMCAST),
2045    ("comcast.net", &P_COMCAST),
2046    ("daleth.cafe", &P_DALETH_CAFE),
2047    ("dismail.de", &P_DISMAIL_DE),
2048    ("disroot.org", &P_DISROOT),
2049    ("e.email", &P_E_EMAIL),
2050    ("espiv.net", &P_ESPIV_NET),
2051    ("example.com", &P_EXAMPLE_COM),
2052    ("example.org", &P_EXAMPLE_COM),
2053    ("example.net", &P_EXAMPLE_COM),
2054    ("123mail.org", &P_FASTMAIL),
2055    ("150mail.com", &P_FASTMAIL),
2056    ("150ml.com", &P_FASTMAIL),
2057    ("16mail.com", &P_FASTMAIL),
2058    ("2-mail.com", &P_FASTMAIL),
2059    ("4email.net", &P_FASTMAIL),
2060    ("50mail.com", &P_FASTMAIL),
2061    ("airpost.net", &P_FASTMAIL),
2062    ("allmail.net", &P_FASTMAIL),
2063    ("bestmail.us", &P_FASTMAIL),
2064    ("cluemail.com", &P_FASTMAIL),
2065    ("elitemail.org", &P_FASTMAIL),
2066    ("emailcorner.net", &P_FASTMAIL),
2067    ("emailengine.net", &P_FASTMAIL),
2068    ("emailengine.org", &P_FASTMAIL),
2069    ("emailgroups.net", &P_FASTMAIL),
2070    ("emailplus.org", &P_FASTMAIL),
2071    ("emailuser.net", &P_FASTMAIL),
2072    ("eml.cc", &P_FASTMAIL),
2073    ("f-m.fm", &P_FASTMAIL),
2074    ("fast-email.com", &P_FASTMAIL),
2075    ("fast-mail.org", &P_FASTMAIL),
2076    ("fastem.com", &P_FASTMAIL),
2077    ("fastemail.us", &P_FASTMAIL),
2078    ("fastemailer.com", &P_FASTMAIL),
2079    ("fastest.cc", &P_FASTMAIL),
2080    ("fastimap.com", &P_FASTMAIL),
2081    ("fastmail.cn", &P_FASTMAIL),
2082    ("fastmail.co.uk", &P_FASTMAIL),
2083    ("fastmail.com", &P_FASTMAIL),
2084    ("fastmail.com.au", &P_FASTMAIL),
2085    ("fastmail.de", &P_FASTMAIL),
2086    ("fastmail.es", &P_FASTMAIL),
2087    ("fastmail.fm", &P_FASTMAIL),
2088    ("fastmail.fr", &P_FASTMAIL),
2089    ("fastmail.im", &P_FASTMAIL),
2090    ("fastmail.in", &P_FASTMAIL),
2091    ("fastmail.jp", &P_FASTMAIL),
2092    ("fastmail.mx", &P_FASTMAIL),
2093    ("fastmail.net", &P_FASTMAIL),
2094    ("fastmail.nl", &P_FASTMAIL),
2095    ("fastmail.org", &P_FASTMAIL),
2096    ("fastmail.se", &P_FASTMAIL),
2097    ("fastmail.to", &P_FASTMAIL),
2098    ("fastmail.tw", &P_FASTMAIL),
2099    ("fastmail.uk", &P_FASTMAIL),
2100    ("fastmail.us", &P_FASTMAIL),
2101    ("fastmailbox.net", &P_FASTMAIL),
2102    ("fastmessaging.com", &P_FASTMAIL),
2103    ("fea.st", &P_FASTMAIL),
2104    ("fmail.co.uk", &P_FASTMAIL),
2105    ("fmailbox.com", &P_FASTMAIL),
2106    ("fmgirl.com", &P_FASTMAIL),
2107    ("fmguy.com", &P_FASTMAIL),
2108    ("ftml.net", &P_FASTMAIL),
2109    ("h-mail.us", &P_FASTMAIL),
2110    ("hailmail.net", &P_FASTMAIL),
2111    ("imap-mail.com", &P_FASTMAIL),
2112    ("imap.cc", &P_FASTMAIL),
2113    ("imapmail.org", &P_FASTMAIL),
2114    ("inoutbox.com", &P_FASTMAIL),
2115    ("internet-e-mail.com", &P_FASTMAIL),
2116    ("internet-mail.org", &P_FASTMAIL),
2117    ("internetemails.net", &P_FASTMAIL),
2118    ("internetmailing.net", &P_FASTMAIL),
2119    ("jetemail.net", &P_FASTMAIL),
2120    ("justemail.net", &P_FASTMAIL),
2121    ("letterboxes.org", &P_FASTMAIL),
2122    ("mail-central.com", &P_FASTMAIL),
2123    ("mail-page.com", &P_FASTMAIL),
2124    ("mailandftp.com", &P_FASTMAIL),
2125    ("mailas.com", &P_FASTMAIL),
2126    ("mailbolt.com", &P_FASTMAIL),
2127    ("mailc.net", &P_FASTMAIL),
2128    ("mailcan.com", &P_FASTMAIL),
2129    ("mailforce.net", &P_FASTMAIL),
2130    ("mailftp.com", &P_FASTMAIL),
2131    ("mailhaven.com", &P_FASTMAIL),
2132    ("mailingaddress.org", &P_FASTMAIL),
2133    ("mailite.com", &P_FASTMAIL),
2134    ("mailmight.com", &P_FASTMAIL),
2135    ("mailnew.com", &P_FASTMAIL),
2136    ("mailsent.net", &P_FASTMAIL),
2137    ("mailservice.ms", &P_FASTMAIL),
2138    ("mailup.net", &P_FASTMAIL),
2139    ("mailworks.org", &P_FASTMAIL),
2140    ("ml1.net", &P_FASTMAIL),
2141    ("mm.st", &P_FASTMAIL),
2142    ("myfastmail.com", &P_FASTMAIL),
2143    ("mymacmail.com", &P_FASTMAIL),
2144    ("nospammail.net", &P_FASTMAIL),
2145    ("ownmail.net", &P_FASTMAIL),
2146    ("petml.com", &P_FASTMAIL),
2147    ("postinbox.com", &P_FASTMAIL),
2148    ("postpro.net", &P_FASTMAIL),
2149    ("proinbox.com", &P_FASTMAIL),
2150    ("promessage.com", &P_FASTMAIL),
2151    ("realemail.net", &P_FASTMAIL),
2152    ("reallyfast.biz", &P_FASTMAIL),
2153    ("reallyfast.info", &P_FASTMAIL),
2154    ("rushpost.com", &P_FASTMAIL),
2155    ("sent.as", &P_FASTMAIL),
2156    ("sent.at", &P_FASTMAIL),
2157    ("sent.com", &P_FASTMAIL),
2158    ("speedpost.net", &P_FASTMAIL),
2159    ("speedymail.org", &P_FASTMAIL),
2160    ("ssl-mail.com", &P_FASTMAIL),
2161    ("swift-mail.com", &P_FASTMAIL),
2162    ("the-fastest.net", &P_FASTMAIL),
2163    ("the-quickest.com", &P_FASTMAIL),
2164    ("theinternetemail.com", &P_FASTMAIL),
2165    ("veryfast.biz", &P_FASTMAIL),
2166    ("veryspeedy.net", &P_FASTMAIL),
2167    ("warpmail.net", &P_FASTMAIL),
2168    ("xsmail.com", &P_FASTMAIL),
2169    ("yepmail.net", &P_FASTMAIL),
2170    ("your-mail.com", &P_FASTMAIL),
2171    ("firemail.at", &P_FIREMAIL_DE),
2172    ("firemail.de", &P_FIREMAIL_DE),
2173    ("five.chat", &P_FIVE_CHAT),
2174    ("freenet.de", &P_FREENET_DE),
2175    ("gmail.com", &P_GMAIL),
2176    ("googlemail.com", &P_GMAIL),
2177    ("google.com", &P_GMAIL),
2178    ("gmx.net", &P_GMX_NET),
2179    ("gmx.de", &P_GMX_NET),
2180    ("gmx.at", &P_GMX_NET),
2181    ("gmx.ch", &P_GMX_NET),
2182    ("gmx.org", &P_GMX_NET),
2183    ("gmx.eu", &P_GMX_NET),
2184    ("gmx.info", &P_GMX_NET),
2185    ("gmx.biz", &P_GMX_NET),
2186    ("gmx.com", &P_GMX_NET),
2187    ("*.hermes.radio", &P_HERMES_RADIO),
2188    ("*.aco-connexion.org", &P_HERMES_RADIO),
2189    ("hey.com", &P_HEY_COM),
2190    ("i.ua", &P_I_UA),
2191    ("i3.net", &P_I3_NET),
2192    ("icloud.com", &P_ICLOUD),
2193    ("me.com", &P_ICLOUD),
2194    ("mac.com", &P_ICLOUD),
2195    ("ik.me", &P_INFOMANIAK_COM),
2196    ("kolst.com", &P_KOLST_COM),
2197    ("kontent.com", &P_KONTENT_COM),
2198    ("email.com", &P_MAIL_COM),
2199    ("groupmail.com", &P_MAIL_COM),
2200    ("post.com", &P_MAIL_COM),
2201    ("homemail.com", &P_MAIL_COM),
2202    ("housemail.com", &P_MAIL_COM),
2203    ("writeme.com", &P_MAIL_COM),
2204    ("mail.com", &P_MAIL_COM),
2205    ("mail-me.com", &P_MAIL_COM),
2206    ("workmail.com", &P_MAIL_COM),
2207    ("accountant.com", &P_MAIL_COM),
2208    ("activist.com", &P_MAIL_COM),
2209    ("adexec.com", &P_MAIL_COM),
2210    ("allergist.com", &P_MAIL_COM),
2211    ("alumni.com", &P_MAIL_COM),
2212    ("alumnidirector.com", &P_MAIL_COM),
2213    ("archaeologist.com", &P_MAIL_COM),
2214    ("auctioneer.net", &P_MAIL_COM),
2215    ("bartender.net", &P_MAIL_COM),
2216    ("brew-master.com", &P_MAIL_COM),
2217    ("chef.net", &P_MAIL_COM),
2218    ("chemist.com", &P_MAIL_COM),
2219    ("collector.org", &P_MAIL_COM),
2220    ("columnist.com", &P_MAIL_COM),
2221    ("comic.com", &P_MAIL_COM),
2222    ("consultant.com", &P_MAIL_COM),
2223    ("contractor.net", &P_MAIL_COM),
2224    ("counsellor.com", &P_MAIL_COM),
2225    ("deliveryman.com", &P_MAIL_COM),
2226    ("diplomats.com", &P_MAIL_COM),
2227    ("dr.com", &P_MAIL_COM),
2228    ("engineer.com", &P_MAIL_COM),
2229    ("financier.com", &P_MAIL_COM),
2230    ("fireman.net", &P_MAIL_COM),
2231    ("gardener.com", &P_MAIL_COM),
2232    ("geologist.com", &P_MAIL_COM),
2233    ("graphic-designer.com", &P_MAIL_COM),
2234    ("graduate.org", &P_MAIL_COM),
2235    ("hairdresser.net", &P_MAIL_COM),
2236    ("instructor.net", &P_MAIL_COM),
2237    ("insurer.com", &P_MAIL_COM),
2238    ("journalist.com", &P_MAIL_COM),
2239    ("legislator.com", &P_MAIL_COM),
2240    ("lobbyist.com", &P_MAIL_COM),
2241    ("minister.com", &P_MAIL_COM),
2242    ("musician.org", &P_MAIL_COM),
2243    ("optician.com", &P_MAIL_COM),
2244    ("orthodontist.net", &P_MAIL_COM),
2245    ("pediatrician.com", &P_MAIL_COM),
2246    ("photographer.net", &P_MAIL_COM),
2247    ("physicist.net", &P_MAIL_COM),
2248    ("politician.com", &P_MAIL_COM),
2249    ("presidency.com", &P_MAIL_COM),
2250    ("priest.com", &P_MAIL_COM),
2251    ("programmer.net", &P_MAIL_COM),
2252    ("publicist.com", &P_MAIL_COM),
2253    ("radiologist.net", &P_MAIL_COM),
2254    ("realtyagent.com", &P_MAIL_COM),
2255    ("registerednurses.com", &P_MAIL_COM),
2256    ("repairman.com", &P_MAIL_COM),
2257    ("representative.com", &P_MAIL_COM),
2258    ("salesperson.net", &P_MAIL_COM),
2259    ("secretary.net", &P_MAIL_COM),
2260    ("socialworker.net", &P_MAIL_COM),
2261    ("sociologist.com", &P_MAIL_COM),
2262    ("songwriter.net", &P_MAIL_COM),
2263    ("teachers.org", &P_MAIL_COM),
2264    ("techie.com", &P_MAIL_COM),
2265    ("technologist.com", &P_MAIL_COM),
2266    ("therapist.net", &P_MAIL_COM),
2267    ("umpire.com", &P_MAIL_COM),
2268    ("worker.com", &P_MAIL_COM),
2269    ("artlover.com", &P_MAIL_COM),
2270    ("bikerider.com", &P_MAIL_COM),
2271    ("birdlover.com", &P_MAIL_COM),
2272    ("blader.com", &P_MAIL_COM),
2273    ("kittymail.com", &P_MAIL_COM),
2274    ("lovecat.com", &P_MAIL_COM),
2275    ("marchmail.com", &P_MAIL_COM),
2276    ("boardermail.com", &P_MAIL_COM),
2277    ("catlover.com", &P_MAIL_COM),
2278    ("clubmember.org", &P_MAIL_COM),
2279    ("nonpartisan.com", &P_MAIL_COM),
2280    ("petlover.com", &P_MAIL_COM),
2281    ("doglover.com", &P_MAIL_COM),
2282    ("greenmail.net", &P_MAIL_COM),
2283    ("hackermail.com", &P_MAIL_COM),
2284    ("theplate.com", &P_MAIL_COM),
2285    ("bsdmail.com", &P_MAIL_COM),
2286    ("computer4u.com", &P_MAIL_COM),
2287    ("coolsite.net", &P_MAIL_COM),
2288    ("cyberdude.com", &P_MAIL_COM),
2289    ("cybergal.com", &P_MAIL_COM),
2290    ("cyberservices.com", &P_MAIL_COM),
2291    ("cyber-wizard.com", &P_MAIL_COM),
2292    ("linuxmail.org", &P_MAIL_COM),
2293    ("null.net", &P_MAIL_COM),
2294    ("solution4u.com", &P_MAIL_COM),
2295    ("tech-center.com", &P_MAIL_COM),
2296    ("webname.com", &P_MAIL_COM),
2297    ("acdcfan.com", &P_MAIL_COM),
2298    ("angelic.com", &P_MAIL_COM),
2299    ("discofan.com", &P_MAIL_COM),
2300    ("elvisfan.com", &P_MAIL_COM),
2301    ("hiphopfan.com", &P_MAIL_COM),
2302    ("kissfans.com", &P_MAIL_COM),
2303    ("madonnafan.com", &P_MAIL_COM),
2304    ("metalfan.com", &P_MAIL_COM),
2305    ("ninfan.com", &P_MAIL_COM),
2306    ("ravemail.com", &P_MAIL_COM),
2307    ("reggaefan.com", &P_MAIL_COM),
2308    ("snakebite.com", &P_MAIL_COM),
2309    ("bellair.net", &P_MAIL_COM),
2310    ("californiamail.com", &P_MAIL_COM),
2311    ("dallasmail.com", &P_MAIL_COM),
2312    ("nycmail.com", &P_MAIL_COM),
2313    ("pacific-ocean.com", &P_MAIL_COM),
2314    ("pacificwest.com", &P_MAIL_COM),
2315    ("sanfranmail.com", &P_MAIL_COM),
2316    ("usa.com", &P_MAIL_COM),
2317    ("africamail.com", &P_MAIL_COM),
2318    ("asia-mail.com", &P_MAIL_COM),
2319    ("australiamail.com", &P_MAIL_COM),
2320    ("berlin.com", &P_MAIL_COM),
2321    ("brazilmail.com", &P_MAIL_COM),
2322    ("chinamail.com", &P_MAIL_COM),
2323    ("dublin.com", &P_MAIL_COM),
2324    ("dutchmail.com", &P_MAIL_COM),
2325    ("englandmail.com", &P_MAIL_COM),
2326    ("europe.com", &P_MAIL_COM),
2327    ("arcticmail.com", &P_MAIL_COM),
2328    ("europemail.com", &P_MAIL_COM),
2329    ("germanymail.com", &P_MAIL_COM),
2330    ("irelandmail.com", &P_MAIL_COM),
2331    ("israelmail.com", &P_MAIL_COM),
2332    ("italymail.com", &P_MAIL_COM),
2333    ("koreamail.com", &P_MAIL_COM),
2334    ("mexicomail.com", &P_MAIL_COM),
2335    ("moscowmail.com", &P_MAIL_COM),
2336    ("munich.com", &P_MAIL_COM),
2337    ("asia.com", &P_MAIL_COM),
2338    ("polandmail.com", &P_MAIL_COM),
2339    ("safrica.com", &P_MAIL_COM),
2340    ("samerica.com", &P_MAIL_COM),
2341    ("scotlandmail.com", &P_MAIL_COM),
2342    ("spainmail.com", &P_MAIL_COM),
2343    ("swedenmail.com", &P_MAIL_COM),
2344    ("swissmail.com", &P_MAIL_COM),
2345    ("torontomail.com", &P_MAIL_COM),
2346    ("aircraftmail.com", &P_MAIL_COM),
2347    ("cash4u.com", &P_MAIL_COM),
2348    ("disposable.com", &P_MAIL_COM),
2349    ("execs.com", &P_MAIL_COM),
2350    ("fastservice.com", &P_MAIL_COM),
2351    ("instruction.com", &P_MAIL_COM),
2352    ("job4u.com", &P_MAIL_COM),
2353    ("net-shopping.com", &P_MAIL_COM),
2354    ("planetmail.com", &P_MAIL_COM),
2355    ("planetmail.net", &P_MAIL_COM),
2356    ("qualityservice.com", &P_MAIL_COM),
2357    ("rescueteam.com", &P_MAIL_COM),
2358    ("surgical.net", &P_MAIL_COM),
2359    ("atheist.com", &P_MAIL_COM),
2360    ("disciples.com", &P_MAIL_COM),
2361    ("muslim.com", &P_MAIL_COM),
2362    ("protestant.com", &P_MAIL_COM),
2363    ("reborn.com", &P_MAIL_COM),
2364    ("reincarnate.com", &P_MAIL_COM),
2365    ("religious.com", &P_MAIL_COM),
2366    ("saintly.com", &P_MAIL_COM),
2367    ("brew-meister.com", &P_MAIL_COM),
2368    ("cutey.com", &P_MAIL_COM),
2369    ("dbzmail.com", &P_MAIL_COM),
2370    ("doramail.com", &P_MAIL_COM),
2371    ("galaxyhit.com", &P_MAIL_COM),
2372    ("hilarious.com", &P_MAIL_COM),
2373    ("humanoid.net", &P_MAIL_COM),
2374    ("hot-shot.com", &P_MAIL_COM),
2375    ("inorbit.com", &P_MAIL_COM),
2376    ("iname.com", &P_MAIL_COM),
2377    ("innocent.com", &P_MAIL_COM),
2378    ("keromail.com", &P_MAIL_COM),
2379    ("myself.com", &P_MAIL_COM),
2380    ("rocketship.com", &P_MAIL_COM),
2381    ("toothfairy.com", &P_MAIL_COM),
2382    ("toke.com", &P_MAIL_COM),
2383    ("tvstar.com", &P_MAIL_COM),
2384    ("uymail.com", &P_MAIL_COM),
2385    ("2trom.com", &P_MAIL_COM),
2386    ("mail.de", &P_MAIL_DE),
2387    ("mail.ru", &P_MAIL_RU),
2388    ("inbox.ru", &P_MAIL_RU),
2389    ("internet.ru", &P_MAIL_RU),
2390    ("bk.ru", &P_MAIL_RU),
2391    ("list.ru", &P_MAIL_RU),
2392    ("mail2tor.com", &P_MAIL2TOR),
2393    ("mailbox.org", &P_MAILBOX_ORG),
2394    ("secure.mailbox.org", &P_MAILBOX_ORG),
2395    ("mailo.com", &P_MAILO_COM),
2396    ("mehl.cloud", &P_MEHL_CLOUD),
2397    ("mehl.store", &P_MEHL_STORE),
2398    ("ende.in.net", &P_MEHL_STORE),
2399    ("l2i.top", &P_MEHL_STORE),
2400    ("szh.homes", &P_MEHL_STORE),
2401    ("sls.post.in", &P_MEHL_STORE),
2402    ("ente.quest", &P_MEHL_STORE),
2403    ("ente.cfd", &P_MEHL_STORE),
2404    ("nein.jetzt", &P_MEHL_STORE),
2405    ("migadu.com", &P_MIGADU),
2406    ("nauta.cu", &P_NAUTA_CU),
2407    ("naver.com", &P_NAVER),
2408    ("nine.testrun.org", &P_NINE_TESTRUN_ORG),
2409    ("nubo.coop", &P_NUBO_COOP),
2410    ("hotmail.com", &P_OUTLOOK_COM),
2411    ("outlook.com", &P_OUTLOOK_COM),
2412    ("office365.com", &P_OUTLOOK_COM),
2413    ("outlook.com.tr", &P_OUTLOOK_COM),
2414    ("live.com", &P_OUTLOOK_COM),
2415    ("outlook.de", &P_OUTLOOK_COM),
2416    ("ouvaton.org", &P_OUVATON_COOP),
2417    ("posteo.de", &P_POSTEO),
2418    ("posteo.af", &P_POSTEO),
2419    ("posteo.at", &P_POSTEO),
2420    ("posteo.be", &P_POSTEO),
2421    ("posteo.ca", &P_POSTEO),
2422    ("posteo.ch", &P_POSTEO),
2423    ("posteo.cl", &P_POSTEO),
2424    ("posteo.co", &P_POSTEO),
2425    ("posteo.co.uk", &P_POSTEO),
2426    ("posteo.com", &P_POSTEO),
2427    ("posteo.com.br", &P_POSTEO),
2428    ("posteo.cr", &P_POSTEO),
2429    ("posteo.cz", &P_POSTEO),
2430    ("posteo.dk", &P_POSTEO),
2431    ("posteo.ee", &P_POSTEO),
2432    ("posteo.es", &P_POSTEO),
2433    ("posteo.eu", &P_POSTEO),
2434    ("posteo.fi", &P_POSTEO),
2435    ("posteo.gl", &P_POSTEO),
2436    ("posteo.gr", &P_POSTEO),
2437    ("posteo.hn", &P_POSTEO),
2438    ("posteo.hr", &P_POSTEO),
2439    ("posteo.hu", &P_POSTEO),
2440    ("posteo.ie", &P_POSTEO),
2441    ("posteo.in", &P_POSTEO),
2442    ("posteo.is", &P_POSTEO),
2443    ("posteo.it", &P_POSTEO),
2444    ("posteo.jp", &P_POSTEO),
2445    ("posteo.la", &P_POSTEO),
2446    ("posteo.li", &P_POSTEO),
2447    ("posteo.lt", &P_POSTEO),
2448    ("posteo.lu", &P_POSTEO),
2449    ("posteo.me", &P_POSTEO),
2450    ("posteo.mx", &P_POSTEO),
2451    ("posteo.my", &P_POSTEO),
2452    ("posteo.net", &P_POSTEO),
2453    ("posteo.nl", &P_POSTEO),
2454    ("posteo.no", &P_POSTEO),
2455    ("posteo.nz", &P_POSTEO),
2456    ("posteo.org", &P_POSTEO),
2457    ("posteo.pe", &P_POSTEO),
2458    ("posteo.pl", &P_POSTEO),
2459    ("posteo.pm", &P_POSTEO),
2460    ("posteo.pt", &P_POSTEO),
2461    ("posteo.ro", &P_POSTEO),
2462    ("posteo.ru", &P_POSTEO),
2463    ("posteo.se", &P_POSTEO),
2464    ("posteo.sg", &P_POSTEO),
2465    ("posteo.si", &P_POSTEO),
2466    ("posteo.tn", &P_POSTEO),
2467    ("posteo.uk", &P_POSTEO),
2468    ("posteo.us", &P_POSTEO),
2469    ("protonmail.com", &P_PROTONMAIL),
2470    ("protonmail.ch", &P_PROTONMAIL),
2471    ("pm.me", &P_PROTONMAIL),
2472    ("purelymail.com", &P_PURELYMAIL_COM),
2473    ("cheapermail.com", &P_PURELYMAIL_COM),
2474    ("placeq.com", &P_PURELYMAIL_COM),
2475    ("rethinkmail.com", &P_PURELYMAIL_COM),
2476    ("worldofmail.com", &P_PURELYMAIL_COM),
2477    ("qq.com", &P_QQ),
2478    ("foxmail.com", &P_QQ),
2479    ("rambler.ru", &P_RAMBLER_RU),
2480    ("autorambler.ru", &P_RAMBLER_RU),
2481    ("myrambler.ru", &P_RAMBLER_RU),
2482    ("rambler.ua", &P_RAMBLER_RU),
2483    ("lenta.ru", &P_RAMBLER_RU),
2484    ("ro.ru", &P_RAMBLER_RU),
2485    ("r0.ru", &P_RAMBLER_RU),
2486    ("riseup.net", &P_RISEUP_NET),
2487    ("rogers.com", &P_ROGERS_COM),
2488    ("sonic.net", &P_SONIC),
2489    ("stinpriza.net", &P_STINPRIZA_NET),
2490    ("stinpriza.eu", &P_STINPRIZA_NET),
2491    ("el-hoyo.net", &P_STINPRIZA_NET),
2492    ("systemausfall.org", &P_SYSTEMAUSFALL_ORG),
2493    ("solidaris.me", &P_SYSTEMAUSFALL_ORG),
2494    ("systemli.org", &P_SYSTEMLI_ORG),
2495    ("t-online.de", &P_T_ONLINE),
2496    ("magenta.de", &P_T_ONLINE),
2497    ("testrun.org", &P_TESTRUN),
2498    ("tiscali.it", &P_TISCALI_IT),
2499    ("tutanota.com", &P_TUTANOTA),
2500    ("tutanota.de", &P_TUTANOTA),
2501    ("tutamail.com", &P_TUTANOTA),
2502    ("tuta.io", &P_TUTANOTA),
2503    ("keemail.me", &P_TUTANOTA),
2504    ("ukr.net", &P_UKR_NET),
2505    ("undernet.uy", &P_UNDERNET_UY),
2506    ("vfemail.net", &P_VFEMAIL),
2507    ("vivaldi.net", &P_VIVALDI),
2508    ("vk.com", &P_VK_COM),
2509    ("vodafone.de", &P_VODAFONE_DE),
2510    ("vodafonemail.de", &P_VODAFONE_DE),
2511    ("web.de", &P_WEB_DE),
2512    ("email.de", &P_WEB_DE),
2513    ("flirt.ms", &P_WEB_DE),
2514    ("hallo.ms", &P_WEB_DE),
2515    ("kuss.ms", &P_WEB_DE),
2516    ("love.ms", &P_WEB_DE),
2517    ("magic.ms", &P_WEB_DE),
2518    ("singles.ms", &P_WEB_DE),
2519    ("cool.ms", &P_WEB_DE),
2520    ("kanzler.ms", &P_WEB_DE),
2521    ("okay.ms", &P_WEB_DE),
2522    ("party.ms", &P_WEB_DE),
2523    ("pop.ms", &P_WEB_DE),
2524    ("stars.ms", &P_WEB_DE),
2525    ("techno.ms", &P_WEB_DE),
2526    ("clever.ms", &P_WEB_DE),
2527    ("deutschland.ms", &P_WEB_DE),
2528    ("genial.ms", &P_WEB_DE),
2529    ("ich.ms", &P_WEB_DE),
2530    ("online.ms", &P_WEB_DE),
2531    ("smart.ms", &P_WEB_DE),
2532    ("wichtig.ms", &P_WEB_DE),
2533    ("action.ms", &P_WEB_DE),
2534    ("fussball.ms", &P_WEB_DE),
2535    ("joker.ms", &P_WEB_DE),
2536    ("planet.ms", &P_WEB_DE),
2537    ("power.ms", &P_WEB_DE),
2538    ("wkpb.de", &P_WKPB_DE),
2539    ("yahoo.com", &P_YAHOO),
2540    ("yahoo.de", &P_YAHOO),
2541    ("yahoo.it", &P_YAHOO),
2542    ("yahoo.fr", &P_YAHOO),
2543    ("yahoo.es", &P_YAHOO),
2544    ("yahoo.se", &P_YAHOO),
2545    ("yahoo.co.uk", &P_YAHOO),
2546    ("yahoo.co.nz", &P_YAHOO),
2547    ("yahoo.com.au", &P_YAHOO),
2548    ("yahoo.com.ar", &P_YAHOO),
2549    ("yahoo.com.br", &P_YAHOO),
2550    ("yahoo.com.mx", &P_YAHOO),
2551    ("myyahoo.com", &P_YAHOO),
2552    ("ymail.com", &P_YAHOO),
2553    ("rocketmail.com", &P_YAHOO),
2554    ("yahoodns.net", &P_YAHOO),
2555    ("yandex.com", &P_YANDEX_RU),
2556    ("yandex.by", &P_YANDEX_RU),
2557    ("yandex.kz", &P_YANDEX_RU),
2558    ("yandex.ru", &P_YANDEX_RU),
2559    ("yandex.ua", &P_YANDEX_RU),
2560    ("ya.ru", &P_YANDEX_RU),
2561    ("narod.ru", &P_YANDEX_RU),
2562    ("yggmail", &P_YGGMAIL),
2563    ("ziggo.nl", &P_ZIGGO_NL),
2564    ("zohomail.eu", &P_ZOHO),
2565    ("zohomail.com", &P_ZOHO),
2566    ("zoho.com", &P_ZOHO),
2567];
2568
2569pub(crate) static PROVIDER_IDS: LazyLock<HashMap<&'static str, &'static Provider>> =
2570    LazyLock::new(|| {
2571        HashMap::from([
2572            ("163", &P_163),
2573            ("aktivix.org", &P_AKTIVIX_ORG),
2574            ("aliyun", &P_ALIYUN),
2575            ("aol", &P_AOL),
2576            ("arcor.de", &P_ARCOR_DE),
2577            ("autistici.org", &P_AUTISTICI_ORG),
2578            ("blindzeln.org", &P_BLINDZELN_ORG),
2579            ("bluewin.ch", &P_BLUEWIN_CH),
2580            ("buzon.uy", &P_BUZON_UY),
2581            ("chello.at", &P_CHELLO_AT),
2582            ("comcast", &P_COMCAST),
2583            ("daleth.cafe", &P_DALETH_CAFE),
2584            ("dismail.de", &P_DISMAIL_DE),
2585            ("disroot", &P_DISROOT),
2586            ("e.email", &P_E_EMAIL),
2587            ("espiv.net", &P_ESPIV_NET),
2588            ("example.com", &P_EXAMPLE_COM),
2589            ("fastmail", &P_FASTMAIL),
2590            ("firemail.de", &P_FIREMAIL_DE),
2591            ("five.chat", &P_FIVE_CHAT),
2592            ("freenet.de", &P_FREENET_DE),
2593            ("gmail", &P_GMAIL),
2594            ("gmx.net", &P_GMX_NET),
2595            ("hermes.radio", &P_HERMES_RADIO),
2596            ("hey.com", &P_HEY_COM),
2597            ("i.ua", &P_I_UA),
2598            ("i3.net", &P_I3_NET),
2599            ("icloud", &P_ICLOUD),
2600            ("infomaniak.com", &P_INFOMANIAK_COM),
2601            ("kolst.com", &P_KOLST_COM),
2602            ("kontent.com", &P_KONTENT_COM),
2603            ("mail.com", &P_MAIL_COM),
2604            ("mail.de", &P_MAIL_DE),
2605            ("mail.ru", &P_MAIL_RU),
2606            ("mail2tor", &P_MAIL2TOR),
2607            ("mailbox.org", &P_MAILBOX_ORG),
2608            ("mailo.com", &P_MAILO_COM),
2609            ("mehl.cloud", &P_MEHL_CLOUD),
2610            ("mehl.store", &P_MEHL_STORE),
2611            ("migadu", &P_MIGADU),
2612            ("nauta.cu", &P_NAUTA_CU),
2613            ("naver", &P_NAVER),
2614            ("nine.testrun.org", &P_NINE_TESTRUN_ORG),
2615            ("nubo.coop", &P_NUBO_COOP),
2616            ("outlook.com", &P_OUTLOOK_COM),
2617            ("ouvaton.coop", &P_OUVATON_COOP),
2618            ("posteo", &P_POSTEO),
2619            ("protonmail", &P_PROTONMAIL),
2620            ("purelymail.com", &P_PURELYMAIL_COM),
2621            ("qq", &P_QQ),
2622            ("rambler.ru", &P_RAMBLER_RU),
2623            ("riseup.net", &P_RISEUP_NET),
2624            ("rogers.com", &P_ROGERS_COM),
2625            ("sonic", &P_SONIC),
2626            ("stinpriza.net", &P_STINPRIZA_NET),
2627            ("systemausfall.org", &P_SYSTEMAUSFALL_ORG),
2628            ("systemli.org", &P_SYSTEMLI_ORG),
2629            ("t-online", &P_T_ONLINE),
2630            ("testrun", &P_TESTRUN),
2631            ("tiscali.it", &P_TISCALI_IT),
2632            ("tutanota", &P_TUTANOTA),
2633            ("ukr.net", &P_UKR_NET),
2634            ("undernet.uy", &P_UNDERNET_UY),
2635            ("vfemail", &P_VFEMAIL),
2636            ("vivaldi", &P_VIVALDI),
2637            ("vk.com", &P_VK_COM),
2638            ("vodafone.de", &P_VODAFONE_DE),
2639            ("web.de", &P_WEB_DE),
2640            ("wkpb.de", &P_WKPB_DE),
2641            ("yahoo", &P_YAHOO),
2642            ("yandex.ru", &P_YANDEX_RU),
2643            ("yggmail", &P_YGGMAIL),
2644            ("ziggo.nl", &P_ZIGGO_NL),
2645            ("zoho", &P_ZOHO),
2646        ])
2647    });
2648
2649pub static _PROVIDER_UPDATED: LazyLock<chrono::NaiveDate> =
2650    LazyLock::new(|| chrono::NaiveDate::from_ymd_opt(2025, 9, 10).unwrap());