簡體   English   中英

使用Rails 4和Devise發送電子郵件時出錯(連接被拒絕,端口25)

[英]Error sending emails with Rails 4 & Devise (connection refused, port 25)

我一直在收到發送電子郵件的大量問題。 我嘗試了多種做事方式; 使用gmail,mailgun,sendgrid,mailgun gem等,根本沒有運氣。 由於某種原因,它試圖使用端口25進行發送,但正如您在下面看到的那樣,我正在指定端口587.我得到的錯誤是:

Errno :: ECONNREFUSED(連接被拒絕 - 連接(2)為“localhost”端口25):

我的development.rb文件如下:

  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true

  config.action_mailer.smtp_settings = {
  :address => 'smtp.mailgun.org',
  :port => 587,
  :api_key => 'key-5d321b99f722e71f759993ee41512b99',
  :user_name => 'postmaster@sandbox3ed8de9510c845c68bf0d867a8f25394.mailgun.org',
  :password => '(mailgun password)',
  :domain => 'sandbox3ed8de9510c845c68bf0d867a8f25394.mailgun.org',
  :authentication => :plain,
  :enable_starttls_auto => true
  }

我一直在尋找解決方案,但似乎沒有人能解決這個問題。 我完全沒有想法。

整個Development.rb文檔:

    Rails.application.configure do
  # Settings specified here will take precedence over those in config/application.rb.

  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Do not eager load code on boot.
  config.eager_load = false

  # Show full error reports and disable caching.
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = false

  # Don't care if the mailer can't send.

  # Print deprecation notices to the Rails logger.
  config.active_support.deprecation = :log

  # Raise an error on page load if there are pending migrations.
  config.active_record.migration_error = :page_load

  # Debug mode disables concatenation and preprocessing of assets.
  # This option may cause significant delays in view rendering with a large
  # number of complex assets.
  config.assets.debug = true

  config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    address: "smtp.gmail.com",
    port: 587,
    user_name: "chris.edhogben@gmail.com",
    password: "<password>",
    authentication: 'plain',
    enable_starttls_auto: true
  }

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

  # Asset digests allow you to set far-future HTTP expiration dates on all assets,
  # yet still be able to expire them through the digest params.
  config.assets.digest = true

  # Adds additional error checking when serving assets at runtime.
  # Checks for improperly declared sprockets dependencies.
  # Raises helpful error messages.
  config.assets.raise_runtime_errors = true

  # Raises error for missing translations
  # config.action_view.raise_on_missing_translations = true
end

使用在以下settigns production.rb

config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true

  ActionMailer::Base.smtp_settings = { 
    :address => 'smtp.mailgun.org',
    :port => 587,
    :user_name => 'postmaster@sandbox3ed8de9510c845c68bf0d867a8f25394.mailgun.org',
    :password => '(mailgun password)',
    :domain => 'sandbox3ed8de9510c845c68bf0d867a8f25394.mailgun.org',
    :authentication => :plain
  }

試試這個配置

config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  address:  'localhost',
  port:     25,
  domain:   'exmaple.com',
      enable_starttls_auto: false
}

對gmail使用以下settigns:

config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  address: "smtp.gmail.com",
  port: 587,
  user_name: "username",
  password: "password",
  authentication: 'plain',
  enable_starttls_auto: true
}

如果您收到SMTP身份驗證錯誤,請單擊http://www.google.com/accounts/DisplayUnlockCaptcha並啟用它。 它將使谷歌能夠在10分鍾內注冊新的應用程序

在production.rb中添加相同的郵件配置。 重啟服務器並檢查

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM