2011-08-18 5 views
1

일부 이메일의 실제 존재를 확인하는 루비 스크립트를 만들려고합니다. email_veracity_checker을 찾았지만 간단한 테스트를 어떻게 구현하는지 이해할 수 없습니다. 은 "추가 정보"파일은 말한다 다음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("[email protected]","[email protected]","joshsoftware.com").valid? 

그것의 반환이 "참 또는 거짓이 될 수

누군가가 나를 도울 수 감사

를?

답변

2

당신은 무엇을 시도 했습니까? 매우 간단합니다. 당신이 할 때와 마찬가지로 SMTP 연결을 설정하는 것입니다. 메일을 보내십시오.

I'ld 좋아하는 메일에 ... @ ... COM

대부분의를 보낼 : 특정 시점에서의 SMTP 접속에, 서버는 다음과 같이 말한다 이 주소가 존재하지 않으면 서버는 오류를 리턴합니다. 이 후 일반 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, "[email protected]", self.mail.split('@')[1]).valid? 
      errors.add :mail, "is invalid." 
     end 
    end 
end 
+0

답장을 보내 주셔서 감사합니다. 나는 루비의 초보자입니다. 그리고 저는 가능한 가장 간단한 방법을 원합니다. 내가 당신의 코드를 사용하고 싶다면 나는 무엇을 더 포함해야합니까? 보석이나 다른 요구 사항을 설치 하시겠습니까? –

+0

어떤 ORM (Object Relation Mapper)를 사용하고 있습니까? 기본적으로 이것은 ActiveRecord (PostgreSQL 또는 SQLlite3)입니다. – elslooo

1

것은, 당신이 뭔가를 할 수 이렇게. 그 보석의 lib에있는 이메일 확인을 요구하십시오.

require 'email_check.rb' 

is_valid = EmailCheck.run("[email protected]", "[email protected]", "joshsoftware.com").valid? 

puts "is valid: #{is_valid}" 
+0

테스트와 함께하는이 작업은'joshsoftware'라고 말합니다.하지만 테스트하고 싶은 주소로 바꿀 때, 모든 개방 연결을 보여주는 대신에'false'를 보냅니다 ... 당신은 어떤 생각을 가지고 있습니까? – Orsay

관련 문제