tempmail_sdk 1.3.3
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.
- checksums.yaml +7 -0
- data/README.md +116 -0
- data/lib/tempmail_sdk/channels.rb +289 -0
- data/lib/tempmail_sdk/channels_data.rb +289 -0
- data/lib/tempmail_sdk/client.rb +193 -0
- data/lib/tempmail_sdk/config.rb +104 -0
- data/lib/tempmail_sdk/html_utils.rb +42 -0
- data/lib/tempmail_sdk/http.rb +225 -0
- data/lib/tempmail_sdk/logger.rb +38 -0
- data/lib/tempmail_sdk/normalize.rb +193 -0
- data/lib/tempmail_sdk/providers/anonbox.rb +248 -0
- data/lib/tempmail_sdk/providers/anonymmail.rb +92 -0
- data/lib/tempmail_sdk/providers/byom.rb +48 -0
- data/lib/tempmail_sdk/providers/catchmail.rb +110 -0
- data/lib/tempmail_sdk/providers/cleantempmail.rb +49 -0
- data/lib/tempmail_sdk/providers/devmail_uk.rb +58 -0
- data/lib/tempmail_sdk/providers/dropmail.rb +133 -0
- data/lib/tempmail_sdk/providers/dropmail_click.rb +81 -0
- data/lib/tempmail_sdk/providers/dropmail_me.rb +163 -0
- data/lib/tempmail_sdk/providers/duckmail.rb +63 -0
- data/lib/tempmail_sdk/providers/eyepaste.rb +119 -0
- data/lib/tempmail_sdk/providers/fake_email_site.rb +48 -0
- data/lib/tempmail_sdk/providers/fake_legal.rb +109 -0
- data/lib/tempmail_sdk/providers/fmail.rb +87 -0
- data/lib/tempmail_sdk/providers/freecustom.rb +135 -0
- data/lib/tempmail_sdk/providers/getnada.rb +146 -0
- data/lib/tempmail_sdk/providers/gonebox_email.rb +89 -0
- data/lib/tempmail_sdk/providers/guerrillamail.rb +62 -0
- data/lib/tempmail_sdk/providers/guerrillamail_mirrors.rb +81 -0
- data/lib/tempmail_sdk/providers/harakirimail.rb +84 -0
- data/lib/tempmail_sdk/providers/haribu.rb +176 -0
- data/lib/tempmail_sdk/providers/inboxes.rb +110 -0
- data/lib/tempmail_sdk/providers/inboxkitten.rb +90 -0
- data/lib/tempmail_sdk/providers/linshiyou.rb +157 -0
- data/lib/tempmail_sdk/providers/lroid.rb +170 -0
- data/lib/tempmail_sdk/providers/m2u.rb +126 -0
- data/lib/tempmail_sdk/providers/mail10s.rb +59 -0
- data/lib/tempmail_sdk/providers/mail123.rb +82 -0
- data/lib/tempmail_sdk/providers/mail_cx.rb +133 -0
- data/lib/tempmail_sdk/providers/mail_sunls.rb +68 -0
- data/lib/tempmail_sdk/providers/mail_tm.rb +99 -0
- data/lib/tempmail_sdk/providers/mailcatch.rb +91 -0
- data/lib/tempmail_sdk/providers/maildrop.rb +92 -0
- data/lib/tempmail_sdk/providers/maildrop_cc.rb +110 -0
- data/lib/tempmail_sdk/providers/mailforspam.rb +96 -0
- data/lib/tempmail_sdk/providers/mailhole_de.rb +70 -0
- data/lib/tempmail_sdk/providers/mailinator.rb +182 -0
- data/lib/tempmail_sdk/providers/mailmomy.rb +108 -0
- data/lib/tempmail_sdk/providers/mailnesia.rb +141 -0
- data/lib/tempmail_sdk/providers/mffac.rb +101 -0
- data/lib/tempmail_sdk/providers/moakt.rb +296 -0
- data/lib/tempmail_sdk/providers/neighbours.rb +140 -0
- data/lib/tempmail_sdk/providers/neighbours_sh.rb +117 -0
- data/lib/tempmail_sdk/providers/nimail.rb +100 -0
- data/lib/tempmail_sdk/providers/ockito.rb +163 -0
- data/lib/tempmail_sdk/providers/one_sec_mail.rb +46 -0
- data/lib/tempmail_sdk/providers/restmail_net.rb +60 -0
- data/lib/tempmail_sdk/providers/rootsh.rb +167 -0
- data/lib/tempmail_sdk/providers/shitty_email.rb +84 -0
- data/lib/tempmail_sdk/providers/smailpro.rb +103 -0
- data/lib/tempmail_sdk/providers/ta_easy.rb +53 -0
- data/lib/tempmail_sdk/providers/temp_mail_io.rb +67 -0
- data/lib/tempmail_sdk/providers/temp_mail_now.rb +103 -0
- data/lib/tempmail_sdk/providers/temp_mail_org.rb +89 -0
- data/lib/tempmail_sdk/providers/tempemail_co.rb +142 -0
- data/lib/tempmail_sdk/providers/tempemail_info.rb +121 -0
- data/lib/tempmail_sdk/providers/tempemails_net.rb +159 -0
- data/lib/tempmail_sdk/providers/tempfastmail.rb +76 -0
- data/lib/tempmail_sdk/providers/tempgmailer.rb +126 -0
- data/lib/tempmail_sdk/providers/tempgo_email.rb +74 -0
- data/lib/tempmail_sdk/providers/tempinbox.rb +70 -0
- data/lib/tempmail_sdk/providers/tempmail.rb +66 -0
- data/lib/tempmail_sdk/providers/tempmail365.rb +119 -0
- data/lib/tempmail_sdk/providers/tempmail_fish.rb +89 -0
- data/lib/tempmail_sdk/providers/tempmail_fyi.rb +124 -0
- data/lib/tempmail_sdk/providers/tempmail_lol.rb +42 -0
- data/lib/tempmail_sdk/providers/tempmail_lol_v2.rb +57 -0
- data/lib/tempmail_sdk/providers/tempmail_plus.rb +80 -0
- data/lib/tempmail_sdk/providers/tempmailc.rb +80 -0
- data/lib/tempmail_sdk/providers/tempmailpro.rb +89 -0
- data/lib/tempmail_sdk/providers/tempmailten.rb +150 -0
- data/lib/tempmail_sdk/providers/temporam.rb +95 -0
- data/lib/tempmail_sdk/providers/tempp_mails.rb +150 -0
- data/lib/tempmail_sdk/providers/tempy_email.rb +73 -0
- data/lib/tempmail_sdk/providers/ten_minute_mail_net.rb +125 -0
- data/lib/tempmail_sdk/providers/tenminute_one.rb +255 -0
- data/lib/tempmail_sdk/providers/throwawaymail.rb +80 -0
- data/lib/tempmail_sdk/providers/tmail_link.rb +98 -0
- data/lib/tempmail_sdk/providers/uncorreotemporal.rb +84 -0
- data/lib/tempmail_sdk/providers/webmailtemp.rb +108 -0
- data/lib/tempmail_sdk/providers/xkx_me.rb +125 -0
- data/lib/tempmail_sdk/providers/zhujump.rb +256 -0
- data/lib/tempmail_sdk/registry.rb +1097 -0
- data/lib/tempmail_sdk/retry.rb +91 -0
- data/lib/tempmail_sdk/telemetry.rb +134 -0
- data/lib/tempmail_sdk/types.rb +164 -0
- data/lib/tempmail_sdk/version.rb +6 -0
- data/lib/tempmail_sdk/webui.rb +360 -0
- data/lib/tempmail_sdk.rb +76 -0
- metadata +142 -0
|
@@ -0,0 +1,1097 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "channels_data"
|
|
4
|
+
|
|
5
|
+
# provider 模块懒加载映射:模块名 => 相对文件路径
|
|
6
|
+
# 通过 Ruby autoload 延迟到渠道首次真正调用时才加载对应 provider 文件,
|
|
7
|
+
# 避免加载 SDK 时一次性 require 全部 provider(及其级联依赖),显著降低启动开销与常驻内存。
|
|
8
|
+
module TempmailSdk
|
|
9
|
+
module Providers
|
|
10
|
+
# 每个 provider 文件恰好定义一个同名子模块,映射一一对应(零歧义)。
|
|
11
|
+
PROVIDER_AUTOLOADS = {
|
|
12
|
+
Tempmail: "tempmail", MailTm: "mail_tm", Duckmail: "duckmail",
|
|
13
|
+
Guerrillamail: "guerrillamail", GuerrillamailMirrors: "guerrillamail_mirrors",
|
|
14
|
+
TempMailIo: "temp_mail_io", TempmailLol: "tempmail_lol", TempmailPlus: "tempmail_plus",
|
|
15
|
+
RestmailNet: "restmail_net", Inboxkitten: "inboxkitten", Maildrop: "maildrop",
|
|
16
|
+
MailCx: "mail_cx", OneSecMail: "one_sec_mail", Moakt: "moakt", Getnada: "getnada",
|
|
17
|
+
Mailinator: "mailinator", Mailmomy: "mailmomy", Catchmail: "catchmail",
|
|
18
|
+
Mailforspam: "mailforspam", FakeLegal: "fake_legal", TenminuteOne: "tenminute_one",
|
|
19
|
+
Zhujump: "zhujump", Anonymmail: "anonymmail", Byom: "byom", Cleantempmail: "cleantempmail",
|
|
20
|
+
DevmailUk: "devmail_uk", DropmailClick: "dropmail_click", FakeEmailSite: "fake_email_site",
|
|
21
|
+
Fmail: "fmail", Freecustom: "freecustom", GoneboxEmail: "gonebox_email",
|
|
22
|
+
Harakirimail: "harakirimail", Inboxes: "inboxes", M2u: "m2u", Mail10s: "mail10s",
|
|
23
|
+
Mail123: "mail123", Mffac: "mffac", Tempmailc: "tempmailc", NeighboursSh: "neighbours_sh",
|
|
24
|
+
Temporam: "temporam", Neighbours: "neighbours", TempyEmail: "tempy_email", Ockito: "ockito",
|
|
25
|
+
Tempmail365: "tempmail365", Tempinbox: "tempinbox", MailSunls: "mail_sunls",
|
|
26
|
+
Smailpro: "smailpro", MailholeDe: "mailhole_de", Nimail: "nimail", Rootsh: "rootsh",
|
|
27
|
+
ShittyEmail: "shitty_email", TaEasy: "ta_easy", TempMailNow: "temp_mail_now",
|
|
28
|
+
TempMailOrg: "temp_mail_org", TempemailCo: "tempemail_co", TempemailInfo: "tempemail_info",
|
|
29
|
+
TempemailsNet: "tempemails_net", Tempfastmail: "tempfastmail", Tempgmailer: "tempgmailer",
|
|
30
|
+
TempgoEmail: "tempgo_email", TempmailFish: "tempmail_fish", TempmailFyi: "tempmail_fyi",
|
|
31
|
+
TempmailLolV2: "tempmail_lol_v2", Tempmailpro: "tempmailpro", Tempmailten: "tempmailten",
|
|
32
|
+
TempMails: "tempp_mails", TenMinuteMailNet: "ten_minute_mail_net",
|
|
33
|
+
Throwawaymail: "throwawaymail", TmailLink: "tmail_link",
|
|
34
|
+
Uncorreotemporal: "uncorreotemporal", Webmailtemp: "webmailtemp", XkxMe: "xkx_me"
|
|
35
|
+
}.freeze
|
|
36
|
+
|
|
37
|
+
PROVIDER_AUTOLOADS.each do |mod_name, file|
|
|
38
|
+
autoload mod_name, File.join(__dir__, "providers", file)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
module TempmailSdk
|
|
44
|
+
# 单个渠道的注册规格
|
|
45
|
+
#
|
|
46
|
+
# generate: 接收 GenerateEmailOptions,返回 EmailInfo 的 Proc
|
|
47
|
+
# get_emails: 接收 (email, token),返回 Array<Email> 的 Proc
|
|
48
|
+
ChannelSpec = Struct.new(:channel, :name, :website, :generate, :get_emails, keyword_init: true)
|
|
49
|
+
|
|
50
|
+
# 渠道注册表:单一事实来源
|
|
51
|
+
#
|
|
52
|
+
# 有序注册表数组 + 映射由同一处 register_channel 派生。
|
|
53
|
+
# list_channels、渠道信息、generate/get_emails 两个 dispatch 全部从注册表派生。
|
|
54
|
+
# 注册顺序即枚举顺序(硬约束,与 baseline 逐行一致)。
|
|
55
|
+
module Registry
|
|
56
|
+
# 有序渠道注册表,注册顺序即枚举顺序
|
|
57
|
+
REGISTRY = []
|
|
58
|
+
# 渠道标识到注册规格的映射,O(1) 查找分发
|
|
59
|
+
REGISTRY_MAP = {}
|
|
60
|
+
|
|
61
|
+
module_function
|
|
62
|
+
|
|
63
|
+
# 注册一个渠道:追加到有序列表并建立映射;重复注册视为编程错误
|
|
64
|
+
# @param spec [ChannelSpec]
|
|
65
|
+
def register_channel(spec)
|
|
66
|
+
raise "duplicate channel registration: #{spec.channel}" if REGISTRY_MAP.key?(spec.channel)
|
|
67
|
+
|
|
68
|
+
REGISTRY << spec
|
|
69
|
+
REGISTRY_MAP[spec.channel] = spec
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# 校验 token 非空
|
|
73
|
+
def require_token(token, channel)
|
|
74
|
+
raise "token is required for #{channel} channel" if token.nil? || token.to_s.empty?
|
|
75
|
+
|
|
76
|
+
token
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# 覆写 EmailInfo 的渠道标识(用于同一 provider 派生多个渠道别名)
|
|
80
|
+
def with_channel(info, channel)
|
|
81
|
+
info.channel = channel
|
|
82
|
+
info
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# 尚未实现真实逻辑的渠道桩:可正常枚举,但调用时抛出 NotImplementedProviderError
|
|
86
|
+
# @param channel [String]
|
|
87
|
+
# @return [ChannelSpec]
|
|
88
|
+
def stub_spec(channel, name, website)
|
|
89
|
+
ChannelSpec.new(
|
|
90
|
+
channel: channel, name: name, website: website,
|
|
91
|
+
generate: ->(_opts) { raise NotImplementedProviderError, "channel not implemented yet: #{channel}" },
|
|
92
|
+
get_emails: ->(_email, _token) { raise NotImplementedProviderError, "channel not implemented yet: #{channel}" }
|
|
93
|
+
)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# 真实实现映射:slug => { generate: Proc(options)->EmailInfo, get_emails: Proc(email, token)->Array<Email> }
|
|
97
|
+
# 未列入者按桩注册。新增真实实现只需在此追加一处。
|
|
98
|
+
def real_implementations
|
|
99
|
+
p = Providers
|
|
100
|
+
{
|
|
101
|
+
"moakt" => {
|
|
102
|
+
generate: ->(o) { p::Moakt.generate_email(o.domain) },
|
|
103
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
104
|
+
},
|
|
105
|
+
"drmail-in" => {
|
|
106
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("drmail.in"), "drmail-in") },
|
|
107
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
108
|
+
},
|
|
109
|
+
"teml-net" => {
|
|
110
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("teml.net"), "teml-net") },
|
|
111
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
112
|
+
},
|
|
113
|
+
"tmpeml-com" => {
|
|
114
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("tmpeml.com"), "tmpeml-com") },
|
|
115
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
116
|
+
},
|
|
117
|
+
"tmpbox-net" => {
|
|
118
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("tmpbox.net"), "tmpbox-net") },
|
|
119
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
120
|
+
},
|
|
121
|
+
"moakt-cc" => {
|
|
122
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("moakt.cc"), "moakt-cc") },
|
|
123
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
124
|
+
},
|
|
125
|
+
"disbox-net" => {
|
|
126
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("disbox.net"), "disbox-net") },
|
|
127
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
128
|
+
},
|
|
129
|
+
"tmpmail-org" => {
|
|
130
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("tmpmail.org"), "tmpmail-org") },
|
|
131
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
132
|
+
},
|
|
133
|
+
"tmpmail-net" => {
|
|
134
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("tmpmail.net"), "tmpmail-net") },
|
|
135
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
136
|
+
},
|
|
137
|
+
"tmails-net" => {
|
|
138
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("tmails.net"), "tmails-net") },
|
|
139
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
140
|
+
},
|
|
141
|
+
"disbox-org" => {
|
|
142
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("disbox.org"), "disbox-org") },
|
|
143
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
144
|
+
},
|
|
145
|
+
"moakt-co" => {
|
|
146
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("moakt.co"), "moakt-co") },
|
|
147
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
148
|
+
},
|
|
149
|
+
"moakt-ws" => {
|
|
150
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("moakt.ws"), "moakt-ws") },
|
|
151
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
152
|
+
},
|
|
153
|
+
"tmail-ws" => {
|
|
154
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("tmail.ws"), "tmail-ws") },
|
|
155
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
156
|
+
},
|
|
157
|
+
"bareed-ws" => {
|
|
158
|
+
generate: ->(_o) { with_channel(p::Moakt.generate_email("bareed.ws"), "bareed-ws") },
|
|
159
|
+
get_emails: ->(e, t) { p::Moakt.get_emails(e, require_token(t, "moakt")) }
|
|
160
|
+
},
|
|
161
|
+
"tempmail" => {
|
|
162
|
+
generate: ->(o) { p::Tempmail.generate_email(o.duration) },
|
|
163
|
+
get_emails: ->(e, _t) { p::Tempmail.get_emails(e) }
|
|
164
|
+
},
|
|
165
|
+
"mail-tm" => {
|
|
166
|
+
generate: ->(_o) { p::MailTm.generate_email },
|
|
167
|
+
get_emails: ->(e, t) { p::MailTm.get_emails(e, require_token(t, "mail-tm")) }
|
|
168
|
+
},
|
|
169
|
+
"web-library-net" => {
|
|
170
|
+
generate: ->(_o) { with_channel(p::MailTm.generate_email, "web-library-net") },
|
|
171
|
+
get_emails: ->(e, t) { p::MailTm.get_emails(e, require_token(t, "mail-tm")) }
|
|
172
|
+
},
|
|
173
|
+
"duckmail" => {
|
|
174
|
+
generate: ->(_o) { p::Duckmail.generate_email },
|
|
175
|
+
get_emails: ->(e, t) { p::Duckmail.get_emails(e, require_token(t, "duckmail")) }
|
|
176
|
+
},
|
|
177
|
+
"guerrillamail" => {
|
|
178
|
+
generate: ->(_o) { p::Guerrillamail.generate_email },
|
|
179
|
+
get_emails: ->(e, t) { p::Guerrillamail.get_emails(e, require_token(t, "guerrillamail")) }
|
|
180
|
+
},
|
|
181
|
+
# guerrillamail 镜像家族:共用同一套 ajax.php API,仅固定 baseURL 不同
|
|
182
|
+
"guerrillamail-com" => {
|
|
183
|
+
generate: ->(_o) { p::GuerrillamailMirrors.generate_email("guerrillamail-com") },
|
|
184
|
+
get_emails: ->(e, t) { p::GuerrillamailMirrors.get_emails("guerrillamail-com", e, require_token(t, "guerrillamail-com")) }
|
|
185
|
+
},
|
|
186
|
+
"sharklasers" => {
|
|
187
|
+
generate: ->(_o) { p::GuerrillamailMirrors.generate_email("sharklasers") },
|
|
188
|
+
get_emails: ->(e, t) { p::GuerrillamailMirrors.get_emails("sharklasers", e, require_token(t, "sharklasers")) }
|
|
189
|
+
},
|
|
190
|
+
"sharklasers-com" => {
|
|
191
|
+
generate: ->(_o) { p::GuerrillamailMirrors.generate_email("sharklasers-com") },
|
|
192
|
+
get_emails: ->(e, t) { p::GuerrillamailMirrors.get_emails("sharklasers-com", e, require_token(t, "sharklasers-com")) }
|
|
193
|
+
},
|
|
194
|
+
"grr-la" => {
|
|
195
|
+
generate: ->(_o) { p::GuerrillamailMirrors.generate_email("grr-la") },
|
|
196
|
+
get_emails: ->(e, t) { p::GuerrillamailMirrors.get_emails("grr-la", e, require_token(t, "grr-la")) }
|
|
197
|
+
},
|
|
198
|
+
"grr-la-com" => {
|
|
199
|
+
generate: ->(_o) { p::GuerrillamailMirrors.generate_email("grr-la-com") },
|
|
200
|
+
get_emails: ->(e, t) { p::GuerrillamailMirrors.get_emails("grr-la-com", e, require_token(t, "grr-la-com")) }
|
|
201
|
+
},
|
|
202
|
+
"guerrillamail-info" => {
|
|
203
|
+
generate: ->(_o) { p::GuerrillamailMirrors.generate_email("guerrillamail-info") },
|
|
204
|
+
get_emails: ->(e, t) { p::GuerrillamailMirrors.get_emails("guerrillamail-info", e, require_token(t, "guerrillamail-info")) }
|
|
205
|
+
},
|
|
206
|
+
"spam4me" => {
|
|
207
|
+
generate: ->(_o) { p::GuerrillamailMirrors.generate_email("spam4me") },
|
|
208
|
+
get_emails: ->(e, t) { p::GuerrillamailMirrors.get_emails("spam4me", e, require_token(t, "spam4me")) }
|
|
209
|
+
},
|
|
210
|
+
"guerrillamail-net" => {
|
|
211
|
+
generate: ->(_o) { p::GuerrillamailMirrors.generate_email("guerrillamail-net") },
|
|
212
|
+
get_emails: ->(e, t) { p::GuerrillamailMirrors.get_emails("guerrillamail-net", e, require_token(t, "guerrillamail-net")) }
|
|
213
|
+
},
|
|
214
|
+
"guerrillamail-org" => {
|
|
215
|
+
generate: ->(_o) { p::GuerrillamailMirrors.generate_email("guerrillamail-org") },
|
|
216
|
+
get_emails: ->(e, t) { p::GuerrillamailMirrors.get_emails("guerrillamail-org", e, require_token(t, "guerrillamail-org")) }
|
|
217
|
+
},
|
|
218
|
+
"guerrillamailblock" => {
|
|
219
|
+
generate: ->(_o) { p::GuerrillamailMirrors.generate_email("guerrillamailblock") },
|
|
220
|
+
get_emails: ->(e, t) { p::GuerrillamailMirrors.get_emails("guerrillamailblock", e, require_token(t, "guerrillamailblock")) }
|
|
221
|
+
},
|
|
222
|
+
"guerrillamail-com-www" => {
|
|
223
|
+
generate: ->(_o) { p::GuerrillamailMirrors.generate_email("guerrillamail-com-www") },
|
|
224
|
+
get_emails: ->(e, t) { p::GuerrillamailMirrors.get_emails("guerrillamail-com-www", e, require_token(t, "guerrillamail-com-www")) }
|
|
225
|
+
},
|
|
226
|
+
"temp-mail-io" => {
|
|
227
|
+
generate: ->(_o) { p::TempMailIo.generate_email },
|
|
228
|
+
get_emails: ->(e, _t) { p::TempMailIo.get_emails(e) }
|
|
229
|
+
},
|
|
230
|
+
"tempmail-lol" => {
|
|
231
|
+
generate: ->(o) { p::TempmailLol.generate_email(o.domain) },
|
|
232
|
+
get_emails: ->(e, t) { p::TempmailLol.get_emails(e, require_token(t, "tempmail-lol")) }
|
|
233
|
+
},
|
|
234
|
+
"tempmail-plus" => {
|
|
235
|
+
generate: ->(_o) { p::TempmailPlus.generate_email },
|
|
236
|
+
get_emails: ->(e, _t) { p::TempmailPlus.get_emails(e) }
|
|
237
|
+
},
|
|
238
|
+
# tempmail-plus 别名渠道:固定域名变体
|
|
239
|
+
"fexpost-com" => {
|
|
240
|
+
generate: ->(_o) { p::TempmailPlus.generate_email("fexpost.com", "fexpost-com") },
|
|
241
|
+
get_emails: ->(e, _t) { p::TempmailPlus.get_emails(e) }
|
|
242
|
+
},
|
|
243
|
+
"fexbox-org" => {
|
|
244
|
+
generate: ->(_o) { p::TempmailPlus.generate_email("fexbox.org", "fexbox-org") },
|
|
245
|
+
get_emails: ->(e, _t) { p::TempmailPlus.get_emails(e) }
|
|
246
|
+
},
|
|
247
|
+
"mailbox-in-ua" => {
|
|
248
|
+
generate: ->(_o) { p::TempmailPlus.generate_email("mailbox.in.ua", "mailbox-in-ua") },
|
|
249
|
+
get_emails: ->(e, _t) { p::TempmailPlus.get_emails(e) }
|
|
250
|
+
},
|
|
251
|
+
"rover-info" => {
|
|
252
|
+
generate: ->(_o) { p::TempmailPlus.generate_email("rover.info", "rover-info") },
|
|
253
|
+
get_emails: ->(e, _t) { p::TempmailPlus.get_emails(e) }
|
|
254
|
+
},
|
|
255
|
+
"chitthi-in" => {
|
|
256
|
+
generate: ->(_o) { p::TempmailPlus.generate_email("chitthi.in", "chitthi-in") },
|
|
257
|
+
get_emails: ->(e, _t) { p::TempmailPlus.get_emails(e) }
|
|
258
|
+
},
|
|
259
|
+
"fextemp-com" => {
|
|
260
|
+
generate: ->(_o) { p::TempmailPlus.generate_email("fextemp.com", "fextemp-com") },
|
|
261
|
+
get_emails: ->(e, _t) { p::TempmailPlus.get_emails(e) }
|
|
262
|
+
},
|
|
263
|
+
"any-pink" => {
|
|
264
|
+
generate: ->(_o) { p::TempmailPlus.generate_email("any.pink", "any-pink") },
|
|
265
|
+
get_emails: ->(e, _t) { p::TempmailPlus.get_emails(e) }
|
|
266
|
+
},
|
|
267
|
+
"merepost-com" => {
|
|
268
|
+
generate: ->(_o) { p::TempmailPlus.generate_email("merepost.com", "merepost-com") },
|
|
269
|
+
get_emails: ->(e, _t) { p::TempmailPlus.get_emails(e) }
|
|
270
|
+
},
|
|
271
|
+
"restmail-net" => {
|
|
272
|
+
generate: ->(_o) { p::RestmailNet.generate_email },
|
|
273
|
+
get_emails: ->(e, _t) { p::RestmailNet.get_emails(e) }
|
|
274
|
+
},
|
|
275
|
+
"inboxkitten" => {
|
|
276
|
+
generate: ->(_o) { p::Inboxkitten.generate_email },
|
|
277
|
+
get_emails: ->(e, _t) { p::Inboxkitten.get_emails(e) }
|
|
278
|
+
},
|
|
279
|
+
"maildrop" => {
|
|
280
|
+
generate: ->(o) { p::Maildrop.generate_email(o.domain) },
|
|
281
|
+
get_emails: ->(e, t) { p::Maildrop.get_emails(e, t) }
|
|
282
|
+
},
|
|
283
|
+
"mail-cx" => {
|
|
284
|
+
generate: ->(o) { p::MailCx.generate_email(o.domain) },
|
|
285
|
+
get_emails: ->(e, t) { p::MailCx.get_emails(e, require_token(t, "mail-cx")) }
|
|
286
|
+
},
|
|
287
|
+
"ddker-com" => {
|
|
288
|
+
generate: ->(_o) { with_channel(p::MailCx.generate_email("ddker.com"), "ddker-com") },
|
|
289
|
+
get_emails: ->(e, t) { p::MailCx.get_emails(e, require_token(t, "mail-cx")) }
|
|
290
|
+
},
|
|
291
|
+
"1sec-mail" => {
|
|
292
|
+
generate: ->(_o) { p::OneSecMail.generate_email },
|
|
293
|
+
get_emails: ->(e, t) { p::OneSecMail.get_emails(e, require_token(t, "1sec-mail")) }
|
|
294
|
+
},
|
|
295
|
+
"getnada" => {
|
|
296
|
+
generate: ->(o) { p::Getnada.generate_email(o.domain) },
|
|
297
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
298
|
+
},
|
|
299
|
+
"1vpn-net" => {
|
|
300
|
+
generate: ->(_o) { p::Getnada.generate_email("1vpn.net", "1vpn-net") },
|
|
301
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
302
|
+
},
|
|
303
|
+
"abematv-com" => {
|
|
304
|
+
generate: ->(_o) { p::Getnada.generate_email("abematv.com", "abematv-com") },
|
|
305
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
306
|
+
},
|
|
307
|
+
"abematv-net" => {
|
|
308
|
+
generate: ->(_o) { p::Getnada.generate_email("abematv.net", "abematv-net") },
|
|
309
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
310
|
+
},
|
|
311
|
+
"abematv-org" => {
|
|
312
|
+
generate: ->(_o) { p::Getnada.generate_email("abematv.org", "abematv-org") },
|
|
313
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
314
|
+
},
|
|
315
|
+
"aceh-cc" => {
|
|
316
|
+
generate: ->(_o) { p::Getnada.generate_email("aceh.cc", "aceh-cc") },
|
|
317
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
318
|
+
},
|
|
319
|
+
"bangkabelitung-net" => {
|
|
320
|
+
generate: ->(_o) { p::Getnada.generate_email("bangkabelitung.net", "bangkabelitung-net") },
|
|
321
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
322
|
+
},
|
|
323
|
+
"cctruyen-com" => {
|
|
324
|
+
generate: ->(_o) { p::Getnada.generate_email("cctruyen.com", "cctruyen-com") },
|
|
325
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
326
|
+
},
|
|
327
|
+
"getnada-com" => {
|
|
328
|
+
generate: ->(_o) { p::Getnada.generate_email("getnada.com", "getnada-com") },
|
|
329
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
330
|
+
},
|
|
331
|
+
"getnada-email" => {
|
|
332
|
+
generate: ->(_o) { p::Getnada.generate_email("getnada.email", "getnada-email") },
|
|
333
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
334
|
+
},
|
|
335
|
+
"getnada-net" => {
|
|
336
|
+
generate: ->(_o) { p::Getnada.generate_email("getnada.net", "getnada-net") },
|
|
337
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
338
|
+
},
|
|
339
|
+
"jawatengah-net" => {
|
|
340
|
+
generate: ->(_o) { p::Getnada.generate_email("jawatengah.net", "jawatengah-net") },
|
|
341
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
342
|
+
},
|
|
343
|
+
"jawatimur-net" => {
|
|
344
|
+
generate: ->(_o) { p::Getnada.generate_email("jawatimur.net", "jawatimur-net") },
|
|
345
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
346
|
+
},
|
|
347
|
+
"kalimantanbarat-net" => {
|
|
348
|
+
generate: ->(_o) { p::Getnada.generate_email("kalimantanbarat.net", "kalimantanbarat-net") },
|
|
349
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
350
|
+
},
|
|
351
|
+
"kalimantanselatan-net" => {
|
|
352
|
+
generate: ->(_o) { p::Getnada.generate_email("kalimantanselatan.net", "kalimantanselatan-net") },
|
|
353
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
354
|
+
},
|
|
355
|
+
"kalimantantengah-net" => {
|
|
356
|
+
generate: ->(_o) { p::Getnada.generate_email("kalimantantengah.net", "kalimantantengah-net") },
|
|
357
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
358
|
+
},
|
|
359
|
+
"kalimantantimur-net" => {
|
|
360
|
+
generate: ->(_o) { p::Getnada.generate_email("kalimantantimur.net", "kalimantantimur-net") },
|
|
361
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
362
|
+
},
|
|
363
|
+
"kalimantanutara-net" => {
|
|
364
|
+
generate: ->(_o) { p::Getnada.generate_email("kalimantanutara.net", "kalimantanutara-net") },
|
|
365
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
366
|
+
},
|
|
367
|
+
"kepulauanriau-net" => {
|
|
368
|
+
generate: ->(_o) { p::Getnada.generate_email("kepulauanriau.net", "kepulauanriau-net") },
|
|
369
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
370
|
+
},
|
|
371
|
+
"luxury345-com" => {
|
|
372
|
+
generate: ->(_o) { p::Getnada.generate_email("luxury345.com", "luxury345-com") },
|
|
373
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
374
|
+
},
|
|
375
|
+
"malukuutara-net" => {
|
|
376
|
+
generate: ->(_o) { p::Getnada.generate_email("malukuutara.net", "malukuutara-net") },
|
|
377
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
378
|
+
},
|
|
379
|
+
"nusatenggarabarat-net" => {
|
|
380
|
+
generate: ->(_o) { p::Getnada.generate_email("nusatenggarabarat.net", "nusatenggarabarat-net") },
|
|
381
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
382
|
+
},
|
|
383
|
+
"nusatenggaratimur-net" => {
|
|
384
|
+
generate: ->(_o) { p::Getnada.generate_email("nusatenggaratimur.net", "nusatenggaratimur-net") },
|
|
385
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
386
|
+
},
|
|
387
|
+
"papuabarat-net" => {
|
|
388
|
+
generate: ->(_o) { p::Getnada.generate_email("papuabarat.net", "papuabarat-net") },
|
|
389
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
390
|
+
},
|
|
391
|
+
"papuabaratdaya-net" => {
|
|
392
|
+
generate: ->(_o) { p::Getnada.generate_email("papuabaratdaya.net", "papuabaratdaya-net") },
|
|
393
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
394
|
+
},
|
|
395
|
+
"papuaselatan-net" => {
|
|
396
|
+
generate: ->(_o) { p::Getnada.generate_email("papuaselatan.net", "papuaselatan-net") },
|
|
397
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
398
|
+
},
|
|
399
|
+
"pehol-com" => {
|
|
400
|
+
generate: ->(_o) { p::Getnada.generate_email("pehol.com", "pehol-com") },
|
|
401
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
402
|
+
},
|
|
403
|
+
"ptruyen-com" => {
|
|
404
|
+
generate: ->(_o) { p::Getnada.generate_email("ptruyen.com", "ptruyen-com") },
|
|
405
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
406
|
+
},
|
|
407
|
+
"pulaubali-net" => {
|
|
408
|
+
generate: ->(_o) { p::Getnada.generate_email("pulaubali.net", "pulaubali-net") },
|
|
409
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
410
|
+
},
|
|
411
|
+
"riau-net" => {
|
|
412
|
+
generate: ->(_o) { p::Getnada.generate_email("riau.net", "riau-net") },
|
|
413
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
414
|
+
},
|
|
415
|
+
"seokey-org" => {
|
|
416
|
+
generate: ->(_o) { p::Getnada.generate_email("seokey.org", "seokey-org") },
|
|
417
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
418
|
+
},
|
|
419
|
+
"sulawesibarat-net" => {
|
|
420
|
+
generate: ->(_o) { p::Getnada.generate_email("sulawesibarat.net", "sulawesibarat-net") },
|
|
421
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
422
|
+
},
|
|
423
|
+
"sulawesiselatan-net" => {
|
|
424
|
+
generate: ->(_o) { p::Getnada.generate_email("sulawesiselatan.net", "sulawesiselatan-net") },
|
|
425
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
426
|
+
},
|
|
427
|
+
"sulawesitengah-net" => {
|
|
428
|
+
generate: ->(_o) { p::Getnada.generate_email("sulawesitengah.net", "sulawesitengah-net") },
|
|
429
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
430
|
+
},
|
|
431
|
+
"sulawesitenggara-net" => {
|
|
432
|
+
generate: ->(_o) { p::Getnada.generate_email("sulawesitenggara.net", "sulawesitenggara-net") },
|
|
433
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
434
|
+
},
|
|
435
|
+
"sumaterabarat-net" => {
|
|
436
|
+
generate: ->(_o) { p::Getnada.generate_email("sumaterabarat.net", "sumaterabarat-net") },
|
|
437
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
438
|
+
},
|
|
439
|
+
"sumateraselatan-net" => {
|
|
440
|
+
generate: ->(_o) { p::Getnada.generate_email("sumateraselatan.net", "sumateraselatan-net") },
|
|
441
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
442
|
+
},
|
|
443
|
+
"sumaterautara-net" => {
|
|
444
|
+
generate: ->(_o) { p::Getnada.generate_email("sumaterautara.net", "sumaterautara-net") },
|
|
445
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
446
|
+
},
|
|
447
|
+
"villatogel-com" => {
|
|
448
|
+
generate: ->(_o) { p::Getnada.generate_email("villatogel.com", "villatogel-com") },
|
|
449
|
+
get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
|
|
450
|
+
},
|
|
451
|
+
# mailmomy 家族:mailmomy 主渠道从域名池随机选域,其余为固定域名变体(同后端 API)
|
|
452
|
+
"16888888-cyou" => {
|
|
453
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("16888888.cyou"), "16888888-cyou") },
|
|
454
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
455
|
+
},
|
|
456
|
+
"17666688-shop" => {
|
|
457
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("17666688.shop"), "17666688-shop") },
|
|
458
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
459
|
+
},
|
|
460
|
+
"282mail-com" => {
|
|
461
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("282mail.com"), "282mail-com") },
|
|
462
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
463
|
+
},
|
|
464
|
+
"bsdu32-buzz" => {
|
|
465
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("bsdu32.buzz"), "bsdu32-buzz") },
|
|
466
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
467
|
+
},
|
|
468
|
+
"doxu243-buzz" => {
|
|
469
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("doxu243.buzz"), "doxu243-buzz") },
|
|
470
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
471
|
+
},
|
|
472
|
+
"easyme-pro" => {
|
|
473
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("easyme.pro"), "easyme-pro") },
|
|
474
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
475
|
+
},
|
|
476
|
+
"evergreenco-shop" => {
|
|
477
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("evergreenco.shop"), "evergreenco-shop") },
|
|
478
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
479
|
+
},
|
|
480
|
+
"layueming-pics" => {
|
|
481
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("layueming.pics"), "layueming-pics") },
|
|
482
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
483
|
+
},
|
|
484
|
+
"mingyuekeji-online" => {
|
|
485
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("mingyuekeji.online"), "mingyuekeji-online") },
|
|
486
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
487
|
+
},
|
|
488
|
+
"mingyueming-click" => {
|
|
489
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("mingyueming.click"), "mingyueming-click") },
|
|
490
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
491
|
+
},
|
|
492
|
+
"mingyueming-shop" => {
|
|
493
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("mingyueming.shop"), "mingyueming-shop") },
|
|
494
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
495
|
+
},
|
|
496
|
+
"mingyukeji-lol" => {
|
|
497
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("mingyukeji.lol"), "mingyukeji-lol") },
|
|
498
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
499
|
+
},
|
|
500
|
+
"nuxh62-space" => {
|
|
501
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("nuxh62.space"), "nuxh62-space") },
|
|
502
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
503
|
+
},
|
|
504
|
+
"proid-cloud-ip-cc" => {
|
|
505
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("proid.cloud-ip.cc"), "proid-cloud-ip-cc") },
|
|
506
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
507
|
+
},
|
|
508
|
+
"sbook-pics" => {
|
|
509
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("sbook.pics"), "sbook-pics") },
|
|
510
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
511
|
+
},
|
|
512
|
+
"xue32-buzz" => {
|
|
513
|
+
generate: ->(_o) { with_channel(p::Mailmomy.generate_email("xue32.buzz"), "xue32-buzz") },
|
|
514
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
515
|
+
},
|
|
516
|
+
"mailmomy" => {
|
|
517
|
+
generate: ->(_o) { p::Mailmomy.generate_email },
|
|
518
|
+
get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
|
|
519
|
+
},
|
|
520
|
+
# mailinator 家族:主渠道 mailinator.com,其余为姊妹域名别名(收信统一走 public 域名 API)
|
|
521
|
+
"mailinator" => {
|
|
522
|
+
generate: ->(_o) { p::Mailinator.generate_email },
|
|
523
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
524
|
+
},
|
|
525
|
+
"blackhole-djurby-se" => {
|
|
526
|
+
generate: ->(_o) { p::Mailinator.generate_email("blackhole.djurby.se", "blackhole-djurby-se") },
|
|
527
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
528
|
+
},
|
|
529
|
+
"block-bdea-cc" => {
|
|
530
|
+
generate: ->(_o) { p::Mailinator.generate_email("block.bdea.cc", "block-bdea-cc") },
|
|
531
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
532
|
+
},
|
|
533
|
+
"b-smelly-cc" => {
|
|
534
|
+
generate: ->(_o) { p::Mailinator.generate_email("b.smelly.cc", "b-smelly-cc") },
|
|
535
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
536
|
+
},
|
|
537
|
+
"carlton183-changeip-net" => {
|
|
538
|
+
generate: ->(_o) { p::Mailinator.generate_email("183carlton.changeip.net", "carlton183-changeip-net") },
|
|
539
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
540
|
+
},
|
|
541
|
+
"dea-soon-it" => {
|
|
542
|
+
generate: ->(_o) { p::Mailinator.generate_email("dea.soon.it", "dea-soon-it") },
|
|
543
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
544
|
+
},
|
|
545
|
+
"disposable-al-sudani-com" => {
|
|
546
|
+
generate: ->(_o) { p::Mailinator.generate_email("disposable.al-sudani.com", "disposable-al-sudani-com") },
|
|
547
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
548
|
+
},
|
|
549
|
+
"disposable-nogonad-nl" => {
|
|
550
|
+
generate: ->(_o) { p::Mailinator.generate_email("disposable.nogonad.nl", "disposable-nogonad-nl") },
|
|
551
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
552
|
+
},
|
|
553
|
+
"ebs-com-ar" => {
|
|
554
|
+
generate: ->(_o) { p::Mailinator.generate_email("ebs.com.ar", "ebs-com-ar") },
|
|
555
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
556
|
+
},
|
|
557
|
+
"etgdev-de" => {
|
|
558
|
+
generate: ->(_o) { p::Mailinator.generate_email("etgdev.de", "etgdev-de") },
|
|
559
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
560
|
+
},
|
|
561
|
+
"fwd2m-eszett-es" => {
|
|
562
|
+
generate: ->(_o) { p::Mailinator.generate_email("fwd2m.eszett.es", "fwd2m-eszett-es") },
|
|
563
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
564
|
+
},
|
|
565
|
+
"jama-trenet-eu" => {
|
|
566
|
+
generate: ->(_o) { p::Mailinator.generate_email("jama.trenet.eu", "jama-trenet-eu") },
|
|
567
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
568
|
+
},
|
|
569
|
+
"j-fairuse-org" => {
|
|
570
|
+
generate: ->(_o) { p::Mailinator.generate_email("j.fairuse.org", "j-fairuse-org") },
|
|
571
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
572
|
+
},
|
|
573
|
+
"m-887-at" => {
|
|
574
|
+
generate: ->(_o) { p::Mailinator.generate_email("m.887.at", "m-887-at") },
|
|
575
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
576
|
+
},
|
|
577
|
+
"m8r-davidfuhr-de" => {
|
|
578
|
+
generate: ->(_o) { p::Mailinator.generate_email("m8r.davidfuhr.de", "m8r-davidfuhr-de") },
|
|
579
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
580
|
+
},
|
|
581
|
+
"m8r-mcasal-com" => {
|
|
582
|
+
generate: ->(_o) { p::Mailinator.generate_email("m8r.mcasal.com", "m8r-mcasal-com") },
|
|
583
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
584
|
+
},
|
|
585
|
+
"mail-bentrask-com" => {
|
|
586
|
+
generate: ->(_o) { p::Mailinator.generate_email("mail.bentrask.com", "mail-bentrask-com") },
|
|
587
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
588
|
+
},
|
|
589
|
+
"mail-fsmash-org" => {
|
|
590
|
+
generate: ->(_o) { p::Mailinator.generate_email("mail.fsmash.org", "mail-fsmash-org") },
|
|
591
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
592
|
+
},
|
|
593
|
+
"mailinatorzz-mooo-com" => {
|
|
594
|
+
generate: ->(_o) { p::Mailinator.generate_email("mailinatorzz.mooo.com", "mailinatorzz-mooo-com") },
|
|
595
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
596
|
+
},
|
|
597
|
+
"mi-meon-be" => {
|
|
598
|
+
generate: ->(_o) { p::Mailinator.generate_email("mi.meon.be", "mi-meon-be") },
|
|
599
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
600
|
+
},
|
|
601
|
+
"mn-curppa-com" => {
|
|
602
|
+
generate: ->(_o) { p::Mailinator.generate_email("mn.curppa.com", "mn-curppa-com") },
|
|
603
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
604
|
+
},
|
|
605
|
+
"m-nik-me" => {
|
|
606
|
+
generate: ->(_o) { p::Mailinator.generate_email("m.nik.me", "m-nik-me") },
|
|
607
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
608
|
+
},
|
|
609
|
+
"mtmdev-com" => {
|
|
610
|
+
generate: ->(_o) { p::Mailinator.generate_email("mtmdev.com", "mtmdev-com") },
|
|
611
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
612
|
+
},
|
|
613
|
+
"nospam-thurstons-us" => {
|
|
614
|
+
generate: ->(_o) { p::Mailinator.generate_email("nospam.thurstons.us", "nospam-thurstons-us") },
|
|
615
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
616
|
+
},
|
|
617
|
+
"notfond-404-mn" => {
|
|
618
|
+
generate: ->(_o) { p::Mailinator.generate_email("notfond.404.mn", "notfond-404-mn") },
|
|
619
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
620
|
+
},
|
|
621
|
+
"null-k3vin-net" => {
|
|
622
|
+
generate: ->(_o) { p::Mailinator.generate_email("null.k3vin.net", "null-k3vin-net") },
|
|
623
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
624
|
+
},
|
|
625
|
+
"ramjane-mooo-com" => {
|
|
626
|
+
generate: ->(_o) { p::Mailinator.generate_email("ramjane.mooo.com", "ramjane-mooo-com") },
|
|
627
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
628
|
+
},
|
|
629
|
+
"rauxa-seny-cat" => {
|
|
630
|
+
generate: ->(_o) { p::Mailinator.generate_email("rauxa.seny.cat", "rauxa-seny-cat") },
|
|
631
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
632
|
+
},
|
|
633
|
+
"really-istrash-com" => {
|
|
634
|
+
generate: ->(_o) { p::Mailinator.generate_email("really.istrash.com", "really-istrash-com") },
|
|
635
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
636
|
+
},
|
|
637
|
+
"spam-hortuk-ovh" => {
|
|
638
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.hortuk.ovh", "spam-hortuk-ovh") },
|
|
639
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
640
|
+
},
|
|
641
|
+
"sp-woot-at" => {
|
|
642
|
+
generate: ->(_o) { p::Mailinator.generate_email("sp.woot.at", "sp-woot-at") },
|
|
643
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
644
|
+
},
|
|
645
|
+
"test-unergie-com" => {
|
|
646
|
+
generate: ->(_o) { p::Mailinator.generate_email("test.unergie.com", "test-unergie-com") },
|
|
647
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
648
|
+
},
|
|
649
|
+
"torch-yi-org" => {
|
|
650
|
+
generate: ->(_o) { p::Mailinator.generate_email("torch.yi.org", "torch-yi-org") },
|
|
651
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
652
|
+
},
|
|
653
|
+
"t-zibet-net" => {
|
|
654
|
+
generate: ->(_o) { p::Mailinator.generate_email("t.zibet.net", "t-zibet-net") },
|
|
655
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
656
|
+
},
|
|
657
|
+
"sogetthis-com" => {
|
|
658
|
+
generate: ->(_o) { p::Mailinator.generate_email("sogetthis.com", "sogetthis-com") },
|
|
659
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
660
|
+
},
|
|
661
|
+
"bobmail-info" => {
|
|
662
|
+
generate: ->(_o) { p::Mailinator.generate_email("bobmail.info", "bobmail-info") },
|
|
663
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
664
|
+
},
|
|
665
|
+
"suremail-info" => {
|
|
666
|
+
generate: ->(_o) { p::Mailinator.generate_email("suremail.info", "suremail-info") },
|
|
667
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
668
|
+
},
|
|
669
|
+
"binkmail-com" => {
|
|
670
|
+
generate: ->(_o) { p::Mailinator.generate_email("binkmail.com", "binkmail-com") },
|
|
671
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
672
|
+
},
|
|
673
|
+
"veryrealemail-com" => {
|
|
674
|
+
generate: ->(_o) { p::Mailinator.generate_email("veryrealemail.com", "veryrealemail-com") },
|
|
675
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
676
|
+
},
|
|
677
|
+
"chammy-info" => {
|
|
678
|
+
generate: ->(_o) { p::Mailinator.generate_email("chammy.info", "chammy-info") },
|
|
679
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
680
|
+
},
|
|
681
|
+
"thisisnotmyrealemail-com" => {
|
|
682
|
+
generate: ->(_o) { p::Mailinator.generate_email("thisisnotmyrealemail.com", "thisisnotmyrealemail-com") },
|
|
683
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
684
|
+
},
|
|
685
|
+
"notmailinator-com" => {
|
|
686
|
+
generate: ->(_o) { p::Mailinator.generate_email("notmailinator.com", "notmailinator-com") },
|
|
687
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
688
|
+
},
|
|
689
|
+
"spamhereplease-com" => {
|
|
690
|
+
generate: ->(_o) { p::Mailinator.generate_email("spamhereplease.com", "spamhereplease-com") },
|
|
691
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
692
|
+
},
|
|
693
|
+
"sendspamhere-com" => {
|
|
694
|
+
generate: ->(_o) { p::Mailinator.generate_email("sendspamhere.com", "sendspamhere-com") },
|
|
695
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
696
|
+
},
|
|
697
|
+
"sendfree-org" => {
|
|
698
|
+
generate: ->(_o) { p::Mailinator.generate_email("sendfree.org", "sendfree-org") },
|
|
699
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
700
|
+
},
|
|
701
|
+
"junk-beats-org" => {
|
|
702
|
+
generate: ->(_o) { p::Mailinator.generate_email("junk.beats.org", "junk-beats-org") },
|
|
703
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
704
|
+
},
|
|
705
|
+
"junk-ihmehl-com" => {
|
|
706
|
+
generate: ->(_o) { p::Mailinator.generate_email("junk.ihmehl.com", "junk-ihmehl-com") },
|
|
707
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
708
|
+
},
|
|
709
|
+
"junk-noplay-org" => {
|
|
710
|
+
generate: ->(_o) { p::Mailinator.generate_email("junk.noplay.org", "junk-noplay-org") },
|
|
711
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
712
|
+
},
|
|
713
|
+
"junk-vanillasystem-com" => {
|
|
714
|
+
generate: ->(_o) { p::Mailinator.generate_email("junk.vanillasystem.com", "junk-vanillasystem-com") },
|
|
715
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
716
|
+
},
|
|
717
|
+
"spam-jasonpearce-com" => {
|
|
718
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.jasonpearce.com", "spam-jasonpearce-com") },
|
|
719
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
720
|
+
},
|
|
721
|
+
"fish-skytale-net" => {
|
|
722
|
+
generate: ->(_o) { p::Mailinator.generate_email("fish.skytale.net", "fish-skytale-net") },
|
|
723
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
724
|
+
},
|
|
725
|
+
"spam-mccrew-com" => {
|
|
726
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.mccrew.com", "spam-mccrew-com") },
|
|
727
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
728
|
+
},
|
|
729
|
+
"spam-coroiu-com" => {
|
|
730
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.coroiu.com", "spam-coroiu-com") },
|
|
731
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
732
|
+
},
|
|
733
|
+
"spam-deluser-net" => {
|
|
734
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.deluser.net", "spam-deluser-net") },
|
|
735
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
736
|
+
},
|
|
737
|
+
"spam-dhsf-net" => {
|
|
738
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.dhsf.net", "spam-dhsf-net") },
|
|
739
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
740
|
+
},
|
|
741
|
+
"spam-lucatnt-com" => {
|
|
742
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.lucatnt.com", "spam-lucatnt-com") },
|
|
743
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
744
|
+
},
|
|
745
|
+
"spam-lyceum-life-com-ru" => {
|
|
746
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.lyceum-life.com.ru", "spam-lyceum-life-com-ru") },
|
|
747
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
748
|
+
},
|
|
749
|
+
"spam-netpirates-net" => {
|
|
750
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.netpirates.net", "spam-netpirates-net") },
|
|
751
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
752
|
+
},
|
|
753
|
+
"spam-no-ip-net" => {
|
|
754
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.no-ip.net", "spam-no-ip-net") },
|
|
755
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
756
|
+
},
|
|
757
|
+
"spam-ozh-org" => {
|
|
758
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.ozh.org", "spam-ozh-org") },
|
|
759
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
760
|
+
},
|
|
761
|
+
"spam-pyphus-org" => {
|
|
762
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.pyphus.org", "spam-pyphus-org") },
|
|
763
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
764
|
+
},
|
|
765
|
+
"spam-shep-pw" => {
|
|
766
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.shep.pw", "spam-shep-pw") },
|
|
767
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
768
|
+
},
|
|
769
|
+
"spam-wtf-at" => {
|
|
770
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.wtf.at", "spam-wtf-at") },
|
|
771
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
772
|
+
},
|
|
773
|
+
"spam-wulczer-org" => {
|
|
774
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.wulczer.org", "spam-wulczer-org") },
|
|
775
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
776
|
+
},
|
|
777
|
+
"crap-kakadua-net" => {
|
|
778
|
+
generate: ->(_o) { p::Mailinator.generate_email("crap.kakadua.net", "crap-kakadua-net") },
|
|
779
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
780
|
+
},
|
|
781
|
+
"spam-janlugt-nl" => {
|
|
782
|
+
generate: ->(_o) { p::Mailinator.generate_email("spam.janlugt.nl", "spam-janlugt-nl") },
|
|
783
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
784
|
+
},
|
|
785
|
+
"min-burningfish-net" => {
|
|
786
|
+
generate: ->(_o) { p::Mailinator.generate_email("min.burningfish.net", "min-burningfish-net") },
|
|
787
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
788
|
+
},
|
|
789
|
+
"sink-fblay-com" => {
|
|
790
|
+
generate: ->(_o) { p::Mailinator.generate_email("sink.fblay.com", "sink-fblay-com") },
|
|
791
|
+
get_emails: ->(e, t) { p::Mailinator.get_emails(t.to_s, e) }
|
|
792
|
+
},
|
|
793
|
+
# catchmail 家族:主渠道随机域名,别名用固定域名
|
|
794
|
+
"catchmail" => {
|
|
795
|
+
generate: ->(o) { p::Catchmail.generate_email(o.domain) },
|
|
796
|
+
get_emails: ->(e, _t) { p::Catchmail.get_emails(e) }
|
|
797
|
+
},
|
|
798
|
+
"catchmail-mailistry" => {
|
|
799
|
+
generate: ->(_o) { with_channel(p::Catchmail.generate_email("mailistry.com"), "catchmail-mailistry") },
|
|
800
|
+
get_emails: ->(e, _t) { p::Catchmail.get_emails(e) }
|
|
801
|
+
},
|
|
802
|
+
"catchmail-zeppost" => {
|
|
803
|
+
generate: ->(_o) { with_channel(p::Catchmail.generate_email("zeppost.com"), "catchmail-zeppost") },
|
|
804
|
+
get_emails: ->(e, _t) { p::Catchmail.get_emails(e) }
|
|
805
|
+
},
|
|
806
|
+
# mailforspam 家族:主渠道随机域名,别名用固定域名
|
|
807
|
+
"mailforspam" => {
|
|
808
|
+
generate: ->(o) { p::Mailforspam.generate_email(o.domain) },
|
|
809
|
+
get_emails: ->(e, _t) { p::Mailforspam.get_emails(e) }
|
|
810
|
+
},
|
|
811
|
+
"mailforspam-tempmail-io" => {
|
|
812
|
+
generate: ->(_o) { with_channel(p::Mailforspam.generate_email("tempmail.io"), "mailforspam-tempmail-io") },
|
|
813
|
+
get_emails: ->(e, _t) { p::Mailforspam.get_emails(e) }
|
|
814
|
+
},
|
|
815
|
+
"mailforspam-disposable" => {
|
|
816
|
+
generate: ->(_o) { with_channel(p::Mailforspam.generate_email("disposable.email"), "mailforspam-disposable") },
|
|
817
|
+
get_emails: ->(e, _t) { p::Mailforspam.get_emails(e) }
|
|
818
|
+
},
|
|
819
|
+
# fake-legal 家族:主渠道随机域名,别名用 POST 自定义域
|
|
820
|
+
"fake-legal" => {
|
|
821
|
+
generate: ->(o) { p::FakeLegal.generate_email(o.domain) },
|
|
822
|
+
get_emails: ->(e, _t) { p::FakeLegal.get_emails(e) }
|
|
823
|
+
},
|
|
824
|
+
"imgui-de" => {
|
|
825
|
+
generate: ->(_o) { p::FakeLegal.generate_email("imgui.de", "imgui-de") },
|
|
826
|
+
get_emails: ->(e, _t) { p::FakeLegal.get_emails(e) }
|
|
827
|
+
},
|
|
828
|
+
"pulsewebmenu-de" => {
|
|
829
|
+
generate: ->(_o) { p::FakeLegal.generate_email("pulsewebmenu.de", "pulsewebmenu-de") },
|
|
830
|
+
get_emails: ->(e, _t) { p::FakeLegal.get_emails(e) }
|
|
831
|
+
},
|
|
832
|
+
# 10minute-one 家族:主渠道从 SSR 获取 JWT + 域名池,别名用固定域名
|
|
833
|
+
"10minute-one" => {
|
|
834
|
+
generate: ->(o) { p::TenminuteOne.generate_email(o.domain) },
|
|
835
|
+
get_emails: ->(e, t) { p::TenminuteOne.get_emails(e, require_token(t, "10minute-one")) }
|
|
836
|
+
},
|
|
837
|
+
"xghff-com" => {
|
|
838
|
+
generate: ->(_o) { with_channel(p::TenminuteOne.generate_email("xghff.com"), "xghff-com") },
|
|
839
|
+
get_emails: ->(e, t) { p::TenminuteOne.get_emails(e, require_token(t, "10minute-one")) }
|
|
840
|
+
},
|
|
841
|
+
"oqqaj-com" => {
|
|
842
|
+
generate: ->(_o) { with_channel(p::TenminuteOne.generate_email("oqqaj.com"), "oqqaj-com") },
|
|
843
|
+
get_emails: ->(e, t) { p::TenminuteOne.get_emails(e, require_token(t, "10minute-one")) }
|
|
844
|
+
},
|
|
845
|
+
"psovv-com" => {
|
|
846
|
+
generate: ->(_o) { with_channel(p::TenminuteOne.generate_email("psovv.com"), "psovv-com") },
|
|
847
|
+
get_emails: ->(e, t) { p::TenminuteOne.get_emails(e, require_token(t, "10minute-one")) }
|
|
848
|
+
},
|
|
849
|
+
"dbwot-com" => {
|
|
850
|
+
generate: ->(_o) { with_channel(p::TenminuteOne.generate_email("dbwot.com"), "dbwot-com") },
|
|
851
|
+
get_emails: ->(e, t) { p::TenminuteOne.get_emails(e, require_token(t, "10minute-one")) }
|
|
852
|
+
},
|
|
853
|
+
"ygwpr-com" => {
|
|
854
|
+
generate: ->(_o) { with_channel(p::TenminuteOne.generate_email("ygwpr.com"), "ygwpr-com") },
|
|
855
|
+
get_emails: ->(e, t) { p::TenminuteOne.get_emails(e, require_token(t, "10minute-one")) }
|
|
856
|
+
},
|
|
857
|
+
"imxwe-com" => {
|
|
858
|
+
generate: ->(_o) { with_channel(p::TenminuteOne.generate_email("imxwe.com"), "imxwe-com") },
|
|
859
|
+
get_emails: ->(e, t) { p::TenminuteOne.get_emails(e, require_token(t, "10minute-one")) }
|
|
860
|
+
},
|
|
861
|
+
# zhujump 家族:通过注册账号、登录后创建邮箱
|
|
862
|
+
"jqkjqk-xyz" => {
|
|
863
|
+
generate: ->(_o) { p::Zhujump.generate_email("jqkjqk.xyz", "jqkjqk-xyz") },
|
|
864
|
+
get_emails: ->(e, t) { p::Zhujump.get_emails(require_token(t, "jqkjqk-xyz"), e) }
|
|
865
|
+
},
|
|
866
|
+
"lyhlevi-com" => {
|
|
867
|
+
generate: ->(_o) { p::Zhujump.generate_email_for_instance("https://lyhlevi.com", "lyhlevi.com", "lyhlevi-com", 24 * 60 * 60 * 1000) },
|
|
868
|
+
get_emails: ->(e, t) { p::Zhujump.get_emails(require_token(t, "lyhlevi-com"), e) }
|
|
869
|
+
},
|
|
870
|
+
# shard-10-independent-simple-a 渠道绑定
|
|
871
|
+
"anonymmail" => {
|
|
872
|
+
generate: ->(_o) { p::Anonymmail.generate_email },
|
|
873
|
+
get_emails: ->(e, _t) { p::Anonymmail.get_emails(e) }
|
|
874
|
+
},
|
|
875
|
+
"byom" => {
|
|
876
|
+
generate: ->(_o) { p::Byom.generate_email },
|
|
877
|
+
get_emails: ->(e, _t) { p::Byom.get_emails(e) }
|
|
878
|
+
},
|
|
879
|
+
"cleantempmail" => {
|
|
880
|
+
generate: ->(_o) { p::Cleantempmail.generate_email },
|
|
881
|
+
get_emails: ->(e, _t) { p::Cleantempmail.get_emails(e) }
|
|
882
|
+
},
|
|
883
|
+
"devmail-uk" => {
|
|
884
|
+
generate: ->(_o) { p::DevmailUk.generate_email },
|
|
885
|
+
get_emails: ->(e, _t) { p::DevmailUk.get_emails(e) }
|
|
886
|
+
},
|
|
887
|
+
"dropmail-click" => {
|
|
888
|
+
generate: ->(_o) { p::DropmailClick.generate_email },
|
|
889
|
+
get_emails: ->(e, t) { p::DropmailClick.get_emails(t.to_s.empty? ? e : t) }
|
|
890
|
+
},
|
|
891
|
+
"fake-email-site" => {
|
|
892
|
+
generate: ->(_o) { p::FakeEmailSite.generate_email },
|
|
893
|
+
get_emails: ->(e, _t) { p::FakeEmailSite.get_emails(e) }
|
|
894
|
+
},
|
|
895
|
+
"fmail" => {
|
|
896
|
+
generate: ->(o) { p::Fmail.generate_email(o.domain) },
|
|
897
|
+
get_emails: ->(e, _t) { p::Fmail.get_emails(e) }
|
|
898
|
+
},
|
|
899
|
+
"freecustom" => {
|
|
900
|
+
generate: ->(_o) { p::Freecustom.generate_email },
|
|
901
|
+
get_emails: ->(e, t) { p::Freecustom.get_emails(t.to_s.empty? ? e : t) }
|
|
902
|
+
},
|
|
903
|
+
"gonebox-email" => {
|
|
904
|
+
generate: ->(_o) { p::GoneboxEmail.generate_email },
|
|
905
|
+
get_emails: ->(e, t) { p::GoneboxEmail.get_emails(t.to_s, e) }
|
|
906
|
+
},
|
|
907
|
+
"harakirimail" => {
|
|
908
|
+
generate: ->(_o) { p::Harakirimail.generate_email },
|
|
909
|
+
get_emails: ->(e, _t) { p::Harakirimail.get_emails(e) }
|
|
910
|
+
},
|
|
911
|
+
"inboxes" => {
|
|
912
|
+
generate: ->(o) { p::Inboxes.generate_email(o.domain) },
|
|
913
|
+
get_emails: ->(e, _t) { p::Inboxes.get_emails(e) }
|
|
914
|
+
},
|
|
915
|
+
"m2u" => {
|
|
916
|
+
generate: ->(_o) { p::M2u.generate_email },
|
|
917
|
+
get_emails: ->(e, t) { p::M2u.get_emails(t.to_s, e) }
|
|
918
|
+
},
|
|
919
|
+
"mail10s" => {
|
|
920
|
+
generate: ->(_o) { p::Mail10s.generate_email },
|
|
921
|
+
get_emails: ->(e, _t) { p::Mail10s.get_emails(e) }
|
|
922
|
+
},
|
|
923
|
+
"mail123" => {
|
|
924
|
+
generate: ->(_o) { p::Mail123.generate_email },
|
|
925
|
+
get_emails: ->(e, _t) { p::Mail123.get_emails(e) }
|
|
926
|
+
},
|
|
927
|
+
# shard-11-independent-simple-b 渠道绑定
|
|
928
|
+
"mffac" => {
|
|
929
|
+
generate: ->(_o) { p::Mffac.generate_email },
|
|
930
|
+
get_emails: ->(e, t) { p::Mffac.get_emails(e, t || "") }
|
|
931
|
+
},
|
|
932
|
+
"tempmailc" => {
|
|
933
|
+
generate: ->(_o) { p::Tempmailc.generate_email },
|
|
934
|
+
get_emails: ->(e, _t) { p::Tempmailc.get_emails(e) }
|
|
935
|
+
},
|
|
936
|
+
"neighbours-sh" => {
|
|
937
|
+
generate: ->(_o) { p::NeighboursSh.generate_email },
|
|
938
|
+
get_emails: ->(e, _t) { p::NeighboursSh.get_emails(e) }
|
|
939
|
+
},
|
|
940
|
+
"temporam" => {
|
|
941
|
+
generate: ->(o) { p::Temporam.generate_email(o.domain) },
|
|
942
|
+
get_emails: ->(e, t) { p::Temporam.get_emails(t, e) }
|
|
943
|
+
},
|
|
944
|
+
"neighbours" => {
|
|
945
|
+
generate: ->(o) { p::Neighbours.generate_email(o.domain) },
|
|
946
|
+
get_emails: ->(e, _t) { p::Neighbours.get_emails(e) }
|
|
947
|
+
},
|
|
948
|
+
"tempy-email" => {
|
|
949
|
+
generate: ->(o) { p::TempyEmail.generate_email(o.domain) },
|
|
950
|
+
get_emails: ->(e, _t) { p::TempyEmail.get_emails(e) }
|
|
951
|
+
},
|
|
952
|
+
"ockito" => {
|
|
953
|
+
generate: ->(_o) { p::Ockito.generate_email },
|
|
954
|
+
get_emails: ->(e, t) { p::Ockito.get_emails(require_token(t, "ockito"), e) }
|
|
955
|
+
},
|
|
956
|
+
"tempmail365" => {
|
|
957
|
+
generate: ->(o) { p::Tempmail365.generate_email(o.domain) },
|
|
958
|
+
get_emails: ->(e, _t) { p::Tempmail365.get_emails(e) }
|
|
959
|
+
},
|
|
960
|
+
"tempinbox" => {
|
|
961
|
+
generate: ->(o) { p::Tempinbox.generate_email(o.domain) },
|
|
962
|
+
get_emails: ->(e, _t) { p::Tempinbox.get_emails(e) }
|
|
963
|
+
},
|
|
964
|
+
"mail-sunls" => {
|
|
965
|
+
generate: ->(_o) { p::MailSunls.generate_email },
|
|
966
|
+
get_emails: ->(e, _t) { p::MailSunls.get_emails(e) }
|
|
967
|
+
},
|
|
968
|
+
"smailpro" => {
|
|
969
|
+
generate: ->(_o) { p::Smailpro.generate_email },
|
|
970
|
+
get_emails: ->(e, t) { p::Smailpro.get_emails(e, t || "") }
|
|
971
|
+
},
|
|
972
|
+
"mailhole-de" => {
|
|
973
|
+
generate: ->(_o) { p::MailholeDe.generate_email },
|
|
974
|
+
get_emails: ->(e, t) { p::MailholeDe.get_emails(t || e) }
|
|
975
|
+
},
|
|
976
|
+
"nimail" => {
|
|
977
|
+
generate: ->(_o) { p::Nimail.generate_email },
|
|
978
|
+
get_emails: ->(e, t) { p::Nimail.get_emails(t || e) }
|
|
979
|
+
},
|
|
980
|
+
# shard-09-independent-session-b 渠道绑定
|
|
981
|
+
"rootsh" => {
|
|
982
|
+
generate: ->(o) { p::Rootsh.generate_email(o.domain) },
|
|
983
|
+
get_emails: ->(e, t) { p::Rootsh.get_emails(require_token(t, "rootsh"), e) }
|
|
984
|
+
},
|
|
985
|
+
"shitty-email" => {
|
|
986
|
+
generate: ->(_o) { p::ShittyEmail.generate_email },
|
|
987
|
+
get_emails: ->(e, t) { p::ShittyEmail.get_emails(require_token(t, "shitty-email"), e) }
|
|
988
|
+
},
|
|
989
|
+
"ta-easy" => {
|
|
990
|
+
generate: ->(_o) { p::TaEasy.generate_email },
|
|
991
|
+
get_emails: ->(e, t) { p::TaEasy.get_emails(e, require_token(t, "ta-easy")) }
|
|
992
|
+
},
|
|
993
|
+
"temp-mail-now" => {
|
|
994
|
+
generate: ->(_o) { p::TempMailNow.generate_email },
|
|
995
|
+
get_emails: ->(e, t) { p::TempMailNow.get_emails(require_token(t, "temp-mail-now"), e) }
|
|
996
|
+
},
|
|
997
|
+
"temp-mail-org" => {
|
|
998
|
+
generate: ->(_o) { p::TempMailOrg.generate_email },
|
|
999
|
+
get_emails: ->(e, t) { p::TempMailOrg.get_emails(require_token(t, "temp-mail-org"), e) }
|
|
1000
|
+
},
|
|
1001
|
+
"tempemail-co" => {
|
|
1002
|
+
generate: ->(_o) { p::TempemailCo.generate_email },
|
|
1003
|
+
get_emails: ->(e, t) { p::TempemailCo.get_emails(e, require_token(t, "tempemail-co")) }
|
|
1004
|
+
},
|
|
1005
|
+
"tempemail-info" => {
|
|
1006
|
+
generate: ->(_o) { p::TempemailInfo.generate_email },
|
|
1007
|
+
get_emails: ->(e, t) { p::TempemailInfo.get_emails(e, require_token(t, "tempemail-info")) }
|
|
1008
|
+
},
|
|
1009
|
+
"tempemails-net" => {
|
|
1010
|
+
generate: ->(_o) { p::TempemailsNet.generate_email },
|
|
1011
|
+
get_emails: ->(e, t) { p::TempemailsNet.get_emails(e, require_token(t, "tempemails-net")) }
|
|
1012
|
+
},
|
|
1013
|
+
"tempfastmail" => {
|
|
1014
|
+
generate: ->(_o) { p::Tempfastmail.generate_email },
|
|
1015
|
+
get_emails: ->(e, t) { p::Tempfastmail.get_emails(require_token(t, "tempfastmail"), e) }
|
|
1016
|
+
},
|
|
1017
|
+
"tempgmailer" => {
|
|
1018
|
+
generate: ->(_o) { p::Tempgmailer.generate_email },
|
|
1019
|
+
get_emails: ->(e, t) { p::Tempgmailer.get_emails(require_token(t, "tempgmailer"), e) }
|
|
1020
|
+
},
|
|
1021
|
+
"tempgo-email" => {
|
|
1022
|
+
generate: ->(_o) { p::TempgoEmail.generate_email },
|
|
1023
|
+
get_emails: ->(e, t) { p::TempgoEmail.get_emails(require_token(t, "tempgo-email"), e) }
|
|
1024
|
+
},
|
|
1025
|
+
"tempmail-fish" => {
|
|
1026
|
+
generate: ->(_o) { p::TempmailFish.generate_email },
|
|
1027
|
+
get_emails: ->(e, t) { p::TempmailFish.get_emails(require_token(t, "tempmail-fish"), e) }
|
|
1028
|
+
},
|
|
1029
|
+
"tempmail-fyi" => {
|
|
1030
|
+
generate: ->(_o) { p::TempmailFyi.generate_email },
|
|
1031
|
+
get_emails: ->(e, t) { p::TempmailFyi.get_emails(e, require_token(t, "tempmail-fyi")) }
|
|
1032
|
+
},
|
|
1033
|
+
"tempmail-lol-v2" => {
|
|
1034
|
+
generate: ->(_o) { p::TempmailLolV2.generate_email },
|
|
1035
|
+
get_emails: ->(e, t) { p::TempmailLolV2.get_emails(require_token(t, "tempmail-lol-v2"), e) }
|
|
1036
|
+
},
|
|
1037
|
+
"tempmailpro" => {
|
|
1038
|
+
generate: ->(_o) { p::Tempmailpro.generate_email },
|
|
1039
|
+
get_emails: ->(e, t) { p::Tempmailpro.get_emails(require_token(t, "tempmailpro"), e) }
|
|
1040
|
+
},
|
|
1041
|
+
"tempmailten" => {
|
|
1042
|
+
generate: ->(_o) { p::Tempmailten.generate_email },
|
|
1043
|
+
get_emails: ->(e, t) { p::Tempmailten.get_emails(e, require_token(t, "tempmailten")) }
|
|
1044
|
+
},
|
|
1045
|
+
"tempp-mails" => {
|
|
1046
|
+
generate: ->(_o) { p::TempMails.generate_email },
|
|
1047
|
+
get_emails: ->(e, t) { p::TempMails.get_emails(e, require_token(t, "tempp-mails")) }
|
|
1048
|
+
},
|
|
1049
|
+
"ten-minute-mail-net" => {
|
|
1050
|
+
generate: ->(_o) { p::TenMinuteMailNet.generate_email },
|
|
1051
|
+
get_emails: ->(e, t) { p::TenMinuteMailNet.get_emails(require_token(t, "ten-minute-mail-net"), e) }
|
|
1052
|
+
},
|
|
1053
|
+
"throwawaymail" => {
|
|
1054
|
+
generate: ->(_o) { p::Throwawaymail.generate_email },
|
|
1055
|
+
get_emails: ->(e, t) { p::Throwawaymail.get_emails(require_token(t, "throwawaymail"), e) }
|
|
1056
|
+
},
|
|
1057
|
+
"tmail-link" => {
|
|
1058
|
+
generate: ->(_o) { p::TmailLink.generate_email },
|
|
1059
|
+
get_emails: ->(e, t) { p::TmailLink.get_emails(e, require_token(t, "tmail-link")) }
|
|
1060
|
+
},
|
|
1061
|
+
"uncorreotemporal" => {
|
|
1062
|
+
generate: ->(_o) { p::Uncorreotemporal.generate_email },
|
|
1063
|
+
get_emails: ->(e, t) { p::Uncorreotemporal.get_emails(require_token(t, "uncorreotemporal"), e) }
|
|
1064
|
+
},
|
|
1065
|
+
"webmailtemp" => {
|
|
1066
|
+
generate: ->(_o) { p::Webmailtemp.generate_email },
|
|
1067
|
+
get_emails: ->(e, t) { p::Webmailtemp.get_emails(require_token(t, "webmailtemp"), e) }
|
|
1068
|
+
},
|
|
1069
|
+
"xkx-me" => {
|
|
1070
|
+
generate: ->(_o) { p::XkxMe.generate_email },
|
|
1071
|
+
get_emails: ->(e, t) { p::XkxMe.get_emails(require_token(t, "xkx-me"), e) }
|
|
1072
|
+
},
|
|
1073
|
+
}
|
|
1074
|
+
end
|
|
1075
|
+
|
|
1076
|
+
# 依据有序渠道元数据构建注册表:有真实实现用真实实现,否则注册桩。
|
|
1077
|
+
# 顺序严格遵循 CHANNEL_DATA(= baseline),为硬约束。
|
|
1078
|
+
def build!
|
|
1079
|
+
return unless REGISTRY.empty?
|
|
1080
|
+
|
|
1081
|
+
impls = real_implementations
|
|
1082
|
+
CHANNEL_DATA.each do |slug, name, website|
|
|
1083
|
+
impl = impls[slug]
|
|
1084
|
+
spec = if impl
|
|
1085
|
+
ChannelSpec.new(channel: slug, name: name, website: website,
|
|
1086
|
+
generate: impl[:generate], get_emails: impl[:get_emails])
|
|
1087
|
+
else
|
|
1088
|
+
stub_spec(slug, name, website)
|
|
1089
|
+
end
|
|
1090
|
+
register_channel(spec)
|
|
1091
|
+
end
|
|
1092
|
+
end
|
|
1093
|
+
end
|
|
1094
|
+
|
|
1095
|
+
# 加载时立即构建注册表
|
|
1096
|
+
Registry.build!
|
|
1097
|
+
end
|