2015-04-24 78 views
0

如何使用ruby在rails上检查电子邮件地址?如何查看电子邮件地址是否有效?

有没有宝石插件?

任何我能找到的电子邮件地址都是实时的。

+0

你检查https://github.com/kamilc/email_verifier宝石? –

+0

我是一名网页设计师,所以对后端代码不太了解。但对于你的问题,我认为有一些东西。检查它“gmail-smtp-in”。 –

回答

1

看看这个Email validator based on DNS集成在ActiveModel::Validator这意味着你可以在Rails应用程序中使用它:

require 'resolv' 

class EmailValidator < ActiveModel::EachValidator 
    def validate_each(record, attribute, value) 
    if Resolv::DNS.new.getresources(value.split("@").last, Resolv::DNS::Resource::IN::MX).empty? 
     record.errors[attribute] << (options[:message] || "does not have a valid domain") 
    end 
    rescue Resolv::ResolvError, Resolv::ResolvTimeout 
    record.errors[attribute] << (options[:message] || "does not have a valid domain") 
    end 
end 

And this code i use in my sent email script

require 'resolv' 

module MailMachine 
    class Validator 
    def initialize(name) 
     @name = name.split('@').last 
    end 

    def servers_list 
     Resolv::DNS.open.getresources(@name, Resolv::DNS::Resource::IN::MX).map do |resolv| 
     resolv.exchange.to_s 
     end  
    end 

    def server 
     servers_list.find do |name| 
     Resolv.getaddress(name) =~ Resolv::AddressRegex 
     end 
    rescue Resolv::ResolvError => e 
     #holly molyy 
     return false if e.is_a? Exception 
    end 
    end 
end 
相关问题