電子メール活動エンティティ

電子メール活動を使用すると、顧客との電子メール通信を追跡および管理できます。 Dynamics 365 Customer Engagement (on-premises) には、Dynamics 365 Customer Engagement (on-premises) との間のメールのルーティングを管理するメール ルーター ソフトウェアが含まれています。 電子メール活動は、電子メール プロトコルを使用して配信されます。 電子メール ルーターは、Exchange Web サービス、POP3、および SMTP の電子メール プロトコルをサポートしています。 電子メール ルーターに加え、電子メール活動は Dynamics 365 for Outlook を使用して配信することもできます。

電子メール活動のアクション

Dynamics 365 Customer Engagement Web サービスを使用して、メール活動の以下のアクションを実行できます。

  • 電子メール活動を作成、取得、更新、削除する。

  • 電子メール メッセージを送信する。または電子メール テンプレート (Template) を使用して電子メール メッセージを送信する。 電子メール テンプレートの詳細については、テンプレート エンティティ を参照してください。

  • (ActivityMimeAttachment) 属性を使用して電子メールにファイルを添付する。

  • 大量の電子メールを一括で送信する。

  • 着信した電子メール メッセージが Microsoft Exchange Server からユーザーまたはキューへ配信されるようにする、または発信するメッセージがユーザーまたはキューから Microsoft Exchange Server へ送信されるようにする。 キューに対して着信の電子メール メッセージを構成する方法については、受信メッセージ用電子メールを構成するを参照してください。

    Organization.RequireApprovalForuserEmailOrganization.RequireApprovalForQueueEmail (承認されたユーザー/キューに関してだけ電子メールを処理する) 組織属性が true (1)、に設定されている場合、電子メール メッセージはユーザー/キューの既定電子メール アドレスが承認されている場合に限ってユーザー/キューから配信または送信されます。 SystemUser.EmailRouterAccessApprovalQueue.EmailRouterAccessApproval 属性は、それぞれユーザーとキューの既定電子メール アドレスのステータスを示し、値を 1 に設定する必要があります。 それ以外の場合は、受信メッセージと送信メッセージがブロックされます。 まだ承認状態でない場合、現在使用しているユーザー アカウントに prvApproveRejectEmailAddress 権限が割り当てられていれば、ユーザーまたはキュー レコードを更新してこの属性値を変更できます。

Note

Dynamics 365 for Customer Engagement では、Email.StatusCode 属性を null にすることはできません。

電子メール広告

Dynamics 365 Customer Engagement (on-premises) は、メールの一括メール要求を通じて大きな受信者リストにメールを送信する機能をサポートしています。 メールの一括処理要求が Dynamics 365 Customer Engagement (on-premises) に送られると、非同期サービス キュー内に非同期処理が作成され、それがバックグラウンド プロセスを使用してそのすべてのメール メッセージを送信します。 これでシステム パフォーマンスが向上します。

電子メール メッセージの一括送信には SendBulkMailRequest メッセージと BackgroundSendEmailRequest メッセージが使用されます。 電子メールの一括送信のシーケンスは次のとおりです。

  1. SendBulkMail 要求を実行します。 この要求は、対象となる電子メールの受信者を選択するクエリと、個々の電子メールを作成するための電子メール テンプレートで構成されます。

  2. 非同期サービスが受信者ごとに電子メール活動を作成します。

  3. 非同期サービスが各電子メール メッセージを送信します。 これらの電子メール メッセージの送信状態は "保留中" とされます。

  4. メール ルーター、Dynamics 365 for Outlook、またはサード パーティのメール送信コンポーネントが Dynamics 365 Customer Engagement (on-premises) にポーリングを行い、保留中のメール メッセージがないかどうかを調べます。保留中のメール メッセージが見つかった場合は、BackgroundSendEmail 要求を使用してメール メッセージをダウンロードします。

  5. BackgroundSendEmail 要求によって、保留中の電子メール メッセージが存在するかどうかがチェックされ、BackgroundSendEmailRequest メッセージの呼び出し元に電子メールがダウンロードされます。呼び出し元が複数の場合はダウンロードが同時に行われます。

  6. BackgroundSendEmailRequest メッセージの発信者は、ダウンロードされた電子メール メッセージを受け取り、送信します。

