21

ユーザーを作成しようとすると、本番環境でこのエラーが発生します(devise gemを使用しています)。

EOFError (end of file reached):

以前にこの問題に遭遇しましたが、これは Zoho メールを使用した smtp 設定が原因でした。

以下の構成で問題が解決したと思います。

ActionMailer::Base.delivery_method = :smtp  
ActionMailer::Base.smtp_settings = {            
  :address              => "smtp.zoho.com", 
  :port                 => 465,              
  :domain               => 'example.com',   
  :user_name            => 'user@example.com',
  :password             => 'password',         
  :authentication       => :login,
  :ssl                  => true,
  :tls                  => true,
  :enable_starttls_auto => true    
}

サイトに SSL を追加しましたが、それが原因でこのエラーが発生していると思います。

このエラーや、SSL を使用した Zoho メールの SMTP 設定に関する洞察を持っている人はいますか?

4

5 に答える 5

39

このエラーは、config/initializers/devise.rb で の正しいメール アドレスを指定していないために発生しましたconfig.mailer_sender

于 2013-05-30T03:11:24.500 に答える
2

ここでエラーの原因を 1 つ見つけました => https://stackoverflow.com/a/40354121/6264112

しかし、これは私の問題を解決しませんでした。エラーは発生しませんでしたが、Zoho 経由でメールがまだ機能していなかったので、自分のニーズに完全に対応する別のソリューションを見つけました...

1) SMTP を使用して Zoho を Gmail に接続します。Zoho メールを個人の Gmail アカウントのエイリアスとして設定したので、Zoho メールは Gmail に転送され、Zoho メールアドレスから Gmail で返信できます。Zohoにログインする必要がないように、とにかくこれを行う必要があります。Gmailからすべてのメールを送信するだけです。

2) ActionMailer を Zoho ではなく Gmail アカウントに接続します。

config.action_mailer.smtp_settings = {
    :address                          => 'smtp.gmail.com',
    :port                                 => 587,
    :user_name                     => ENV["gmail_username"],
    :password                       => ENV["gmail_password"],
    :authentication                => :plain,
    :enable_starttls_auto     => true
}

ここで、次のようにメーラーで to 値と from 値を指定する必要があります。

def notify_admin (message_details)
    @message_details = message_details
    mail(to: "jesse@mydomain.com", subject: "Contact form filled out by: " + message_details[:name], from: message_details[:email])
end

これは、誰かが連絡フォームを送信したときの上記の例のように、自分にメールを送信したいときに機能します。

彼らがリードマグネットに記入するときなど、自分のドメインからメールを送信したいときにも機能します。私がしたことは、to: と from: のアドレスを切り替えることだけでした。

于 2017-02-03T21:20:12.060 に答える
1

これは、有効なponygem 呼び出しです。

Pony.mail({
      :to => 'apotonick@gmail.com',
      subject: "Pony ride",
      body: "Awesome!",
      from: "nick@trb.to", # this MUST be the sending Zoho email.

      :via => :smtp,
      :via_options => {
        :address        => 'smtp.zoho.com',
        :port           => '465',
        :enable_starttls_auto => true,
        ssl: true,
        :user_name      => 'nick@trb.to', # MUST be identical to :from.
        :password       => 'yourStrongPw',
        :authentication => :login,
      }
    })
于 2016-06-21T09:14:38.810 に答える