Module: TempmailSdk::Providers::DevmailUk
- Defined in:
- lib/tempmail_sdk/providers/devmail_uk.rb
Overview
devmail.uk 渠道实现
Constant Summary collapse
- CHANNEL =
"devmail-uk"- API_BASE =
"https://www.devmail.uk/api"- HEADERS =
{ "Accept" => "application/json" }.freeze
Class Method Summary collapse
Class Method Details
.generate_email ⇒ EmailInfo
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/tempmail_sdk/providers/devmail_uk.rb', line 22 def generate_email resp = Http.get("#{API_BASE}/new", headers: HEADERS, timeout: 15) resp.raise_for_status data = resp.json raise "devmail-uk: invalid new email response" unless data.is_a?(Hash) email = data["email"].to_s.strip if email.empty? && !data["mailbox"].to_s.strip.empty? email = "#{data['mailbox'].to_s.strip}@devmail.uk" end raise "devmail-uk: invalid new email response" if email.empty? || !email.include?("@") EmailInfo.new(channel: CHANNEL, email: email) end |
.get_emails(email) ⇒ Array<Email>
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/tempmail_sdk/providers/devmail_uk.rb', line 39 def get_emails(email) mailbox = mailbox_from_email(email) raise "devmail-uk: empty email" if mailbox.empty? resp = Http.get( "#{API_BASE}/inbox/#{URI.encode_www_form_component(mailbox)}?detail=true", headers: HEADERS, timeout: 15 ) resp.raise_for_status data = resp.json return [] unless data.is_a?(Hash) rows = data["emails"] return [] unless rows.is_a?(Array) rows.select { |r| r.is_a?(Hash) }.map { |item| Normalize.normalize_email(item, email) } end |
.mailbox_from_email(email) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/tempmail_sdk/providers/devmail_uk.rb', line 13 def mailbox_from_email(email) address = email.to_s.strip return "" if address.empty? return address.split("@", 2).first.to_s.strip if address.include?("@") address end |