2016-08-29 1 views
3

У меня возникли серьезные проблемы с отправкой электронных писем. Я пробовал несколько способов делать вещи; используя gmail, mailgun, sendgrid, почтовый ящик и т. д., вообще не повезло. По какой-то причине он пытается отправить порт 25, хотя, как вы можете видеть ниже, я указываю порт 587. Ошибка, которую я получаю:Ошибка отправки писем с Rails 4 & Devise (соединение отказано, порт 25)

Errno :: ECONNREFUSED (Connection failed - connect (2) для " локальный»порт 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 => '[email protected]', 
    :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: "[email protected]", 
    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 
+0

Какова ваша точная версия рельсов? –

+0

Есть ли что-нибудь еще в вашем приложении, которое изменяет настройки почтовой программы? –

+0

Я на рельсах 4.2. Я не верю, что в приложении есть что-то еще, что должно изменить настройки почтовой программы. Есть ли что-нибудь, что я должен найти, чтобы прояснить это? У меня был установлен почтовый джойстик и драгоценный камень sendgrid, однако я удалил оба. – edhog

ответ

2

Используйте ниже settigns для Gmail:

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 & включите его. Это позволит Google для регистрации новых приложений в течение 10 минут

+0

Спасибо за предложение. Я пробовал это, но мой вопрос все тот же: «Errno :: ECONNREFUSED: соединение отказано - подключитесь (2) к порту« localhost »25» – edhog

+0

@edhog: попробуйте вышеуказанную настройку с помощью gmail, если не работает, тогда вставьте свой полный development.rb с использованными настройками –

+0

Я дал ему шанс и получил пароль, созданный в Google. Это по-прежнему дало мне ту же ошибку: порт 25. Я считаю, что я все еще сталкиваюсь с той же проблемой в production.rb. Я вложил свой файл development.rb в полную часть моего первоначального сообщения. – edhog

3

Используйте приведенные ниже 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 => '[email protected]', 
    :password => '(mailgun password)', 
    :domain => 'sandbox3ed8de9510c845c68bf0d867a8f25394.mailgun.org', 
    :authentication => :plain 
    } 
+0

Я ввел это в производство с моим паролем mailgun и перезапустил мой сервер, по-прежнему та же ошибка. Все еще пытаюсь использовать порт 25. – edhog

2

добавить такую ​​же конфигурацию почты в production.rb также. Перезапустите сервер и проверить

3

Попробуйте эту конфигурацию

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 
} 
Смежные вопросы