Как исправить проблему Net :: OpenTimeout при отправке электронных писем? - PullRequest
0 голосов
/ 21 апреля 2019

Я работаю с ruby ​​на rails 5.2, используя actionmailer, и в настоящее время он выбрасывает время выполнения, когда я пытаюсь отправить электронную почту. На Rails 3.2 это на самом деле работало, но в Rails 5.2 есть некоторые изменения, которые не позволяют почтовой программе работать так, как должно.

Я пробовал использовать доставку и доставку! чтобы решить это, но ни одна из этих команд не сработала. Я должен был закомментировать #enable_starttls_auto: true, так как это приводило меня к ошибкам повсюду.

Среда разработки:

#Google apps need to be disabled
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
     address: "smtp.gmail.com",
     port: 587,
     domain: "gmail.com",
     authentication: "login",
     #enable_starttls_auto: true,
     user_name: "myusername",
     password: "mypassword"
  }



config.action_mailer.default_url_options = { :host => "localhost:3000" }
end

вспомогательный метод для запуска

elsif(type == "verify2")
                  name_value = params[:session][:name].downcase
                  email_value = params[:session][:email].downcase
                  subject_value = params[:session][:subject]
                  body_value = params[:session][:body]
                  @name = name_value
                  @email = email_value
                  @subject = subject_value
                  @body = body_value
                  if(name_value.empty? || email_value.empty? || subject_value.empty? || body_value.empty?)
                     flash[:error] = "One of the parameters was empty please ensure all are filled in."
                  else
                     UserMailer.contact(@name, @email, @subject, @body).deliver_now
                     flash[:success] = "Your contact info has now been sent."
                  end
                  redirect_to root_path
               end

Контактный код пользователя:

def contact(name, email, subject, body)
      websiteMail = "notification@duelingpets.net"
      @name = name
      @email = email
      @subject = subject
      @body = body
      mail(to: "contactduelingpets@gmail.com", from: @email, subject: "A new contact was created by #{@name}:[Duelingpets]")
   end

Просмотр контактов с Usermailer

<!DOCTYPE html>
<html>
   <head>
      <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
   </head>
   <body>
      <h1>New contact created!</h1>
      <p>So this fellow <%= @name %> has taken the time to
         contact the admin and provided his email
         address: <%= @email %>. He has written a question
         that he like to know a bit more about.
      </p>
      <p>Question: <%= @subject %></p>
      <p>Message: <%= @body %></p>
      <br>
      <p>Please take the time to read over this question
         and answer it in your own time. They have decided
         to reach out to you.
      </p>
      <br>
      <p>Your friend Glitchy the Dragon</p>
   </body>
</html>

Я ожидаю, что администратор должен получать электронные письма от пользователей, которые отправляют в контактные формы, однако вместо этого время истекает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...