Как избежать ошибок с истекшим сроком выполнения при использовании гема mail
Я работаю над веб-мастером, который будет еженедельно рассылать CSV с новым контентом с Ruby. Для компонента почтовой рассылки я решил использовать гем Mail. После долгих попыток я получил несколько тестовых писем. Тем не менее, я часто получаю эту ошибку:
...smtp.rb:541:in `initialize': execution expired (Net::OpenTimeout)...
У меня разумное подключение к Интернету, и я не смог обнаружить какой-либо шаблон с ошибкой. Вот мой код для почтовой программы:
require 'mail'
def sendEmail(newEventCount, newEventArray)
if newEventArray.to_a.empty? == true
emailBodyText = "No new events were added this week."
else
newEventString = "The new events are: "
newEventArray.each do |event|
newEventString = newEventString + event + "\n"
end
emailBodyText = "#{newEventCount} events were added this week. #{newEventString}"
end
options = { :address => "smtp.gmail.com",
:port => 587,
:domain => '(my public ip address according to google)',
:user_name => '(my username)',
:password => '(my password)',
:authentication => 'plain',
:enable_starttls_auto => true }
Mail.defaults do
delivery_method :smtp, options
end
mail = Mail.new do
from '(my email)'
to '(recipient email)'
subject 'Weekly Scrape Results'
body emailBodyText
add_file './events.csv'
end
mail.deliver!
end