2011-01-15 12 views

risposta

36

Se si preferisce usare una libreria dedicata alla comprensione di queste cose:

→ irb -rmail 
ruby-1.9.2-p0 > Mail::Address.new('[email protected]').domain 
=> "example.com" 
+2

gran lunga preferito sopra una spaccatura a mio parere. Grazie! –

+2

Sembra che questa libreria non sia stata aggiornata tra 5 anni e (almeno per me) non funzioni con ruby2. –

+4

@AndyHayden [Mail] (https://rubygems.org/gems/mail) viene mantenuto e funziona con Ruby 2.0 e 2.1. Le rotaie dipendono da questa gemma quindi deve funzionare con i Rubini recenti. Molto probabilmente una delle tue gemme introduce dei vincoli di versione che ti impediscono di utilizzare la versione Mail più recente. – skalee

1
>> email = "Sahil Grover<[email protected]>"   
    => "Sahil Grover<[email protected]>" 

    >> mail = Mail::Address.new(email)   
    => #<Mail::Address:75152940 Address: |Sahil Grover <[email protected]>| > 

    >> mail.instance_values   
    => {"output_type"=>:decode, 
     "parsed"=>true, 
    "data"=>#<struct Mail::Parsers::AddressStruct 
    raw="Sahil Grover<[email protected]>", 
    domain="stackoverflow.com", 
    comments=[], 
    local="sahil+test", 
    obs_domain_list=nil, 
    display_name="Sahil Grover", 
    group=nil, 
    error=nil>, 
    "display_name"=>"Sahil Grover"} 

    >> mail.domain   
    => "stackoverflow.com" 
+0

Se si esegue un benchmark/ips [questa versione è 32.26x più lenta] (https://gist.github.com/benoittgt/79ef8152e2e78fb09b99) – Mio

Problemi correlati