2012-08-17 24 views
9

पर उत्पादन वातावरण के लिए रेल अनुप्रयोग में मेलर स्थापित करने के लिए मैं उपयोगकर्ताओं के लिए ईमेल भेजना वसीयत और सक्रिय व्यवस्थापक के "वसूली" समारोह के लिए अपने पासवर्ड सेट करने के लिए एक मेलर का उपयोग करने की जरूरत है।कैसे Heroku

config/वातावरण/विकास

#Added per active admin install instructions 
config.action_mailer.default_url_options = { :host => 'localhost:3000' } 


#These settings are for the sending out email for active admin and consequently the devise mailer 
ActionMailer::Base.delivery_method = :smtp 
ActionMailer::Base.perform_deliveries = true 
ActionMailer::Base.raise_delivery_errors = true 
ActionMailer::Base.smtp_settings = 
{ 

    :address   => 'smtp.gmail.com', 
    :port    => 587, 
    :domain    => 'gmail.com', #you can also use google.com 
    :authentication  => :plain, 
    :user_name   => '[email protected]', 
    :password   => 'XXXXXXX' 
} 

मैं उत्पादन वातावरण के लिए ही कार्यक्षमता कैसे मिलता है: विकास के वातावरण पर मैं इन फ़ाइलों के लिए निम्न जोड़कर इस किया है? मैं अपने ऐप को हरोकू में तैनात करना चाहता हूं। मुझे कौन सी फाइलें और कोड जोड़ने की ज़रूरत होगी?

+1

आपको कॉन्फ़िगरेशन/वातावरण/output.rb – house9

+0

में उसी कोड की आवश्यकता है या इसे अपने सभी वातावरण – house9

+0

पर कॉन्फ़िगर/application.rb में डालें, हाँ, लेकिन मुझे इसे उत्पादन में क्या करना चाहिए: config.action_mailer। default_url_options = {: होस्ट => '????' } – banditKing

उत्तर

3

यदि यह विकास मोड में काम करता है, तो यह उत्पादन मोड में काम करेगा।

सब कुछ मान लें कि सेटअप विकास में एक पासवर्ड को रीसेट पहले से ही एक वास्तविक ईमेल अपने gmail खाते का उपयोग सही ढंग से भेज देंगे है।

वसीयत केवल सही ढंग से मेलर config सेटअप पर निर्भर करता है (जो आप किया है) और पासवर्ड रीसेट अनुमति देने के लिए वसीयत को विन्यस्त, और संभवतः के लिए एक और सेटिंग ईमेल के क्षेत्र से।

+2

का उपयोग करते हुए यूआरएल है, लेकिन मुझे इसे उत्पादन में क्या करना चाहिए: config.action_mailer.default_url_options = {: होस्ट => '????' } – banditKing

7

सभी विन्यास आप विकास मोड में स्थापित किया है काम छोड़कर आप डिफ़ॉल्ट मेलर यूआरएल पुन: कॉन्फ़िगर करने की आवश्यकता होगी।

तो।

  1. विकास.आरबी से अपनी सेटिंग्स कॉपी-पेस्ट करें। अपने Heroku एप्लिकेशन को

  2. प्वाइंट अपने डिफ़ॉल्ट मेलर:

    config.action_mailer.default_url_options = { :host => 'YOURAPPNAME.herokuapp.com' } 
    

इसके अलावा, किसी भी ईमेल सीमा अपने SMTP हो सकता है जब उत्पादन की ओर बढ़ने की सावधान रहना होगा। विकास के दौरान जीमेल की एसएमटीपी सीमाओं को ट्रिगर करना मुश्किल है, उदाहरण के लिए, लेकिन वे उत्पादन में अधिक आसानी से ट्रिगर हो सकते हैं।

2

यह ठीक काम करना चाहिए!

जब तक कॉन्फ़िगर/वातावरण/output.rb एक अपवाद के साथ एक ही चीज़ है। Default_url_options में एक होना चाहिए: केवल 'लोकहोस्ट' का होस्ट वैल्यू विकास में और उसके Yoku उत्पादन में 'YOURAPPNAME.herokuapp.com'।

अर्थात

config.action_mailer.default_url_options = { :host => 'YOURAPPNAME.herokuapp.com' } 

, जीमेल पर कैप्चा अनलॉक करने के लिए याद रखें अन्यथा यह Heroku (अज्ञात स्रोत) से ईमेल नहीं भेजेगा। आपको लगता है कि इस लिंक पर जाकर कर सकते हैं: http://www.google.com/accounts/DisplayUnlockCaptcha

बस एक सुझाव के रूप में, मैं यह कहना चाहता हूँ environments.rb से ले जाने के

ActionMailer::Base.perform_deliveries = true 
ActionMailer::Base.raise_delivery_errors = true 

और जगह के वातावरण में है/development.rb

के रूप में
config.action_mailer.perform_deliveries = true 
config.action_mailer.raise_delivery_errors = true 

उत्पादन में इसकी आवश्यकता नहीं है।

संबंध में अधिक जानकारी एक अज्ञात मेजबान के रूप में Heroku देखकर gmail के लिए Net::SMTPAuthenticationError when sending email from Rails app (on staging environment) देखें।