tempmail_sdk 1.3.3 → 1.3.5

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.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/tempmail_sdk/channels.rb +29 -7
  4. data/lib/tempmail_sdk/channels_data.rb +29 -7
  5. data/lib/tempmail_sdk/providers/altmails.rb +99 -0
  6. data/lib/tempmail_sdk/providers/apihz.rb +138 -0
  7. data/lib/tempmail_sdk/providers/awamail.rb +95 -0
  8. data/lib/tempmail_sdk/providers/best_temp_mail.rb +77 -0
  9. data/lib/tempmail_sdk/providers/chatgpt_org_uk.rb +129 -0
  10. data/lib/tempmail_sdk/providers/clawdemail.rb +122 -0
  11. data/lib/tempmail_sdk/providers/crazymailing.rb +114 -0
  12. data/lib/tempmail_sdk/providers/disposablemail.rb +125 -0
  13. data/lib/tempmail_sdk/providers/disposablemail_app.rb +66 -0
  14. data/lib/tempmail_sdk/providers/email10min.rb +152 -0
  15. data/lib/tempmail_sdk/providers/emailnator.rb +132 -0
  16. data/lib/tempmail_sdk/providers/emailtemp_org.rb +131 -0
  17. data/lib/tempmail_sdk/providers/expressinboxhub.rb +118 -0
  18. data/lib/tempmail_sdk/providers/fakemail.rb +143 -0
  19. data/lib/tempmail_sdk/providers/firetempmail.rb +86 -0
  20. data/lib/tempmail_sdk/providers/flybymail.rb +93 -0
  21. data/lib/tempmail_sdk/providers/generator_email.rb +146 -0
  22. data/lib/tempmail_sdk/providers/haribu.rb +29 -3
  23. data/lib/tempmail_sdk/providers/huskmail.rb +132 -0
  24. data/lib/tempmail_sdk/providers/internxt.rb +176 -0
  25. data/lib/tempmail_sdk/providers/linshi_xyz.rb +79 -0
  26. data/lib/tempmail_sdk/providers/linshiyouxiang_net.rb +85 -0
  27. data/lib/tempmail_sdk/providers/mail_sunls.rb +42 -1
  28. data/lib/tempmail_sdk/providers/mail_td.rb +161 -0
  29. data/lib/tempmail_sdk/providers/mailcat_ai.rb +52 -0
  30. data/lib/tempmail_sdk/providers/maildrop.rb +79 -4
  31. data/lib/tempmail_sdk/providers/mailgolem.rb +96 -0
  32. data/lib/tempmail_sdk/providers/mailinator.rb +9 -2
  33. data/lib/tempmail_sdk/providers/mailmomy.rb +1 -1
  34. data/lib/tempmail_sdk/providers/mailtemp_cc.rb +91 -0
  35. data/lib/tempmail_sdk/providers/mailticking.rb +139 -0
  36. data/lib/tempmail_sdk/providers/minuteinbox.rb +174 -0
  37. data/lib/tempmail_sdk/providers/moakt.rb +29 -3
  38. data/lib/tempmail_sdk/providers/mtempmail.rb +140 -0
  39. data/lib/tempmail_sdk/providers/mytempmail_cc.rb +76 -0
  40. data/lib/tempmail_sdk/providers/nowtempmail.rb +112 -0
  41. data/lib/tempmail_sdk/providers/noxen_de5_net.rb +392 -0
  42. data/lib/tempmail_sdk/providers/nukemail.rb +188 -0
  43. data/lib/tempmail_sdk/providers/nullmail.rb +95 -0
  44. data/lib/tempmail_sdk/providers/openinbox.rb +102 -0
  45. data/lib/tempmail_sdk/providers/shadowmail.rb +174 -0
  46. data/lib/tempmail_sdk/providers/shitpost_email.rb +85 -0
  47. data/lib/tempmail_sdk/providers/smail_pw.rb +156 -0
  48. data/lib/tempmail_sdk/providers/smails.rb +128 -0
  49. data/lib/tempmail_sdk/providers/socketio_mail.rb +25 -0
  50. data/lib/tempmail_sdk/providers/temp_mail_gg.rb +362 -0
  51. data/lib/tempmail_sdk/providers/tempgbox.rb +118 -0
  52. data/lib/tempmail_sdk/providers/tempmail100.rb +148 -0
  53. data/lib/tempmail_sdk/providers/tempmail_cn.rb +111 -0
  54. data/lib/tempmail_sdk/providers/tempmail_ee.rb +373 -0
  55. data/lib/tempmail_sdk/providers/tempmailportal.rb +131 -0
  56. data/lib/tempmail_sdk/providers/tempmails_io.rb +89 -0
  57. data/lib/tempmail_sdk/providers/tempmailto.rb +312 -0
  58. data/lib/tempmail_sdk/providers/temporarymail_com.rb +184 -0
  59. data/lib/tempmail_sdk/providers/tenmin_app.rb +100 -0
  60. data/lib/tempmail_sdk/providers/tenminutemail_net.rb +183 -0
  61. data/lib/tempmail_sdk/providers/thirty_min_email.rb +90 -0
  62. data/lib/tempmail_sdk/providers/tmpkit.rb +129 -0
  63. data/lib/tempmail_sdk/providers/twentyfourmail_chacuo.rb +83 -0
  64. data/lib/tempmail_sdk/providers/vip_215.rb +171 -0
  65. data/lib/tempmail_sdk/providers/zerodrop.rb +90 -0
  66. data/lib/tempmail_sdk/registry.rb +285 -23
  67. data/lib/tempmail_sdk/types.rb +13 -0
  68. data/lib/tempmail_sdk/version.rb +1 -1
  69. data/lib/tempmail_sdk.rb +1 -1
  70. metadata +58 -6
  71. data/lib/tempmail_sdk/providers/gonebox_email.rb +0 -89
  72. data/lib/tempmail_sdk/providers/temp_mail_now.rb +0 -103
  73. data/lib/tempmail_sdk/providers/webmailtemp.rb +0 -108
