としてというユーザーに電子メールを送信するために使用するサードパーティの電子メール統合ライブラリがあります。メールを送信するには、ユーザーごとに保存するaccess_token
を使用してAPI呼び出しを行います。カスタムアクションに追加情報を渡すメーラー配信クラス
まだアクションメーラーを使用するには、私はこのようなカスタム配信クラスを作成しました:
module Mail
class CustomMailDelivery
attr_reader :settings
def initialize(settings)
@settings = settings
end
def deliver!(mail)
# use 3rd party client here
end
end
end
私はイニシャライザでこれを構成していますが:
ActionMailer::Base.add_delivery_method :custom, Mail::CustomMailDelivery, {
app_id: ENV.fetch('3RDPARTY_APP_ID'),
app_secret: ENV.fetch('3RDPARTY_APP_SECRET'),
}
これは私が設定することができますメーラー単位での配送方法:
class LeadMailer < ApplicationMailer
self.delivery_method = :custom
...
end
問題は、私はtを送信しているユーザーを渡す必要があります彼のメッセージは、私は彼らのaccess_token
を得ることができます。道路を打破することができ、このように思えるので、私は、送信者の電子メールアドレスを使用してEmailAccount
のフェッチに依存したくない
は、(それがこのメールアドレスが送信ユーザーと同じではないかもしれませんが可能です)。 つまり、明示的に渡したいので分かりやすく混乱を避けます。
カスタムアクションメーラー配信クラスにメールごとのコンテキストを提供する方法はありますか?