當用戶在我的應用程序中獲得10分時,他會收到一封電子郵件,內容爲「您剛獲得10分!」Rails中的全局before_sending_mail回調
如果某人一週內每天賺得10分,我不介意每天給他發一封電子郵件 - 但如果某人在一天內獲得50分,我不想給他發5封電子郵件。
因此,我想要一種方式來攔截每封發出的電子郵件,然後發送,檢查它,並確定是否應該發送它。什麼是最好的方法來做到這一點?
當用戶在我的應用程序中獲得10分時,他會收到一封電子郵件,內容爲「您剛獲得10分!」Rails中的全局before_sending_mail回調
如果某人一週內每天賺得10分,我不介意每天給他發一封電子郵件 - 但如果某人在一天內獲得50分,我不想給他發5封電子郵件。
因此,我想要一種方式來攔截每封發出的電子郵件,然後發送,檢查它,並確定是否應該發送它。什麼是最好的方法來做到這一點?
我有一個類似的應用程序,我有一個客戶的sent_previous_email_at
時間戳字段。我只是檢查:
send_email if send_previous_email_at < DateTime.today - 1.days
我會附加某種方法的用戶模型或點模型(如果你有類似的東西)。
class User
def add_points(count)
# Add points
send_email if criteria_is_met
end
def send_email
# Send email
end
end
不完全是「全球性」,但不是直接調用郵件,只需要使用這樣的事情,所以你可以輕鬆地添加條件行爲。