Rails 3 с поддержкой sendgrid не может отправлять электронные письма ... перепробовал все что я нашел в сети ...: P - PullRequest
0 голосов
/ 07 июля 2011

Итак, у меня есть учетная запись sendgrid, и я пытаюсь заставить Rails 3 отправлять по ней электронные письма ... Вот некоторые из моих настроек:

#development.rb

  config.action_mailer.default_url_options = { :host => "smtp.sendgrid.net" }

  config.action_mailer.perform_deliveries = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
        :address => "smtp.sendgrid.net",
        :port => '587',
        :domain => "place.com",
        :authentication => :plain,
        :user_name => "me@place.com",
        :password => "password",
        :enable_starttls_auto => true
  }

Я использую UbuntuМонетный двор и sendmail могут отправлять электронные письма, я также могу telnet в smtp.sendgrid.net 587 успешно.

Я пробовал все виды других случайных комбинаций вещей безрезультатно.У кого-нибудь есть еще идеи?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 сентября 2011

Я не уверен, что ваша проблема такая же, как у меня, но я только что понял, как заставить SendGrid работать, потратив на это полдня.Отказ от ответственности: я ОЧЕНЬ новичок в RoR - только что начал играть с простыми приложениями два-три дня назад.Казалось, моя проблема в том, с чем может столкнуться только новичок ...

В любом случае, без лишних слов, вот что случилось.Я добавил рекомендуемые строки в environment.rb:

config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true

ActionMailer::Base.smtp_settings = {
    :user_name => "your_username",
    :password => "your_password",
    :domain => "yourdomain.com",
    :address => "smtp.sendgrid.net",
    :port => 587,
    :authentication => :plain,
    :enable_starttls_auto => true
}

Затем я попытался отправить электронное письмо и получил странное поведение:

  • В журнале разработки сказано, что оно было отправлено
  • Ну, SendGrid даже не пытался отправить его
  • Когда я пытался зайти в "консоль rails", я получил сообщение "неопределенная локальная переменная или метод" config "для main: Object(NameError) "

Оказалось, что я должен заключить конфиг. * В следующее:

YourApplicationName::Application.configure do
    config.action_mailer.delivery_method = :smtp
    config.action_mailer.raise_delivery_errors = true
end

После этого все работало как по волшебству.Надеюсь, это поможет, если не вы, какой-нибудь другой несчастный новичок, по крайней мере ...

РЕДАКТИРОВАТЬ:

Ну, я говорил слишком рано.С вышеуказанными изменениями я могу отправлять и получать электронную почту ТОЛЬКО при вызове Emailer с консоли rails.Если я звоню из приложения, в журнале разработки говорится, что электронное письмо отправлено, но я его не получаю ... В чем разница между консольной средой и приложением?Обратите внимание, что когда я следую инструкциям postfix на SendGrid и запускаю postfix, электронное письмо будет отправлено из приложения.

Если вы нашли ответ на свою проблему, отправьте его здесь ...

0 голосов
/ 15 июля 2011

Попробуйте изменить файл конфигурации postfix, чтобы отправлять электронные письма через relayhost. Я предполагаю, что ваш интернет-провайдер блокирует ваш исходящий порт 25. Проверьте ссылку ниже:

http://wiki.sendgrid.com/doku.php?id=postfix

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