WFFMでメール送信アクションを使用すると、フォームの送信に失敗する


解説

Web Forms for Marketersモジュールでメール送信(Send Mail)保存アクションを使用する場合、サイト訪問者が送信した後にフォームが保存されず、ログファイルに以下の例外が表示されることがあります:

Exception: System.FormatException
Message: The specified string is not in the form required for an e-mail address.
Source: System
   at System.Net.Mail.MailAddressParser.ReadCfwsAndThrowIfIncomplete(String data, Int32 index)
   at System.Net.Mail.MailAddressParser.ParseDomain(String data, Int32& index)
   at System.Net.Mail.MailAddressParser.ParseAddress(String data, Boolean expectMultipleAddresses, Int32& index)
   at System.Net.Mail.MailAddressParser.ParseMultipleAddresses(String data)
   at System.Net.Mail.MailAddressCollection.ParseValue(String addresses)
   at System.Net.Mail.MailAddressCollection.Add(String addresses)
   at System.Net.Mail.Message..ctor(String from, String to)
   at System.Net.Mail.MailMessage..ctor(String from, String to)
   at Sitecore.Form.Core.Pipelines.ProcessMessage.ProcessMessage.GetMail(ProcessMessageArgs args)
   at Sitecore.Form.Core.Pipelines.ProcessMessage.ProcessMessage.SendEmail(ProcessMessageArgs args)
   at (Object , Object[] )
   at Sitecore.Pipelines.PipelineMethod.Invoke(Object[] parameters)
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args, String pipelineDomain, Boolean failIfNotExists)
   at Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args, String pipelineDomain)
   at Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args)
   at Sitecore.Form.Submit.SendMessage.ExecuteMail(ID form, AdaptedResultList fields)
   at Sitecore.Form.Submit.SendMail.Execute(ID formid, AdaptedResultList fields, Object[] data)
   at Sitecore.Form.Core.Submit.SubmitActionManager.ExecuteSaving(ID formID, ControlResult[] list, ActionDefinition[] actions, Boolean simpleAdapt, ID sessionID)

この挙動は、メール送信編集ダイアログの使用後に、保存アクションの「To」「From」「CC」フィールドの値に二重角括弧が含まれている場合に発生します。

この問題は、WFFM 2.3 rev. 110530 - 2.4 rev. 150619で発生します。

解決策

この問題を解決するために、以下のパッチを適用してください:

  1. WFFMモジュールのバージョンに対応するアーカイブをダウンロードします:
  2. ファイルを解凍します。
  3. Sitecore.Support.402562.dll ファイルを \bin に配置します。
  4. SendEmail.xml ファイルを \sitecore\shell\Override フォルダに配置します。
  5. Send Mail Editorダイアログを使用して、特定のフィールドの値を再割り当てします。
  6. 変更をパブリッシュします。