電子メール活動テーブル

注意

エンティティとテーブルの違いがわかりませんか? Microsoft Dataverse で「開発者: 用語を理解する」を参照してください。

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

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

Dataverse Web サービスでは、メール活動の以下のアクションを実行できます:

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

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

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

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

  • 着信した電子メール メッセージが Microsoft Exchange Server からユーザーまたはキューへ配信されるようにする、または発信するメッセージがユーザーまたはキューから Microsoft Exchange Server へ送信されるようにする。

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

注意

Dataverse では、Email.StatusCode 属性を null にできません。

電子メール広告

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

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

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

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

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

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

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

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

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

電子メール添付ファイルとは、電子メール メッセージまたは電子メール テンプレートに添付できるファイルです。 Office Outlook ドキュメント、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 列の値を指定する必要はありません。

関連項目

アクティビティ テーブル
サンプル: 電子メールの送信
Email テーブル
ActivityMimeAttachmentl テーブル

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。