Fix rake bug.(Move functions inside namespace)
This commit is contained in:
parent
27deea2610
commit
80e1362ab6
|
@ -64,79 +64,80 @@ namespace :epaper do
|
||||||
paper.save
|
paper.save
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
def verify_email(from_addr,check_emails,tls) #true if check_email is ok
|
||||||
def verify_email(from_addr,check_emails,tls) #true if check_email is ok
|
s = Timeout.timeout(@open_timeout, Net::OpenTimeout) do
|
||||||
s = Timeout.timeout(@open_timeout, Net::OpenTimeout) do
|
TCPSocket.open(@address, @port)
|
||||||
TCPSocket.open(@address, @port)
|
|
||||||
end
|
|
||||||
@socket = new_internet_message_io(tls ? tlsconnect(s) : s)
|
|
||||||
res = get_response("MAIL FROM:<#{from_addr}>")
|
|
||||||
invalid_emails = []
|
|
||||||
check_list = []
|
|
||||||
if check_emails.class == String
|
|
||||||
if check_emails.include?(",")
|
|
||||||
check_list = check_emails.split(",")
|
|
||||||
else
|
|
||||||
check_list << check_emails
|
|
||||||
end
|
|
||||||
else
|
|
||||||
check_list = check_emails
|
|
||||||
end
|
|
||||||
check_list.each do |check_email|
|
|
||||||
res1 = get_response("RCPT TO:<#{check_email}>")
|
|
||||||
res2 = get_response("RCPT TO:<#{check_email}>")
|
|
||||||
if !(res1.success? && res2.success?)
|
|
||||||
invalid_emails << check_email
|
|
||||||
puts [check_email,res1.message,res2.message]
|
|
||||||
end
|
end
|
||||||
|
@socket = new_internet_message_io(tls ? tlsconnect(s) : s)
|
||||||
|
res = get_response("MAIL FROM:<#{from_addr}>")
|
||||||
|
invalid_emails = []
|
||||||
|
check_list = []
|
||||||
|
if check_emails.class == String
|
||||||
|
if check_emails.include?(",")
|
||||||
|
check_list = check_emails.split(",")
|
||||||
|
else
|
||||||
|
check_list << check_emails
|
||||||
|
end
|
||||||
|
else
|
||||||
|
check_list = check_emails
|
||||||
|
end
|
||||||
|
check_list.each do |check_email|
|
||||||
|
res1 = get_response("RCPT TO:<#{check_email}>")
|
||||||
|
res2 = get_response("RCPT TO:<#{check_email}>")
|
||||||
|
if !(res1.success? && res2.success?)
|
||||||
|
invalid_emails << check_email
|
||||||
|
puts [check_email,res1.message,res2.message]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
s.close
|
||||||
|
invalid_emails
|
||||||
|
end
|
||||||
|
def get_response(reqline)
|
||||||
|
res = critical {
|
||||||
|
@socket.writeline reqline
|
||||||
|
recv_response()
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
end
|
||||||
|
def recv_response
|
||||||
|
buf = ''
|
||||||
|
while true
|
||||||
|
line = @socket.readline
|
||||||
|
buf << line << "\n"
|
||||||
|
break unless line[3,1] == '-' # "210-PIPELINING"
|
||||||
|
end
|
||||||
|
Net::SMTP::Response.parse(buf)
|
||||||
|
end
|
||||||
|
def critical
|
||||||
|
return Net::SMTP::Response.parse('200 dummy reply code') if @error_occurred
|
||||||
|
begin
|
||||||
|
return yield()
|
||||||
|
rescue Exception
|
||||||
|
@error_occurred = true
|
||||||
|
raise
|
||||||
|
end
|
||||||
|
end
|
||||||
|
def ssl_socket(socket, context)
|
||||||
|
OpenSSL::SSL::SSLSocket.new socket, context
|
||||||
|
end
|
||||||
|
def tlsconnect(s)
|
||||||
|
verified = false
|
||||||
|
s = ssl_socket(s, @ssl_context)
|
||||||
|
s.sync_close = true
|
||||||
|
s.connect
|
||||||
|
if @ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE
|
||||||
|
s.post_connection_check(@address)
|
||||||
|
end
|
||||||
|
verified = true
|
||||||
|
s
|
||||||
|
ensure
|
||||||
|
s.close unless verified
|
||||||
|
end
|
||||||
|
def new_internet_message_io(s)
|
||||||
|
io = Net::InternetMessageIO.new(s)
|
||||||
|
io.read_timeout = @read_timeout
|
||||||
|
io.debug_output = @debug_output
|
||||||
|
io
|
||||||
end
|
end
|
||||||
s.close
|
|
||||||
invalid_emails
|
|
||||||
end
|
end
|
||||||
def get_response(reqline)
|
|
||||||
res = critical {
|
|
||||||
@socket.writeline reqline
|
|
||||||
recv_response()
|
|
||||||
}
|
|
||||||
return res
|
|
||||||
end
|
|
||||||
def recv_response
|
|
||||||
buf = ''
|
|
||||||
while true
|
|
||||||
line = @socket.readline
|
|
||||||
buf << line << "\n"
|
|
||||||
break unless line[3,1] == '-' # "210-PIPELINING"
|
|
||||||
end
|
|
||||||
Net::SMTP::Response.parse(buf)
|
|
||||||
end
|
|
||||||
def critical
|
|
||||||
return Net::SMTP::Response.parse('200 dummy reply code') if @error_occurred
|
|
||||||
begin
|
|
||||||
return yield()
|
|
||||||
rescue Exception
|
|
||||||
@error_occurred = true
|
|
||||||
raise
|
|
||||||
end
|
|
||||||
end
|
|
||||||
def ssl_socket(socket, context)
|
|
||||||
OpenSSL::SSL::SSLSocket.new socket, context
|
|
||||||
end
|
|
||||||
def tlsconnect(s)
|
|
||||||
verified = false
|
|
||||||
s = ssl_socket(s, @ssl_context)
|
|
||||||
s.sync_close = true
|
|
||||||
s.connect
|
|
||||||
if @ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE
|
|
||||||
s.post_connection_check(@address)
|
|
||||||
end
|
|
||||||
verified = true
|
|
||||||
s
|
|
||||||
ensure
|
|
||||||
s.close unless verified
|
|
||||||
end
|
|
||||||
def new_internet_message_io(s)
|
|
||||||
io = Net::InternetMessageIO.new(s)
|
|
||||||
io.read_timeout = @read_timeout
|
|
||||||
io.debug_output = @debug_output
|
|
||||||
io
|
|
||||||
end
|
|
Loading…
Reference in New Issue