From 743444dffffd4bd801a00ad02f84a33a236cbd1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B1=E5=8D=9A=E4=BA=9E?= Date: Sun, 15 Sep 2024 11:00:37 +0800 Subject: [PATCH] Fix mail verify. --- lib/tasks/e_paper_tasks.rake | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/lib/tasks/e_paper_tasks.rake b/lib/tasks/e_paper_tasks.rake index 30e95d7..e606e58 100644 --- a/lib/tasks/e_paper_tasks.rake +++ b/lib/tasks/e_paper_tasks.rake @@ -32,8 +32,13 @@ namespace :epaper do Thread.new do tmp = [] site = Site.first - @address = site['site_settings']['address'] - @port = (site['site_settings']['port'].to_i rescue 587) + if site[:gmail_login_flag] + @address = '127.0.0.1' + @port = 25 + else + @address = site['site_settings']['address'] + @port = (site['site_settings']['port'].to_i rescue 587) + end @open_timeout = 10 @read_timeout = 60 @debug_output = nil @@ -72,8 +77,14 @@ namespace :epaper do end end def epaper_verify_email(from_addr,check_emails,tls) #true if check_email is ok - s = Timeout.timeout(@open_timeout, Net::OpenTimeout) do - TCPSocket.open(@address, @port) + return [] if @mail_server_broken + begin + s = Timeout.timeout(@open_timeout, Net::OpenTimeout) do + TCPSocket.open(@address, @port) + end + rescue => e + puts [e.to_s, e.backtrace] + @mail_server_broken = true end @socket = epaper_new_internet_message_io(tls ? epaper_tlsconnect(s) : s) res = epaper_get_response("MAIL FROM:<#{from_addr}>")