2013-07-04 10 views
7

उपयोगकर्ता मॉडल में, प्रत्येक उपयोगकर्ता विभिन्न डोमेन/होस्ट से संबंधित है। मैं इसे उपयोगकर्ता के डोमेन के आधार पर पते से अलग होना चाहता हूं। क्या मैं इसे उपयोगकर्ता मॉडल में कहीं भी सेट कर सकता हूं, या मैं प्रेषक को उपयोगकर्ता के डोमेन के अनुसार गतिशील कैसे कर सकता हूं।गतिशील देवता प्रेषक ईमेल पता

हम में आप ई-मेल आधार

class UserMailer <ActionMailer::Base 

def notification_email(user) 
    mail(to:[email protected], from:user.email, ...) 
end 

कि अपनी डिफ़ॉल्ट सेटिंग को पार कर जाएगी प्रति mail.from सेट कर सकते हैं app/config/initializer/devise.rb

तरह
Devise.setup do |config| 
    config.mailer_sender = SOME EMAIL ADDRESS 
end 

उत्तर

1

डिफ़ॉल्ट प्रेषक पते वसीयत निर्धारित किया है।

मुझे लगता है कि आप अपने अनुकूलित मेलर को config/initializers/devise.rb

# Configure the class responsible to send e-mails. 
    # config.mailer = "Devise::Mailer" 
    config.mailer = "UserMailer" 

में इस सेटिंग में बदलाव कर सकते हैं।

+0

यदि मैं "अपना पासवर्ड भूल गया" या "अपना पासवर्ड बदलना" के लिए फ़ंक्शंस भेजने वाले ईमेल बनाते हैं। जहां मैं उपयोगकर्ता होस्ट के आधार पर प्रेषक ईमेल पता सेटिंग सेट कर सकता हूं? उपर्युक्त उदाहरण कैसे मदद और काम करेगा। क्या आप समझा सकते हैं ? – Kashif

+0

मैं ऊपर अपना उत्तर संपादित करता हूं, दस्तावेज तैयार करने की जांच करता हूं, यह करना काफी आसान होना चाहिए। – Henry

+0

यह पोस्ट भी देखें [लिंक] (http://stackoverflow.com/questions/5679571/how-can-i-customize-devise-to-send-password-reset-emails-using-postmark-mailer) – Henry

2

वसीयत द्वारा मेलर सहायक कार्यों का उपयोग करने के लिए, वसीयत मेलर का विस्तार, और तरीकों/मेल एक अलग गतिशील इस की जरूरत है कि ओवरराइड:

class CustomDeviseMailer < Devise::Mailer 
    def confirmation_instructions(record, token, opts={}) 
    @token = token 
    opts[:from] = "Dynamic Sender <[email protected]>" 
    devise_mail(record, :confirmation_instructions, opts) 
    end 
end 

और तुम में devise.rb यह कॉन्फ़िगर करें:

config.mailer = "CustomDeviseMailer" 

नोट: यदि आप एक गतिशील इस की जरूरत नहीं है, बस devise.rb में इस परिभाषित:

config.mailer_sender = "Static sender <[email protected]>" 
7

मैं इसमें घुस गया क्योंकि मैं I18n से from पता खींचना चाहता था, लेकिन I18n सेटअप होने से पहले प्रारंभकर्ता चल रहा था। यह मेरे लिए सबसे आसान समाधान था:

config.mailer_sender = Proc.new { I18n.t('mailers.from') } 
+0

धन्यवाद! यही कारण है कि मैं भी इसकी तलाश कर रहा था। –

संबंधित मुद्दे