在用戶模型中,每個用戶都屬於不同的域/主機。我想根據用戶的域名將其設置爲與地址不同。我可以在用戶模型中設置此地址,或者如何根據用戶的域名讓發件人地址爲動態地址。動態設計發件人電子郵件地址
我們設置app/config/initializer/devise.rb
像
Devise.setup do |config|
config.mailer_sender = SOME EMAIL ADDRESS
end
在用戶模型中,每個用戶都屬於不同的域/主機。我想根據用戶的域名將其設置爲與地址不同。我可以在用戶模型中設置此地址,或者如何根據用戶的域名讓發件人地址爲動態地址。動態設計發件人電子郵件地址
我們設置app/config/initializer/devise.rb
像
Devise.setup do |config|
config.mailer_sender = SOME EMAIL ADDRESS
end
你可以設置每封郵件的基礎
class UserMailer <ActionMailer::Base
def notification_email(user)
mail(to:[email protected], from:user.email, ...)
end
這將覆蓋默認設置mail.from制定默認的發件人地址。
我想你可以更改配置/初始化/ devise.rb
# Configure the class responsible to send e-mails.
# config.mailer = "Devise::Mailer"
config.mailer = "UserMailer"
此設置自定義郵件。
要通過設計使用梅勒輔助功能,擴展了色器件郵件,並覆蓋方法/郵件需要不同的動態發件人:
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]>"
我遇到了這個問題,因爲我想從I18n中抽取from
地址,但初始化程序在I18n安裝之前運行。這對我來說是最簡單的解決方案:
config.mailer_sender = Proc.new { I18n.t('mailers.from') }
謝謝!這正是我爲什麼也在尋找它的原因。 –
如果我打算設計內置電子郵件發送功能「忘記密碼」或「更改密碼」。我可以在用戶主機的基礎上設置發件人電子郵件地址設置?上面提到的例子將如何幫助和工作。你能解釋一下嗎? – Kashif
我編輯我的答案上面,檢查設計文件,它應該很容易做到。 – Henry
也檢查這篇文章[鏈接](http://stackoverflow.com/questions/5679571/how-can-i-customize-devise-to-send-password-reset-emails-using-postmark-mailer) – Henry