14

Zoho アカウント経由でメールを送信するように ActionMailer を設定できた人はいますか?

これらは私の設定です:

ActionMailer::Base.smtp_settings = {
    :address              => "smtp.zoho.com",
    :port                 => 465,
    :domain               => 'example.com',
    :user_name            => 'steve@example.com',
    :password             => 'n0tmypa$$w0rd',
    :authentication       => :login
}

ただし、.deliver の呼び出しはタイムアウトします。

irb(main):001:0> AdminMailer.signup_notification('asfd').deliver
Timeout::Error: Timeout::Error
        from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill'
        from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:140:in `rbuf_fill'
        from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
        from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
        from C:/Ruby193/lib/ruby/1.9.1/net/smtp.rb:929:in `recv_response'
        from C:/Ruby193/lib/ruby/1.9.1/net/smtp.rb:552:in `block in do_start'
        from C:/Ruby193/lib/ruby/1.9.1/net/smtp.rb:939:in `critical'
        from C:/Ruby193/lib/ruby/1.9.1/net/smtp.rb:552:in `do_start'
        from C:/Ruby193/lib/ruby/1.9.1/net/smtp.rb:519:in `start'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/mail-2.4.4/lib/mail/network/delivery_methods/smtp.rb:144:in `deliver!'

ヘルプ ドキュメントには、ポート 465 と SSL 認証を使用するように記載されています。ありとなしで試しまし:enable_starttls_auto => trueたが、それでもタイムアウトします。

具体的には、ドキュメントでは次の設定が指定されています。

>     Email Address: Username@yourdomain.com
>     User Name format: Username@yourdomain.com
>     Secure Connection (SSL)   Yes
>     Outgoing Mail Server Name: smtp.zoho.com
>     Outgoing Port No.: 465
>     Outgoing Mail Server requires authentication: Yes

何か案は?

psヘルプ ドキュメントの設定を使用するように Outlook を構成しましたが、送信メールは正常に動作します。smtp.zoho.com 465 への telnet も接続します。

4

6 に答える 6

31
# Action Mailer
ActionMailer::Base.delivery_method = :smtp  
ActionMailer::Base.smtp_settings = {            
  :address              => "smtp.zoho.com", 
  :port                 => 465,                 
  :user_name            => 'someone@somewhere.com',
  :password             => 'password',         
  :authentication       => :login,
  :ssl                  => true,
  :tls                  => true,
  :enable_starttls_auto => true    
}

それは私のために働いた。一部のローカル ネットワークでは、この種のパケットがブロックされている可能性があります。3G ネットワークを介してテストする必要がありました。

于 2013-01-30T23:55:17.687 に答える
4

ご参考までに:

あなたのドメインが abc.com だとしましょう。
たとえば、別のドメインのメーラーに「デフォルト送信元」があるとします。

  default from: "\"Elephant\" <el@ephant.com>"

Zohoアカウントで同じドメインを使用して「デフォルトの送信元」を変更しない限り、これは機能しません。
そう、

  default from: "\"Elephant\" <el@abc.com>"

動作します。

于 2015-08-13T09:37:45.700 に答える
0

Zoho がセキュリティ設定を変更したかどうかはわかりませんが、@Tyrel Richeyの受け入れられた回答はうまくいきませんでした。ただし、次のようになります。

/config/initializers/action_mailer.rb..

# ActionMailer のメール設定
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
  :アドレス => ENV['SMTP_ADDRESS'],
  :ポート => ENV['SMTP_PORT'],
  :ドメイン => ENV['SMTP_DOMAIN'],
  :user_name => ENV['SMTP_USERNAME'],
  :パスワード => ENV['SMTP_PASSWORD'],
  :認証 => :ログイン,
  :enable_starttls_auto => true
}

ここで..
:address= smtp.zoho.com
:port=587
:domainlocalhost開発中、ライブ URL は本番環境 (例: example.com)

于 2015-04-22T07:26:41.933 に答える
0

これらの設定は、本番環境でうまくいきました。

Rails.application.routes.default_url_options[:host] = 'eyehawk.io'
  config.action_mailer.default_url_options = { :host => 'eyehawk.io' }
  config.action_mailer.perform_caching = false

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.default :charset => "utf-8"

  config.action_mailer.smtp_settings = {
      :address              => "smtp.zoho.com",
      :port                 => 587,
      :domain               => "zoho.com",
      :user_name            => "admin@eyehawk.io",
      :password             => ENV['SMTP_PASSWORD'],
      :authentication       => :plain,
      :enable_starttls_auto => true
  }
于 2016-10-05T23:33:44.350 に答える