У меня есть рельсы 4 приложения. Я создал ActionMailer, и я могу отправлять электронные письма с подтверждением заказа через localhost и gmail.Sendgrid настроен на Rails 4
Я установил Sendgrid на Heroku и выполнил инструкции по настройке. Я получаю Net::SMTPSyntaxError (501 Syntax error
мой environment.rb (я имею sendgrid пользователя/PWD в application.yml)
ActionMailer::Base.smtp_settings = {
:address => 'smtp.sendgrid.net',
:port => '587',
:authentication => :plain,
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => 'heroku.com',
:enable_starttls_auto => true
}
в production.rb - единственный параметр actionamailer у меня есть это. У меня есть это в качестве заполнителя, чтобы позже разместить реальный домен. В настоящее время я использую herokuapp.com.
config.action_mailer.default_url_options = { host: 'localhost:3000' }
in my orders_controller в порядке создания метода, я называю это ниже.
AutoNotifier.orderconf_email(current_user, @order).deliver
auto_notifier.rb
class AutoNotifier < ActionMailer::Base
default from: "Test Email"
def orderconf_email(current_user, order)
@buyer = current_user
@order = order
mail(to: @buyer.email, subject: 'Thank you for your order.')
end
end
Что мне не хватает? Он работает на localhost с gmail, поэтому я пропускаю что-то в настройках sendgrid или в файле default_url в файле production.rb.
Какой стек вы используете в производстве? У вас есть ENV в конфигурации heroku? Поскольку heroku автоматически добавляет ENV только в стек Bamboo, на Cedar вам нужно добавить их вручную, как я знаю. –
Я на Кедре. Да, я вижу пользователя sendgrid/pwd, когда я запускаю конфигурацию heroku. – Moosa
Попробуйте изменить хост в production.rb на свой bla-bla-bla.herokuapp.com. На самом деле, у меня нет config.action_mailer ... line в production.rb, а Sendgrid работает нормально. –