@@ -18,20 +18,44 @@ module TempmailSdk
18
18
  Mailforspam: "mailforspam", FakeLegal: "fake_legal", TenminuteOne: "tenminute_one",
19
19
  Zhujump: "zhujump", Anonymmail: "anonymmail", Byom: "byom", Cleantempmail: "cleantempmail",
20
20
  DevmailUk: "devmail_uk", DropmailClick: "dropmail_click", FakeEmailSite: "fake_email_site",
21
- Fmail: "fmail", Freecustom: "freecustom", GoneboxEmail: "gonebox_email",
21
+ Fmail: "fmail", Freecustom: "freecustom",
22
22
  Harakirimail: "harakirimail", Inboxes: "inboxes", M2u: "m2u", Mail10s: "mail10s",
23
23
  Mail123: "mail123", Mffac: "mffac", Tempmailc: "tempmailc", NeighboursSh: "neighbours_sh",
24
24
  Temporam: "temporam", Neighbours: "neighbours", TempyEmail: "tempy_email", Ockito: "ockito",
25
25
  Tempmail365: "tempmail365", Tempinbox: "tempinbox", MailSunls: "mail_sunls",
26
26
  Smailpro: "smailpro", MailholeDe: "mailhole_de", Nimail: "nimail", Rootsh: "rootsh",
27
- ShittyEmail: "shitty_email", TaEasy: "ta_easy", TempMailNow: "temp_mail_now",
27
+ ShittyEmail: "shitty_email", TaEasy: "ta_easy",
28
28
  TempMailOrg: "temp_mail_org", TempemailCo: "tempemail_co", TempemailInfo: "tempemail_info",
29
29
  TempemailsNet: "tempemails_net", Tempfastmail: "tempfastmail", Tempgmailer: "tempgmailer",
30
30
  TempgoEmail: "tempgo_email", TempmailFish: "tempmail_fish", TempmailFyi: "tempmail_fyi",
31
31
  TempmailLolV2: "tempmail_lol_v2", Tempmailpro: "tempmailpro", Tempmailten: "tempmailten",
32
32
  TempMails: "tempp_mails", TenMinuteMailNet: "ten_minute_mail_net",
33
33
  Throwawaymail: "throwawaymail", TmailLink: "tmail_link",
34
- Uncorreotemporal: "uncorreotemporal", Webmailtemp: "webmailtemp", XkxMe: "xkx_me"
34
+ Uncorreotemporal: "uncorreotemporal", XkxMe: "xkx_me",
35
+ Altmails: "altmails", Apihz: "apihz", Awamail: "awamail", BestTempMail: "best_temp_mail",
36
+ ChatgptOrgUk: "chatgpt_org_uk", Disposablemail: "disposablemail",
37
+ DisposablemailApp: "disposablemail_app", Email10min: "email10min",
38
+ Emailnator: "emailnator", EmailtempOrg: "emailtemp_org",
39
+ Expressinboxhub: "expressinboxhub", Fakemail: "fakemail",
40
+ LinshiyouxiangNet: "linshiyouxiang_net", MailTd: "mail_td",
41
+ TempmailCn: "tempmail_cn", Linshiyou: "linshiyou", Mailnesia: "mailnesia",
42
+ Dropmail: "dropmail", SmailPw: "smail_pw", Vip215: "vip_215",
43
+ Tempgbox: "tempgbox", Anonbox: "anonbox", Eyepaste: "eyepaste",
44
+ Lroid: "lroid", Haribu: "haribu", Mailgolem: "mailgolem",
45
+ MytempmailCc: "mytempmail_cc", MailtempCc: "mailtemp_cc", Minuteinbox: "minuteinbox",
46
+ Mailcatch: "mailcatch", MaildropCc: "maildrop_cc", TenminutemailNet: "tenminutemail_net",
47
+ Openinbox: "openinbox", MailcatAi: "mailcat_ai", DropmailMe: "dropmail_me",
48
+ TwentyfourmailChacuo: "twentyfourmail_chacuo",
49
+ TempmailsIo: "tempmails_io", ShitpostEmail: "shitpost_email", Smails: "smails",
50
+ Tempmailportal: "tempmailportal", Huskmail: "huskmail", Zerodrop: "zerodrop",
51
+ Firetempmail: "firetempmail", Nullmail: "nullmail", TenminApp: "tenmin_app",
52
+ Mtempmail: "mtempmail", TempmailEe: "tempmail_ee", Mailticking: "mailticking",
53
+ TemporarymailCom: "temporarymail_com", ThirtyMinEmail: "thirty_min_email",
54
+ LinshiXyz: "linshi_xyz", Crazymailing: "crazymailing", NoxenDe5Net: "noxen_de5_net",
55
+ Nukemail: "nukemail", Shadowmail: "shadowmail", Flybymail: "flybymail",
56
+ Nowtempmail: "nowtempmail", Clawdemail: "clawdemail", Tempmail100: "tempmail100",
57
+ Tempmailto: "tempmailto", TempMailGg: "temp_mail_gg",
58
+ Tmpkit: "tmpkit", Internxt: "internxt", GeneratorEmail: "generator_email"
35
59
  }.freeze
36
60
 
37
61
  PROVIDER_AUTOLOADS.each do |mod_name, file|
@@ -449,10 +473,6 @@ module TempmailSdk
449
473
  get_emails: ->(e, t) { p::Getnada.get_emails(require_token(t, "getnada"), e) }
450
474
  },
451
475
  # 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