電子メールの添付ファイル

電子メール添付ファイルとは、電子メール メッセージまたは電子メール テンプレートに添付できるファイルです。 Office Word ドキュメント、Office Excel スプレッドシート、CAD ファイル、PDF ファイルなど、標準形式の任意のコンピューター ファイルを添付ファイルとすることができます。 複数のファイルを電子メール添付ファイルとして電子メールまたは電子メール テンプレートに添付できます。 アップロードできる最大ファイル サイズは、Organization.MaxUploadFileSize プロパティによって決まります。 このプロパティは、Dynamics 365 アプリケーションのシステム設定電子メールタブで設定します。 この設定で電子メール メッセージ、メモ、および Web リソースに添付できるファイルのサイズを制限します。 既定の設定は 5 MB です。

電子メール添付ファイルを電子メール メッセージまたはテンプレートに添付するには、活動 MIME 添付ファイルを作成または更新するときに、ActivityMimeAttachment.ObjectId 属性と ActivityMimeAttachment.ObjectTypeCode 属性を使用します。

次のコード サンプルは、電子メール添付ファイルを電子メールに添付する方法を示しています。

ActivityMimeAttachment _sampleAttachment = new ActivityMimeAttachment{  
    ObjectId = new EntityReference(Email.EntityLogicalName, _emailId),  
    ObjectTypeCode = Email.EntityLogicalName,  
    Subject = "Sample Attachment”,  
    Body = System.Convert.ToBase64String(new ASCIIEncoding().GetBytes("Example Attachment")),  
    FileName = "ExampleAttachment.txt"};  

同様に、電子メール添付ファイルを電子メールの代わりにテンプレートに添付するには、上記のコードに示されているように ActivityMimeAttachment.ObjectId 属性と ActivityMimeAttachment.ObjectTypeCode 属性の値を次のように置き換えます。

ObjectId = new EntityReference(Template.EntityLogicalName, _templateId), ObjectTypeCode = Template.EntityLogicalName,  

電子メール アタッチメントを作成する方法の完全なサンプル コードは、サンプル: 電子メールの添付ファイルの作成、取得、更新、および削除 を参照してください。

電子メール添付ファイルの再利用

電子メール添付ファイル レコードを作成すると、添付ファイルはファイル BLOB として保存されます。 ファイル BLOB は、電子メール添付ファイル レコードの ActivityMimeAttachment.AttachmentId 属性によって一意に識別されます。 したがって、他の電子メール レコードや電子メール テンプレート レコードで添付ファイルを再利用できるため、データベースに同じファイルのコピーを複数保持する必要はありません。

既存の添付ファイルを再利用するには

  1. 再利用する添付ファイルを含む ActivityMimeAttachment レコードを取得します。次にコード例を示します。

    ActivityMimeAttachment retrievedAttachment = (ActivityMimeAttachment)_serviceProxy.Retrieve(ActivityMimeAttachment.EntityLogicalName, _emailAttachmentId, new ColumnSet(true));  
    
  2. 新しい電子メール添付ファイル レコードを作成し、必要な電子メールまたは電子メール テンプレート レコードと関連付けて、取得した ActivityMimeAttachment レコードの添付ファイルを参照するように設定します。次にコード例を示します。

    ActivityMimeAttachment _reuseAttachment = new ActivityMimeAttachment{  
        ObjectId = new EntityReference(Email.EntityLogicalName, _emailId),  
        ObjectTypeCode = Email.EntityLogicalName,  
        Subject = "Sample Attachment”,  
        AttachmentId = retrievedAttachment.AttachmentId};  
    

    既存の添付ファイルを再利用するので、電子メール添付ファイル レコードを作成して電子メールまたは電子メール テンプレートに関連付けるときに、ActivityMimeAttachment.Body 属性と ActivityMimeAttachment.FileName 属性の値を指定する必要はありません。

関連項目

活動エンティティ
活動エンティティのサンプル コード
電子メール エンティティ
ActivityMimeAttachment エンティティ