2014-09-04 42 views
6

Bir raylar 4 app var. ActionMailer'i kurdum ve localhost ve gmail ile sipariş onay e-postaları gönderebiliyorum.Sendgrid Rails 4 üzerine kurun.

Sendurana Heroku'ya kurdum ve kurulum talimatlarını takip ettim. Ben Net::SMTPSyntaxError (501 Syntax error

benim environment.rb (i application.yml içinde sendgrid kullanıcı/şifre var) production.rb içinde

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 
} 

olsun - Ben sadece actionamailer ayar budur. Bunu, daha sonra gerçek alanı koymak için bir yer tutucu olarak sahibim. Şu anda herokuapp.com kullanıyorum. Sipariş oluşturma yöntemimdeki orders_controller adımında

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 

ben eksik? Gmail ile localhost üzerinde çalışır, bu yüzden sendgrid ayarlarında veya production.rb dosyasındaki default_url öğesinde bir şey eksik.

+0

Üretimde hangi yığını kullanıyorsunuz? ENV'nin heroku konfigürasyonunda var mı? Heroku otomatik olarak ENV'leri Bambu yığına eklediğinden, Sedir'in üzerine, onları bildiğim kadar elle eklemelisiniz. –

+0

Cedar'dayım. Evet, ben heroku config çalıştırdığımda sendgrid kullanıcı/pwd görüyorum. – Moosa

+1

production.rb da konaklamayı bla-bla-bla.herokuapp.com sitesine dönüştürmeyi deneyin. Aslında, production.rb dosyasında config.action_mailer ... satırı yok ve SendGrid tamam çalışıyor. –

cevap

4

default from: "Test Email", [email protected] numaralı telefonun geçerli e-posta adresine gönderin.

+1

Wow ... Ben ayarlara çok fazla zaman harcadım ve docs! Yerelhost üzerinde çalıştı bu yüzden bunu değiştirmeyi düşünmedim. – Moosa

22

kuşaklar için buraya Heroku üzerinde Raylar dış SMTP için çalışan bir tuzak: Sadece işaret etmek istiyorum

#config/environments/production.rb 
config.action_mailer.smtp_settings = { 
    :address => "smtp.sendgrid.net", 
    :port  => 587, # ports 587 and 2525 are also supported with STARTTLS 
    :enable_starttls_auto => true, # detects and uses STARTTLS 
    :user_name => ENV["SENDGRID_USERNAME"], 
    :password => ENV["SENDGRID_PASSWORD"], # SMTP password is any valid API key, when user_name is "apikey". 
    :authentication => 'login', 
    :domain => 'yourdomain.com', # your domain to identify your server when connecting 
}