476
  "17666688-shop" => {
457
477
  generate: ->(_o) { with_channel(p::Mailmomy.generate_email("17666688.shop"), "17666688-shop") },
458
478
  get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
@@ -473,10 +493,6 @@ module TempmailSdk
473
493
  generate: ->(_o) { with_channel(p::Mailmomy.generate_email("easyme.pro"), "easyme-pro") },
474
494
  get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
475
495
  },
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
496
  "layueming-pics" => {
481
497
  generate: ->(_o) { with_channel(p::Mailmomy.generate_email("layueming.pics"), "layueming-pics") },
482
498
  get_emails: ->(e, _t) { p::Mailmomy.get_emails(e) }
@@ -900,10 +916,6 @@ module TempmailSdk
900
916
  generate: ->(_o) { p::Freecustom.generate_email },
901
917
  get_emails: ->(e, t) { p::Freecustom.get_emails(t.to_s.empty? ? e : t) }
902
918
  },
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
919
  "harakirimail" => {
908
920
  generate: ->(_o) { p::Harakirimail.generate_email },
909
921
  get_emails: ->(e, _t) { p::Harakirimail.get_emails(e) }
@@ -990,10 +1002,6 @@ module TempmailSdk
990
1002
  generate: ->(_o) { p::TaEasy.generate_email },
991
1003
  get_emails: ->(e, t) { p::TaEasy.get_emails(e, require_token(t, "ta-easy")) }
992
1004
  },
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
1005
  "temp-mail-org" => {
998
1006
  generate: ->(_o) { p::TempMailOrg.generate_email },
999
1007
  get_emails: ->(e, t) { p::TempMailOrg.get_emails(require_token(t, "temp-mail-org"), e) }
@@ -1062,14 +1070,268 @@ module TempmailSdk
1062
1070
  generate: ->(_o) { p::Uncorreotemporal.generate_email },
1063
1071
  get_emails: ->(e, t) { p::Uncorreotemporal.get_emails(require_token(t, "uncorreotemporal"), e) }
1064
1072
  },
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
1073
  "xkx-me" => {
1070
1074
  generate: ->(_o) { p::XkxMe.generate_email },
1071
1075
  get_emails: ->(e, t) { p::XkxMe.get_emails(require_token(t, "xkx-me"), e) }
1072
1076
  },
