Module: TempmailSdk::Providers::FakeEmailSite
- Defined in:
- lib/tempmail_sdk/providers/fake_email_site.rb
Overview
fake-email.site 渠道实现 JSON REST API:创建临时邮箱 + 轮询收件箱
Constant Summary collapse
- CHANNEL =
"fake-email-site"- BASE =
"https://api.fake-email.site"- HEADERS =
{ "Accept" => "application/json", "Content-Type" => "application/json", "User-Agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" }.freeze
Class Method Summary collapse
Class Method Details
.generate_email ⇒ EmailInfo
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/tempmail_sdk/providers/fake_email_site.rb', line 19 def generate_email resp = Http.post("#{BASE}/api/temporary-address", headers: HEADERS, json: {}) resp.raise_for_status data = resp.json raise "fake-email-site: invalid response" unless data.is_a?(Hash) email = (data["temp_email_addr"] || "").to_s.strip raise "fake-email-site: missing temp_email_addr" if email.empty? EmailInfo.new(channel: CHANNEL, email: email, token: email) end |
.get_emails(email) ⇒ Array<Email>
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/tempmail_sdk/providers/fake_email_site.rb', line 33 def get_emails(email) resp = Http.get("#{BASE}/api/inbox/poll?address=#{email}", headers: HEADERS) return [] if resp.status_code == 404 resp.raise_for_status data = resp.json return [] unless data.is_a?(Hash) rows = data["messages"] return [] unless rows.is_a?(Array) rows.select { |r| r.is_a?(Hash) }.map { |row| Normalize.normalize_email(row, email) } end |