有人能幫我理解如何發送電子郵件給我的網站的所有用戶嗎?如果用戶註冊或提交聯繫表單或執行某些操作,我知道如何創建電子郵件。但是,我不知道如何發送電子郵件,而無需執行某些操作。在Rails中發送電子郵件通訊/調查
在我的配置/環境/ production.rb我:
config.action_mailer.smtp_settings = {
:address => "smtp.mandrillapp.com",
:port => 587,
:domain => "majorfinder.com",
:user_name => ENV["MANDRILL_USERNAME"],
:password => ENV["MANDRILL_PASSWORD"],
:authentication => :plain,
:enable_starttls_auto => true
}
config.action_mailer.default_url_options = {
:host => "majorfinder.com"
}
在我的應用程序/郵寄/ questions_mailer.rb我:
class QuestionsMailer < ActionMailer::Base
default from: "[email protected]"
def interest_question(user)
@user = user
mail(to: @user.email, subject: "My Subject")
end
我的TXT和HTML版本我的電子郵件已創建並放置在app/views/questions_mailer/email.html.erb/email.txt.erb中。
我錯過了什麼,我放在我的控制器,使電子郵件發送。是這樣的:
QuestionsMailer.interest_question(@user).deliver
在發送這個時,我有大約300用戶。我應該把它分成多個批次(就像我在這裏找到的:Sending emails based on intervals using Ruby on Rails)?
我不知道這是否重要,但我託管在heroku上,我的數據庫是postgresql。
非常感謝你給我的任何幫助!
更新: 我跟着@ jefflunt的建議並創建了一個rake任務。這是我的樣子:
desc "Email to ask users what they're most interested in"
task :interests => :environment do
User.all.each do |u|
QuestionsMailer.interest_question(u).deliver
end
end
然後我在本地運行rake interests
以確保一切正常。一旦我將所有更改推送到heroku,我就運行了heroku run rake interests
,並向所有用戶發送了一封電子郵件。
非常感謝你@jefflunt!耙子任務完美運作。 – lflores
甜。會非常尷尬的,它沒有奏效。 :) – jefflunt
我不能相信這沒有更多upvotes – Abram