1077
+ "tempmail-cn" => {
1078
+ generate: ->(o) { p::TempmailCn.generate_email(o.domain) },
1079
+ get_emails: ->(e, _t) { p::TempmailCn.get_emails(e) }
1080
+ },
1081
+ "linshiyou" => {
1082
+ generate: ->(_o) { p::Linshiyou.generate_email },
1083
+ get_emails: ->(e, t) { p::Linshiyou.get_emails(require_token(t, "linshiyou"), e) }
1084
+ },
1085
+ "mailnesia" => {
1086
+ generate: ->(_o) { p::Mailnesia.generate_email },
1087
+ get_emails: ->(e, _t) { p::Mailnesia.get_emails(e) }
1088
+ },
1089
+ "dropmail" => {
1090
+ generate: ->(_o) { p::Dropmail.generate_email },
1091
+ get_emails: ->(e, t) { p::Dropmail.get_emails(require_token(t, "dropmail"), e) }
1092
+ },
1093
+ "smail-pw" => {
1094
+ generate: ->(_o) { p::SmailPw.generate_email },
1095
+ get_emails: ->(e, t) { p::SmailPw.get_emails(require_token(t, "smail-pw"), e) }
1096
+ },
1097
+ "vip-215" => {
1098
+ generate: ->(_o) { p::Vip215.generate_email },
1099
+ get_emails: ->(e, t) { p::Vip215.get_emails(require_token(t, "vip-215"), e) }
1100
+ },
1101
+ "tempgbox" => {
1102
+ generate: ->(_o) { p::Tempgbox.generate_email },
1103
+ get_emails: ->(e, t) { p::Tempgbox.get_emails(require_token(t, "tempgbox"), e) }
1104
+ },
1105
+ "emailnator" => {
1106
+ generate: ->(_o) { p::Emailnator.generate_email },
1107
+ get_emails: ->(e, t) { p::Emailnator.get_emails(e, require_token(t, "emailnator")) }
1108
+ },
1109
+ "anonbox" => {
1110
+ generate: ->(_o) { p::Anonbox.generate_email },
1111
+ get_emails: ->(e, t) { p::Anonbox.get_emails(require_token(t, "anonbox"), e) }
1112
+ },
1113
+ "eyepaste" => {
1114
+ generate: ->(_o) { p::Eyepaste.generate_email },
1115
+ get_emails: ->(e, _t) { p::Eyepaste.get_emails(e) }
1116
+ },
1117
+ "lroid" => {
1118
+ generate: ->(_o) { p::Lroid.generate_email },
1119
+ get_emails: ->(e, t) { p::Lroid.get_emails(require_token(t, "lroid"), e) }
1120
+ },
1121
+ "haribu" => {
1122
+ generate: ->(_o) { p::Haribu.generate_email },
1123
+ get_emails: ->(e, t) { p::Haribu.get_emails(require_token(t, "haribu"), e) }
1124
+ },
1125
+ "mailgolem" => {
1126
+ generate: ->(_o) { p::Mailgolem.generate_email },
1127
+ get_emails: ->(e, t) { p::Mailgolem.get_emails(e, require_token(t, "mailgolem")) }
1128
+ },
1129
+ "best-temp-mail" => {
1130
+ generate: ->(_o) { p::BestTempMail.generate_email },
1131
+ get_emails: ->(e, t) { p::BestTempMail.get_emails(e, require_token(t, "best-temp-mail")) }
1132
+ },
1133
+ "disposablemail-app" => {
1134
+ generate: ->(_o) { p::DisposablemailApp.generate_email },
1135
+ get_emails: ->(e, t) { p::DisposablemailApp.get_emails(e, require_token(t, "disposablemail-app")) }
1136
+ },
1137
+ "mailtemp-cc" => {
1138
+ generate: ->(_o) { p::MailtempCc.generate_email },
1139
+ get_emails: ->(e, t) { p::MailtempCc.get_emails(e, require_token(t, "mailtemp-cc")) }
1140
+ },
1141
+ "minuteinbox" => {
1142
+ generate: ->(_o) { p::Minuteinbox.generate_email },
1143
+ get_emails: ->(e, t) { p::Minuteinbox.get_emails(require_token(t, "minuteinbox"), e) }
1144
+ },
1145
+ "mailcatch" => {
1146
+ generate: ->(_o) { p::Mailcatch.generate_email },
1147
+ get_emails: ->(e, t) { p::Mailcatch.get_emails(e, require_token(t, "mailcatch")) }
1148
+ },
1149
+ "altmails" => {
1150
+ generate: ->(_o) { p::Altmails.generate_email },
1151
+ get_emails: ->(e, t) { p::Altmails.get_emails(e, require_token(t, "altmails")) }
1152
+ },
1153
+ "maildrop-cc" => {
1154
+ generate: ->(_o) { p::MaildropCc.generate_email },
1155
+ get_emails: ->(e, t) { p::MaildropCc.get_emails(e, t || "") }
1156
+ },
1157
+ "10minutemail-net" => {
1158
+ generate: ->(_o) { p::TenminutemailNet.generate_email },
1159
+ get_emails: ->(e, t) { p::TenminutemailNet.get_emails(e, require_token(t, "10minutemail-net")) }
1160
+ },
1161
+ "linshiyouxiang-net" => {
1162
+ generate: ->(_o) { p::LinshiyouxiangNet.generate_email },
1163
+ get_emails: ->(e, t) { p::LinshiyouxiangNet.get_emails(e, require_token(t, "linshiyouxiang-net")) }
1164
+ },
1165
+ "disposablemail-com" => {
1166
+ generate: ->(_o) { p::Disposablemail.generate_email },
1167
+ get_emails: ->(e, t) { p::Disposablemail.get_emails(e, require_token(t, "disposablemail-com")) }
1168
+ },
1169
+ "emailtemp-org" => {
1170
+ generate: ->(_o) { p::EmailtempOrg.generate_email },
1171
+ get_emails: ->(e, t) { p::EmailtempOrg.get_emails(e, require_token(t, "emailtemp-org")) }
1172
+ },
1173
+ "mytempmail-cc" => {
1174
+ generate: ->(_o) { p::MytempmailCc.generate_email },
1175
+ get_emails: ->(e, t) { p::MytempmailCc.get_emails(require_token(t, "mytempmail-cc"), e) }
1176
+ },
1177
+ "mail-td" => {
1178
+ generate: ->(_o) { p::MailTd.generate_email },
1179
+ get_emails: ->(e, t) { p::MailTd.get_emails(require_token(t, "mail-td"), e) }
1180
+ },
1181
+ "24mail-chacuo" => {
1182
+ generate: ->(_o) { p::TwentyfourmailChacuo.generate_email },
1183
+ get_emails: ->(e, _t) { p::TwentyfourmailChacuo.get_emails(e) }
1184
+ },
1185
+ "apihz" => {
1186
+ generate: ->(_o) { p::Apihz.generate_email },
1187
+ get_emails: ->(_e, t) { p::Apihz.get_emails(require_token(t, "apihz")) }
1188
+ },
1189
+ "mailcat-ai" => {
1190
+ generate: ->(_o) { p::MailcatAi.generate_email },
1191
+ get_emails: ->(e, t) { p::MailcatAi.get_emails(require_token(t, "mailcat-ai"), e) }
1192
+ },
1193
+ "dropmail-me" => {
1194
+ generate: ->(_o) { p::DropmailMe.generate_email },
1195
+ get_emails: ->(e, t) { p::DropmailMe.get_emails(require_token(t, "dropmail-me"), e) }
1196
+ },
1197
+ "openinbox" => {
1198
+ generate: ->(_o) { p::Openinbox.generate_email },
1199
+ get_emails: ->(e, t) { p::Openinbox.get_emails(require_token(t, "openinbox"), e) }
1200
+ },
1201
+ "chatgpt-org-uk" => {
1202
+ generate: ->(_o) { p::ChatgptOrgUk.generate_email },
1203
+ get_emails: ->(e, t) { p::ChatgptOrgUk.get_emails(e, require_token(t, "chatgpt-org-uk")) }
1204
+ },
1205
+ "expressinboxhub" => {
1206
+ generate: ->(_o) { p::Expressinboxhub.generate_email },
1207
+ get_emails: ->(e, t) { p::Expressinboxhub.get_emails(e, require_token(t, "expressinboxhub")) }
1208
+ },
1209
+ "fakemail" => {
1210
+ generate: ->(_o) { p::Fakemail.generate_email },
1211
+ get_emails: ->(e, t) { p::Fakemail.get_emails(require_token(t, "fakemail"), e) }
1212
+ },
1213
+ "awamail" => {
1214
+ generate: ->(_o) { p::Awamail.generate_email },
1215
+ get_emails: ->(e, t) { p::Awamail.get_emails(require_token(t, "awamail"), e) }
1216
+ },
1217
+ "email10min" => {
1218
+ generate: ->(_o) { p::Email10min.generate_email },
1219
+ get_emails: ->(e, t) { p::Email10min.get_emails(e, require_token(t, "email10min")) }
1220
+ },
1221
+ # 渠道追加批次:与 baseline 尾部 11 个新增渠道一一对应(顺序固定)
1222
+ "tempmails-io" => {
1223
+ generate: ->(_o) { p::TempmailsIo.generate_email },
1224
+ get_emails: ->(e, t) { p::TempmailsIo.get_emails(e, require_token(t, "tempmails-io")) }
1225
+ },
1226
+ "shitpost-email" => {
1227
+ generate: ->(_o) { p::ShitpostEmail.generate_email },
1228
+ get_emails: ->(e, t) { p::ShitpostEmail.get_emails(e, require_token(t, "shitpost-email")) }
1229
+ },
1230
+ "smails" => {
1231
+ generate: ->(_o) { p::Smails.generate_email },
1232
+ get_emails: ->(e, t) { p::Smails.get_emails(require_token(t, "smails"), e) }
1233
+ },
1234
+ "tempmailportal" => {
1235
+ generate: ->(_o) { p::Tempmailportal.generate_email },
1236
+ get_emails: ->(e, t) { p::Tempmailportal.get_emails(require_token(t, "tempmailportal"), e) }
1237
+ },
1238
+ "huskmail" => {
1239
+ generate: ->(_o) { p::Huskmail.generate_email },
1240
+ get_emails: ->(e, t) { p::Huskmail.get_emails(require_token(t, "huskmail"), e) }
1241
+ },
1242
+ "zerodrop" => {
1243
+ generate: ->(_o) { p::Zerodrop.generate_email },
1244
+ get_emails: ->(e, t) { p::Zerodrop.get_emails(e, t) }
1245
+ },
1246
+ "firetempmail" => {
1247
+ generate: ->(_o) { p::Firetempmail.generate_email },
1248
+ get_emails: ->(e, t) { p::Firetempmail.get_emails(e, t) }
1249
+ },
1250
+ "nullmail" => {
1251
+ generate: ->(_o) { p::Nullmail.generate_email },
1252
+ get_emails: ->(e, t) { p::Nullmail.get_emails(e, t) }
1253
+ },
1254
+ "tenmin-app" => {
1255
+ generate: ->(_o) { p::TenminApp.generate_email },
1256
+ get_emails: ->(e, t) { p::TenminApp.get_emails(e, require_token(t, "tenmin-app")) }
1257
+ },
1258
+ "mtempmail" => {
1259
+ generate: ->(_o) { p::Mtempmail.generate_email },
1260
+ get_emails: ->(e, t) { p::Mtempmail.get_emails(e, t) }
1261
+ },
1262
+ "tempmail-ee" => {
1263
+ generate: ->(_o) { p::TempmailEe.generate_email },
1264
+ get_emails: ->(e, t) { p::TempmailEe.get_emails(e, require_token(t, "tempmail-ee")) }
1265
+ },
1266
+ "mailticking" => {
1267
+ generate: ->(_o) { p::Mailticking.generate_email },
1268
+ get_emails: ->(e, t) { p::Mailticking.get_emails(e, require_token(t, "mailticking")) }
1269
+ },
1270
+ # 渠道追加批次:与 baseline 尾部 11 个新增渠道一一对应(顺序固定)
1271
+ "temporarymail-com" => {
1272
+ generate: ->(_o) { p::TemporarymailCom.generate_email },
1273
+ get_emails: ->(e, t) { p::TemporarymailCom.get_emails(e, require_token(t, "temporarymail-com")) }
1274
+ },
1275
+ "30minemail" => {
1276
+ generate: ->(_o) { p::ThirtyMinEmail.generate_email },
1277
+ get_emails: ->(e, t) { p::ThirtyMinEmail.get_emails(e, require_token(t, "30minemail")) }
1278
+ },
1279
+ "linshi-xyz" => {
1280
+ generate: ->(_o) { p::LinshiXyz.generate_email },
1281
+ get_emails: ->(e, t) { p::LinshiXyz.get_emails(e, require_token(t, "linshi-xyz")) }
1282
+ },
1283
+ "crazymailing" => {
1284
+ generate: ->(_o) { p::Crazymailing.generate_email },
1285
+ get_emails: ->(e, t) { p::Crazymailing.get_emails(e, require_token(t, "crazymailing")) }
1286
+ },
1287
+ "noxen-de5-net" => {
1288
+ generate: ->(o) { p::NoxenDe5Net.generate_email(o.domain) },
1289
+ get_emails: ->(e, t) { p::NoxenDe5Net.get_emails(e, require_token(t, "noxen-de5-net")) }
1290
+ },
1291
+ "nukemail" => {
1292
+ generate: ->(_o) { p::Nukemail.generate_email },
1293
+ get_emails: ->(e, t) { p::Nukemail.get_emails(e, require_token(t, "nukemail")) }
1294
+ },
1295
+ "shadowmail" => {
1296
+ generate: ->(_o) { p::Shadowmail.generate_email },
1297
+ get_emails: ->(e, t) { p::Shadowmail.get_emails(e, require_token(t, "shadowmail")) }
1298
+ },
1299
+ "flybymail" => {
1300
+ generate: ->(_o) { p::Flybymail.generate_email },
1301
+ get_emails: ->(e, t) { p::Flybymail.get_emails(e, require_token(t, "flybymail")) }
1302
+ },
1303
+ "nowtempmail" => {
1304
+ generate: ->(_o) { p::Nowtempmail.generate_email },
1305
+ get_emails: ->(e, t) { p::Nowtempmail.get_emails(e, require_token(t, "nowtempmail")) }
1306
+ },
1307
+ "clawdemail" => {
1308
+ generate: ->(_o) { p::Clawdemail.generate_email },
1309
+ get_emails: ->(e, t) { p::Clawdemail.get_emails(e, require_token(t, "clawdemail")) }
1310
+ },
1311
+ "tempmail100" => {
1312
+ generate: ->(_o) { p::Tempmail100.generate_email },
1313
+ get_emails: ->(e, t) { p::Tempmail100.get_emails(e, require_token(t, "tempmail100")) }
1314
+ },
1315
+ "tempmailto" => {
1316
+ generate: ->(_o) { p::Tempmailto.generate_email },
1317
+ get_emails: ->(e, t) { p::Tempmailto.get_emails(e, require_token(t, "tempmailto")) }
1318
+ },
1319
+ "temp-mail-gg" => {
1320
+ generate: ->(_o) { p::TempMailGg.generate_email },
1321
+ get_emails: ->(e, t) { p::TempMailGg.get_emails(e, require_token(t, "temp-mail-gg")) }
1322
+ },
1323
+ "tmpkit" => {
1324
+ generate: ->(_o) { p::Tmpkit.generate_email },
1325
+ get_emails: ->(e, t) { p::Tmpkit.get_emails(e, require_token(t, "tmpkit")) }
1326
+ },
1327
+ "internxt" => {
1328
+ generate: ->(_o) { p::Internxt.generate_email },
1329
+ get_emails: ->(e, t) { p::Internxt.get_emails(e, require_token(t, "internxt")) }
1330
+ },
1331
+ "generator-email" => {
1332
+ generate: ->(_o) { p::GeneratorEmail.generate_email },
1333
+ get_emails: ->(e, t) { p::GeneratorEmail.get_emails(e, require_token(t, "generator-email")) }
1334
+ },
1073
1335
  }
