1. アクションの保存

カスタムプロセッサを使用してWebフォームでSMS / MMSを送信する

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

「マーケティング担当者向けWebフォーム」モジュールでは、Send SMSアクションとSend MMS保存アクションをそれぞれ使用してSMSメッセージとMMSメッセージを送信できます。 Send MMSSend SMSの保存アクションは、SMTPサーバー経由でMMS/SMSゲートウェイにメッセージの送信を委任します。

processMessageパイプラインを使用して、この動作を変更し、たとえばサードパーティの有料Webサービスを介してメッセージを送信できます。

processMessageパイプラインを使用してサードパーティのWebサービス経由でメッセージを送信するには:

  1. Visual StudioのSitecore.Form.Core.Pipelines.ProcessMessage名前空間で、次のサンプル コードを使用して新しいプロセッサを作成します。

    namespace Sitecore.Form.Core.Pipelines.ProcessMessage
    {
      using System.IO;
      using System.Net;
      public class SendSMSorMMS
      {
        public void Process(ProcessMessageArgs args)
        {
          if (args.MessageType == MessageType.MMS || args.MessageType == MessageType.SMS)
          {
            WebClient wc = new WebClient();
            wc.Credentials = (NetworkCredential)args.Credentials;
            wc.QueryString.Add("sendto", args.Recipient);
            wc.QueryString.Add("message", args.Mail.ToString());
            if (!string.IsNullOrEmpty(args.From))
            {
              wc.QueryString.Add("from", args.From);
            }
            using (Stream responseStream = wc.OpenRead("https://3rdparty.smsormms.com/"))
            {
              using (StreamReader responseReader = new StreamReader(responseStream))
              {
                responseReader.ReadToEnd();
                responseReader.Close();
                responseStream.Close();
              }
            }
          }
        }
      }
    }
  2. Sitecore.Forms.configファイルに、新しいプロセッサを登録します。

          <processMessage>        
            <processor type="Sitecore.Form.Core.Pipelines.ProcessMessage.ProcessMessage, Sitecore.Forms.Core" method="ExpandLinks"/>
            <processor type="Sitecore.Form.Core.Pipelines.ProcessMessage.ProcessMessage, Sitecore.Forms.Core" method="ExpandTokens"/>
            <processor type="Sitecore.Form.Core.Pipelines.ProcessMessage.ProcessMessage, Sitecore.Forms.Core" method="AddHostToItemLink"/>
            <processor type="Sitecore.Form.Core.Pipelines.ProcessMessage.ProcessMessage, Sitecore.Forms.Core" method="AddHostToMediaItem"/>
            <processor type="Sitecore.Form.Core.Pipelines.ProcessMessage.ProcessMessage, Sitecore.Forms.Core" method="AddAttachments"/>
            <processor type="Sitecore.Form.Core.Pipelines.ProcessMessage.ProcessMessage, Sitecore.Forms.Core" method="BuildToFromRecipient"/>
            <processor type="Sitecore.Form.Core.Pipelines.ProcessMessage.SendSMSorMMS, MyAssembly"/>  
            <processor type="Sitecore.Form.Core.Pipelines.ProcessMessage.ProcessMessage, Sitecore.Forms.Core" method="SendEmail"/>
          </processMessage>
  3. SitecoreデスクトップからForm Designerを開き、関連するフォームでSend SMSまたはSend MMS  保存 アクションを追加します。オプションの手順として、フォームを送信して、カスタムプロセッサが正しく動作することを確認します。

この記事を改善するための提案がある場合は、 お知らせください!