質問

投稿者:mKimura0926
登録日:2025年11月21日(金)

SPIRALの非同期アクションで特定条件のみメール送信する方法について

以前、「SPIRALでエラー通知を行う方法(非同期処理内)について」という内容で質問させていただきました。 現在、DBトリガの非同期アクションで「経路条件:一部の経路:API」を設定し、メールアクションを追加しています。しかし、この設定では、API経由でDBが更新されると、エラーの有無にかかわらず必ずメールが送信されてしまいます。 実現したいことは、非同期アクション内のPHPからcURLライブラリを使用して呼び出された場合のみメールを送信し、それ以外のトリガではメール送信しないという動作です。 このような条件を実現するための設定方法をご教示いただけますでしょうか。

更新日:2025年11月21日(金)
いいね

コメント

  • ご質問いただきましてありがとうございます。 おっしゃるように、APIでの更新が複数行われる場合、経路を条件にするだけだと他のAPIで更新した際にもメールが配信されてしまいます。 そのため、DBに配信フラグなどの項目を追加いただき、メールアクションの条件に配信フラグがたっていることを条件としていただくことで送り分けが可能です。 □イメージ ・非同期アクション(PHP)実行 ・外部API実行 ・(エラーのレスポンスが返ってきた場合)SPIRALのAPIで配信フラグを配信に更新 ・(配信フラグが配信の場合)更新トリガに設定した非同期アクション(メール)が実行される ■非同期アクション(メール)について ・更新時に配信するため、更新トリガに設定ください。 ・後述のフラグ解除処理を行うことで経路の設定は不要になります。 更新のAPIを追加することで送り分けが可能です。 ただ、そのままですと配信フラグが立ったままになってしまい別の更新の際に配信されてしまいますので、 下記の記事をもとに配信フラグの自動解除設定を行ってください。 設定いただくことで、API更新でメール配信フラグを立てたときはメールが配信され、そうでないときは配信されない動作となります。 ▼DBトリガを使用して「メール送信」「配信フラグ自動解除」を行いたい https://knowledge.spirers.jp/article/design/detail/5446 ご確認のほどよろしくお願いいたします。

    • いいね
    2025年11月21日(金)
  • mKimura0926

    ご回答ありがとうございます。 可能であれば、既存のDBを変更せずに実現したいと考えております。 例えば、「サイト管理 > 共通設定 > メールアクション」から追加したメールアクションの場合、プログラムから意図的に呼び出された場合のみメールが送信される仕様なのではないかと考えているのですが、この認識は誤りでしょうか?

    • いいね
    2025年11月21日(金)
  • ご確認いただきありがとうございます。 >例えば、「サイト管理 > 共通設定 > メールアクション」から追加したメールアクションの場合、プログラムから意図的に呼び出された場合のみメールが送信される仕様なのではないかと考えているのですが、この認識は誤りでしょうか? おっしゃるとおり認識に誤りございません。 「サイト管理 > 共通設定 > メールアクション」で設定いただいたメールもアクションのAPIで配信可能です。 DBに変更せずにご対応いただく場合は共通設定よりメールアクションを作成いただきご利用ください。 何卒よろしくお願いします。

    • いいね
    2025年11月21日(金)
あなたもログインして、
回答してみませんか?