1074
1336
  end
1075
1337
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "time"
4
+
3
5
  module TempmailSdk
4
6
  # 创建临时邮箱后返回的邮箱信息
5
7
  # Token 等认证信息由 SDK 内部维护,不对外暴露(token 通过私有读取器访问)
@@ -78,6 +80,17 @@ module TempmailSdk
78
80
  end
79
81
  # rubocop:enable Metrics/ParameterLists
80
82
 
83
+ # 发信地址的域名部分;无法从 from_addr 提取时返回空串
84
+ # @return [String]
85
+ def from_domain
86
+ addr = from_addr.to_s
87
+ if (m = addr.match(/<?([^@\s<>]+)@([^@\s<>]+)>?/))
88
+ return m[2]
89
+ end
90
+
91
+ ""
92
+ end
93
+
81
94
  def to_h
82
95
  {
83
96
  id: @id, from_addr: @from_addr, to: @to, subject: @subject,
@@ -2,5 +2,5 @@
2
2
 
3
3
  module TempmailSdk
4
4
  # SDK 版本号
5
- VERSION = "1.3.3"
5
+ VERSION = "1.3.5"
6
6
  end
data/lib/tempmail_sdk.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # 临时邮箱 SDK (Ruby)
4
- # 聚合 279 个第三方临时邮箱渠道,所有渠道返回统一标准化格式。
4
+ # 聚合 296 个第三方临时邮箱渠道,所有渠道返回统一标准化格式。
5
5
  # 与 Go / npm / Rust / Python / C / PHP 各端共享相同的渠道标识与顺序。
6
6
 
7
7
  require_relative "tempmail_sdk/version"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tempmail_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.3
4
+ version: 1.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - tempmail-sdk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-07-22 00:00:00.000000000 Z
11
+ date: 2026-09-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: 五端(Go/npm/Rust/Python/C)之外的 Ruby 版临时邮箱 SDK,共享相同的渠道标识与顺序,提供统一的 Email 结构、渠道
14
14
  fallback、代理/超时/TLS/遥测配置。
@@ -27,87 +27,139 @@ files:
27
27
  - lib/tempmail_sdk/http.rb
28
28
  - lib/tempmail_sdk/logger.rb
29
29
  - lib/tempmail_sdk/normalize.rb
30
+ - lib/tempmail_sdk/providers/altmails.rb
30
31
  - lib/tempmail_sdk/providers/anonbox.rb
31
32
  - lib/tempmail_sdk/providers/anonymmail.rb
33
+ - lib/tempmail_sdk/providers/apihz.rb
34
+ - lib/tempmail_sdk/providers/awamail.rb
35
+ - lib/tempmail_sdk/providers/best_temp_mail.rb
32
36
  - lib/tempmail_sdk/providers/byom.rb
33
37
  - lib/tempmail_sdk/providers/catchmail.rb
38
+ - lib/tempmail_sdk/providers/chatgpt_org_uk.rb
39
+ - lib/tempmail_sdk/providers/clawdemail.rb
34
40
  - lib/tempmail_sdk/providers/cleantempmail.rb
41
+ - lib/tempmail_sdk/providers/crazymailing.rb
35
42
  - lib/tempmail_sdk/providers/devmail_uk.rb
43
+ - lib/tempmail_sdk/providers/disposablemail.rb
44
+ - lib/tempmail_sdk/providers/disposablemail_app.rb
36
45
  - lib/tempmail_sdk/providers/dropmail.rb
37
46
  - lib/tempmail_sdk/providers/dropmail_click.rb
38
47
  - lib/tempmail_sdk/providers/dropmail_me.rb
39
48
  - lib/tempmail_sdk/providers/duckmail.rb
49
+ - lib/tempmail_sdk/providers/email10min.rb
50
+ - lib/tempmail_sdk/providers/emailnator.rb
51
+ - lib/tempmail_sdk/providers/emailtemp_org.rb
52
+ - lib/tempmail_sdk/providers/expressinboxhub.rb
40
53
  - lib/tempmail_sdk/providers/eyepaste.rb
41
54
  - lib/tempmail_sdk/providers/fake_email_site.rb
42
55
  - lib/tempmail_sdk/providers/fake_legal.rb
56
+ - lib/tempmail_sdk/providers/fakemail.rb
57
+ - lib/tempmail_sdk/providers/firetempmail.rb
58
+ - lib/tempmail_sdk/providers/flybymail.rb
43
59
  - lib/tempmail_sdk/providers/fmail.rb
44
60
  - lib/tempmail_sdk/providers/freecustom.rb
61
+ - lib/tempmail_sdk/providers/generator_email.rb
45
62
  - lib/tempmail_sdk/providers/getnada.rb
46
- - lib/tempmail_sdk/providers/gonebox_email.rb
47
63
  - lib/tempmail_sdk/providers/guerrillamail.rb
48
64
  - lib/tempmail_sdk/providers/guerrillamail_mirrors.rb
49
65
  - lib/tempmail_sdk/providers/harakirimail.rb
50
66
  - lib/tempmail_sdk/providers/haribu.rb
67
+ - lib/tempmail_sdk/providers/huskmail.rb
51
68
  - lib/tempmail_sdk/providers/inboxes.rb
52
69
  - lib/tempmail_sdk/providers/inboxkitten.rb
70
+ - lib/tempmail_sdk/providers/internxt.rb
71
+ - lib/tempmail_sdk/providers/linshi_xyz.rb
53
72
  - lib/tempmail_sdk/providers/linshiyou.rb
73
+ - lib/tempmail_sdk/providers/linshiyouxiang_net.rb
54
74
  - lib/tempmail_sdk/providers/lroid.rb
55
75
  - lib/tempmail_sdk/providers/m2u.rb
56
76
  - lib/tempmail_sdk/providers/mail10s.rb
57
77
  - lib/tempmail_sdk/providers/mail123.rb
58
78
  - lib/tempmail_sdk/providers/mail_cx.rb
59
79
  - lib/tempmail_sdk/providers/mail_sunls.rb
80
+ - lib/tempmail_sdk/providers/mail_td.rb
60
81
  - lib/tempmail_sdk/providers/mail_tm.rb
82
+ - lib/tempmail_sdk/providers/mailcat_ai.rb
61
83
  - lib/tempmail_sdk/providers/mailcatch.rb
62
84
  - lib/tempmail_sdk/providers/maildrop.rb
63
85
  - lib/tempmail_sdk/providers/maildrop_cc.rb
64
86
  - lib/tempmail_sdk/providers/mailforspam.rb
87
+ - lib/tempmail_sdk/providers/mailgolem.rb
65
88
  - lib/tempmail_sdk/providers/mailhole_de.rb
66
89
  - lib/tempmail_sdk/providers/mailinator.rb
67
90
  - lib/tempmail_sdk/providers/mailmomy.rb
68
91
  - lib/tempmail_sdk/providers/mailnesia.rb
92
+ - lib/tempmail_sdk/providers/mailtemp_cc.rb
93
+ - lib/tempmail_sdk/providers/mailticking.rb
69
94
  - lib/tempmail_sdk/providers/mffac.rb
95
+ - lib/tempmail_sdk/providers/minuteinbox.rb
70
96
  - lib/tempmail_sdk/providers/moakt.rb
97
+ - lib/tempmail_sdk/providers/mtempmail.rb
98
+ - lib/tempmail_sdk/providers/mytempmail_cc.rb
71
99
  - lib/tempmail_sdk/providers/neighbours.rb
72
100
  - lib/tempmail_sdk/providers/neighbours_sh.rb
73
101
  - lib/tempmail_sdk/providers/nimail.rb
102
+ - lib/tempmail_sdk/providers/nowtempmail.rb
103
+ - lib/tempmail_sdk/providers/noxen_de5_net.rb
104
+ - lib/tempmail_sdk/providers/nukemail.rb
105
+ - lib/tempmail_sdk/providers/nullmail.rb
74
106
  - lib/tempmail_sdk/providers/ockito.rb
75
107
  - lib/tempmail_sdk/providers/one_sec_mail.rb
108
+ - lib/tempmail_sdk/providers/openinbox.rb
76
109
  - lib/tempmail_sdk/providers/restmail_net.rb
77
110
  - lib/tempmail_sdk/providers/rootsh.rb
111
+ - lib/tempmail_sdk/providers/shadowmail.rb
112
+ - lib/tempmail_sdk/providers/shitpost_email.rb
78
113
  - lib/tempmail_sdk/providers/shitty_email.rb
114
+ - lib/tempmail_sdk/providers/smail_pw.rb
79
115
  - lib/tempmail_sdk/providers/smailpro.rb
116
+ - lib/tempmail_sdk/providers/smails.rb
117
+ - lib/tempmail_sdk/providers/socketio_mail.rb
80
118
  - lib/tempmail_sdk/providers/ta_easy.rb
119
+ - lib/tempmail_sdk/providers/temp_mail_gg.rb
81
120
  - lib/tempmail_sdk/providers/temp_mail_io.rb
82
- - lib/tempmail_sdk/providers/temp_mail_now.rb
83
121
  - lib/tempmail_sdk/providers/temp_mail_org.rb
84
122
  - lib/tempmail_sdk/providers/tempemail_co.rb
85
123
  - lib/tempmail_sdk/providers/tempemail_info.rb
86
124
  - lib/tempmail_sdk/providers/tempemails_net.rb
87
125
  - lib/tempmail_sdk/providers/tempfastmail.rb
126
+ - lib/tempmail_sdk/providers/tempgbox.rb
88
127
  - lib/tempmail_sdk/providers/tempgmailer.rb
89
128
  - lib/tempmail_sdk/providers/tempgo_email.rb
90
129
  - lib/tempmail_sdk/providers/tempinbox.rb
91
130
  - lib/tempmail_sdk/providers/tempmail.rb
131
+ - lib/tempmail_sdk/providers/tempmail100.rb
92
132
  - lib/tempmail_sdk/providers/tempmail365.rb
133
+ - lib/tempmail_sdk/providers/tempmail_cn.rb
134
+ - lib/tempmail_sdk/providers/tempmail_ee.rb
93
135
  - lib/tempmail_sdk/providers/tempmail_fish.rb
94
136
  - lib/tempmail_sdk/providers/tempmail_fyi.rb
95
137
  - lib/tempmail_sdk/providers/tempmail_lol.rb
96
138
  - lib/tempmail_sdk/providers/tempmail_lol_v2.rb
97
139
  - lib/tempmail_sdk/providers/tempmail_plus.rb
98
140
  - lib/tempmail_sdk/providers/tempmailc.rb
141
+ - lib/tempmail_sdk/providers/tempmailportal.rb
99
142
  - lib/tempmail_sdk/providers/tempmailpro.rb
143
+ - lib/tempmail_sdk/providers/tempmails_io.rb
100
144
  - lib/tempmail_sdk/providers/tempmailten.rb
145
+ - lib/tempmail_sdk/providers/tempmailto.rb
101
146
  - lib/tempmail_sdk/providers/temporam.rb
147
+ - lib/tempmail_sdk/providers/temporarymail_com.rb
102
148
  - lib/tempmail_sdk/providers/tempp_mails.rb
103
149
  - lib/tempmail_sdk/providers/tempy_email.rb
104
150
  - lib/tempmail_sdk/providers/ten_minute_mail_net.rb
151
+ - lib/tempmail_sdk/providers/tenmin_app.rb
105
152
  - lib/tempmail_sdk/providers/tenminute_one.rb
153
+ - lib/tempmail_sdk/providers/tenminutemail_net.rb
154
+ - lib/tempmail_sdk/providers/thirty_min_email.rb
106
155
  - lib/tempmail_sdk/providers/throwawaymail.rb
107
156
  - lib/tempmail_sdk/providers/tmail_link.rb
157
+ - lib/tempmail_sdk/providers/tmpkit.rb
158
+ - lib/tempmail_sdk/providers/twentyfourmail_chacuo.rb
108
159
  - lib/tempmail_sdk/providers/uncorreotemporal.rb
109
- - lib/tempmail_sdk/providers/webmailtemp.rb
160
+ - lib/tempmail_sdk/providers/vip_215.rb
110
161
  - lib/tempmail_sdk/providers/xkx_me.rb
162
+ - lib/tempmail_sdk/providers/zerodrop.rb
111
163
  - lib/tempmail_sdk/providers/zhujump.rb
112
164
  - lib/tempmail_sdk/registry.rb
113
165
  - lib/tempmail_sdk/retry.rb
@@ -138,5 +190,5 @@ requirements: []
138
190
  rubygems_version: 3.4.19
139
191
  signing_key:
140
192
  specification_version: 4
141
- summary: 临时邮箱 SDK,聚合 279 个第三方临时邮箱渠道,返回统一标准化格式
193
+ summary: 临时邮箱 SDK,聚合 296 个第三方临时邮箱渠道,返回统一标准化格式
142
194
  test_files: []
@@ -1,89 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module TempmailSdk
4
- module Providers
5
- # gonebox.email 渠道实现
6
- # 一次性临时邮箱服务,无需认证
7
- module GoneboxEmail
8
- CHANNEL = "gonebox-email"
9
- BASE_URL = "https://api.gonebox.email/api/v1"
10
- HEADERS = {
11
- "User-Agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 " \
12
- "(KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",
13
- "Accept" => "application/json",
14
- "Content-Type" => "application/json"
15
- }.freeze
16
-
17
- module_function
18
-
19
- # @return [EmailInfo]
20
- def generate_email
21
- resp = Http.post(
22
- "#{BASE_URL}/inboxes",
23
- headers: HEADERS,
24
- json: { "domain" => "gonebox.email" },
25
- timeout: 15
26
- )
27
- resp.raise_for_status
28
- body = resp.json
29
- raise "gonebox-email: create failed" unless body.is_a?(Hash) && body["success"]
30
-
31
- data = body["data"]
32
- raise "gonebox-email: invalid data" unless data.is_a?(Hash)
33
-
34
- address = data["address"].to_s
35
- raise "gonebox-email: missing address" if address.empty?
36
-
37
- # expiresAt 为秒级时间戳,转为毫秒
38
- expires_at = nil
39
- raw_expires = data["expiresAt"]
40
- if raw_expires
41
- begin
42
- expires_at = raw_expires.to_i * 1000
43
- rescue StandardError
44
- # 忽略
45
- end
46
- end
47
-
48
- EmailInfo.new(channel: CHANNEL, email: address, token: "", expires_at: expires_at)
49
- end
50
-
51
- # @param token [String]
52
- # @param email [String]
53
- # @return [Array<Email>]
54
- def get_emails(token, email)
55
- address = email.to_s.strip
56
- raise "gonebox-email: missing email" if address.empty?
57
-
58
- headers = HEADERS.reject { |k, _| k == "Content-Type" }
59
- resp = Http.get("#{BASE_URL}/inboxes/#{address}/messages", headers: headers, timeout: 15)
60
- return [] if resp.status_code == 404
61
-
62
- resp.raise_for_status
63
- body = resp.json
64
- return [] unless body.is_a?(Hash) && body["success"]
65
-
66
- data = body["data"]
67
- return [] unless data.is_a?(Hash)
68
-
69
- messages = data["messages"]
70
- return [] unless messages.is_a?(Array) && !messages.empty?
71
-
72
- messages.select { |m| m.is_a?(Hash) }.map do |msg|
73
- raw = {
74
- "id" => msg["id"].to_s,
75
- "from" => (msg["from"] || msg["sender"]).to_s,
76
- "to" => address,
77
- "subject" => msg["subject"].to_s,
78
- "text" => (msg["text"] || msg["body_plain"]).to_s,
79
- "html" => (msg["html"] || msg["body_html"]).to_s,
80
- "date" => (msg["date"] || msg["received_at"]).to_s,
81
- "is_read" => false,
82
- "attachments" => []
83
- }
84
- Normalize.normalize_email(raw, address)
85
- end
86
- end
87
- end
88
- end
89
- end