我正在尝试创建一个检查某些电子邮件真实存在的ruby脚本。
我找到了email_veracity_checker
,但我不明白如何实现一个简单的测试。
“自述文件”文件仅说明以下内容:
# Add following entry in your config/environment.rb
config.gem 'email_veracity_checker', :lib => "email_check"
使用方法:
#first param is user email address
#second sender address
#third param is domain address
#Note: It's not sending email, at the end point they quit connection.
EmailCheck.run("kiran@joshsoftware.com","no-reply@joshsoftware.com","joshsoftware.com").valid?
它的回报可能是真是假“
有人能帮助我吗? 感谢
答案 0 :(得分:2)
你有什么尝试?看起来很简单。 它的作用是设置SMTP连接,就像发送邮件时一样。在某个时刻,在SMTP连接中,您的服务器会这样说:
我想发送邮件给... @ .... com
当此地址不存在时,大多数服务器将返回错误。在此之后,正常的SMTP连接可以自由发送实际的邮件正文。但是,此类在此时关闭连接,因此不会发送任何邮件。
但是,在发送引用邮件之前,需要指定发件人的邮件。这就是你需要指定它的原因。除此之外,您还需要定义所有者的邮件域,因为EHLO
有效负载需要它。
做这样的事情怎么样(我正在使用mongo_mapper
,所以在你的情况下可能会有所不同):
class User
include MongoMapper::document
...
key mail, String, :required => true
...
validate :validate_mail
...
def validate_mail
if !EmailCheck.run(self.mail, "no-reply@yourdomain.com", self.mail.split('@')[1]).valid?
errors.add :mail, "is invalid."
end
end
end
答案 1 :(得分:1)
如果你需要它用于ruby脚本,你可以做这样的事情。只需要在该宝石的库中找到电子邮件检查。
require 'email_check.rb'
is_valid = EmailCheck.run("kiran@joshsoftware.com", "no-reply@joshsoftware.com", "joshsoftware.com").valid?
puts "is valid: #{is_valid}"