無論如何,我可以在同一個Rails 3應用程序中使用多個電子郵件提供程序?Rails - 在單個應用程序中使用多個電子郵件提供程序
語境 1.進出口使用郵戳爲目前發出的郵件(使用延遲工作) 2.我們的應用程序還需要發送一些大量電子郵件 - 對此,我們將使用一個單獨的供應商。
現在我不想分離出來併爲羣發電子郵件部分創建一個新應用程序。如何在發送電子郵件時使用/選擇不同的電子郵件提供商?
在此先感謝
無論如何,我可以在同一個Rails 3應用程序中使用多個電子郵件提供程序?Rails - 在單個應用程序中使用多個電子郵件提供程序
語境 1.進出口使用郵戳爲目前發出的郵件(使用延遲工作) 2.我們的應用程序還需要發送一些大量電子郵件 - 對此,我們將使用一個單獨的供應商。
現在我不想分離出來併爲羣發電子郵件部分創建一個新應用程序。如何在發送電子郵件時使用/選擇不同的電子郵件提供商?
在此先感謝
你有一個羣發郵件列表,您需要從[email protected]
送出去再說[email protected]
和其他一些電子郵件的其他用途,您需要做的這些步驟,如果我得到該題正確::
從default :from
取出default
,如果你寫它。
爲mass-email
創建行動郵件並提出了:from => "[email protected]"
environment.rb
文件,並填寫了詳細資料,如該config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => 'yourdomain.com',
:user_name => '[email protected]',
:password => 'yourpassword',
:authentication => 'plain',
:enable_starttls_auto => true }
可以創建一個FO你想要的文件數量很多。
希望它有幫助。
您可以在每個郵件的基礎覆蓋的ActionMailer設置,例如
class BulkMailer < ActionMailer::Base
self.smtp_settings = {...}
end
會導致BulkMailer
及其子類來使用這些設置。
有一點需要注意的是不要改變smtp_settings
的位置,即不要不這樣做self.smtp_settings[:user_name] = 'blah'
,因爲這將作用於共享設置,而不是創建新設置專用於BulkMailer
我用我的應用程序的郵件服務器回退,因此,當一個郵件服務器關閉它切換郵件服務器。您的問題是類似的,除非您不需要別名舊Mail::Message.deliver
並使用Mail::Message.mass_deliver
例如。
這是你如何做到這一點:
Mail::Message.class_eval do
def mass_deliver
self.delivery_method.settings = {
:address => "smtp.massdeliverserver.com",
:port => 587,
:domain => 'yourdomain.com',
:user_name => '[email protected]',
:password => 'yourpassword',
:authentication => 'plain',
:enable_starttls_auto => true
}
deliver
end
end
那麼你可以使用YourMailer.your_method.deliver
使用defalt你environment.rb
提供設置config.action_mailer.smtp_settings
和YourMailer.your_method.mass_deliver
使用其他的服務器設置。
將代碼放在config/initializers
和mass_deliver
中的某個文件中,該方法將適用於您的應用程序中的任何Mail::Message
實例。
http://guides.rubyonrails.org/action_mailer_basics.html – Msencenb 2012-01-06 06:58:15
@Minnb描述了ActionMailer,但它不超出配置全局SMTP設置。有沒有我錯過的指南的特定部分? – Nick 2012-01-06 07:07:30