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

 

公開日: 2016年11月

対象: Dynamics CRM 2015

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

このトピックの内容

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

電子メール広告

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

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

Microsoft Dynamics CRM SDK では、電子メール活動の以下のアクションを実行できます。

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

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

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

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

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

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

注意

Microsoft Dynamics CRM 2015 および Microsoft Dynamics CRM Online 2015 更新プログラム では、Email.StatusCode 属性を null にできません。

電子メール広告

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

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

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

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

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

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

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

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

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

電子メール添付ファイルとは、電子メール メッセージまたは電子メール テンプレートに添付できるファイルです。Microsoft Office Word ドキュメント、Microsoft Office Excel スプレッドシート、CAD ファイル、PDF ファイルなど、標準形式の任意のコンピューター ファイルを添付ファイルとすることができます。 複数のファイルを電子メール添付ファイルとして電子メールまたは電子メール テンプレートに添付できます。アップロードできる最大ファイル サイズは、Organization.MaxUploadFileSize プロパティによって決まります。 このプロパティは、CRM アプリケーションの [システム設定][電子メール] タブで設定します。 この設定で電子メール メッセージ、メモ、および 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 属性の値を指定する必要はありません。

関連項目

活動エンティティ
活動エンティティのサンプル コード
電子メール (Email) エンティティのメッセージおよびメソッド
活動の MIME 添付ファイル (ActivityMimeAttachment) (電子メール添付) エンティティのメッセージおよびメソッド

© 2017 Microsoft. All rights reserved. 著作権