Как избежать ошибок с истекшим сроком выполнения при использовании гема 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

0 ответов

Другие вопросы по тегам