crm操作电子邮件
using System;
using Microsoft.Xrm.Sdk;
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Query;
/// <summary>
/// 电子邮件
/// </summary>
public class EmailHelper
{
public static readonly string entityName = "email";
public Guid emailId = Guid.Empty;
public IOrganizationService service;
/// <summary>
/// 创建电子邮件
/// </summary>
public void Create()
{
Entity en = new Entity();
en["subject"] = "电子邮件測试";
en["activityId"] = Guid.NewGuid();
emailId = service.Create(en);
}
/// <summary>
/// 异步发送电子邮件
/// </summary>
/// <param name="query">查询的条件</param>
public void BackgroundSendEmail(QueryBase query)
{
BackgroundSendEmailRequest request = new BackgroundSendEmailRequest();
request.Query = query;
BackgroundSendEmailResponse response = (BackgroundSendEmailResponse)service.Execute(request);
EntityCollection entityCollection = response.EntityCollection;
bool[] hasAttachments = response.HasAttachments;
}
/// <summary>
/// 检查是否应该将传入电子邮件提升到 Microsoft Dynamics CRM 系统
/// </summary>
/// <param name="messageId">消息id</param>
/// <param name="subject">主题</param>
public void CheckPromoteEmail(string messageId,string subject)
{
CheckPromoteEmailRequest request = new CheckPromoteEmailRequest();
request.MessageId = messageId;
request.Subject = subject;
CheckIncomingEmailResponse response = (CheckIncomingEmailResponse)service.Execute(request);
int reasonCode = response.ReasonCode;
bool shouldDeliver = response.ShouldDeliver;
}
/// <summary>
/// 发送批量电子邮件
/// </summary>
/// <param name="query">查询的条件</param>
/// <param name="templateId">模版id</param>
public void SendBulkMail(QueryBase query,Guid templateId)
{
WhoAmIRequest emailSenderRequest = new WhoAmIRequest();
WhoAmIResponse emailSenderResponse = service.Execute(emailSenderRequest) as WhoAmIResponse;
SendBulkMailRequest request = new SendBulkMailRequest();
request.Query = query;
request.Sender = new EntityReference() { LogicalName = "systemuser", Id = emailSenderResponse.UserId };
request.RequestId = Guid.Empty;
request.RegardingType = "systemuser";
request.TemplateId = templateId;
SendBulkMailResponse response = (SendBulkMailResponse)service.Execute(request);
}
/// <summary>
/// 使用模板发送电子邮件
/// </summary>
/// <param name="userId">发送人。用户id</param>
/// <param name="contractId">接收人,联系人id</param>
/// <param name="templateId">模版id</param>
public void SendEmailFromTemplate(Guid userId, Guid contractId, Guid templateId)
{
Entity fromEn = new Entity() { LogicalName = "systemuser",Id = userId };
Entity toEn = new Entity() { LogicalName = "contract", Id = contractId };
Entity emailEn = new Entity() { LogicalName = entityName };
emailEn["from"] = new Entity[] { fromEn };
emailEn["to"] = new Entity[] { toEn };
emailEn["subject"] = "电子邮件发送測试";
emailEn["directioncode"] = true;
SendEmailFromTemplateRequest request = new SendEmailFromTemplateRequest();
request.Target = emailEn;
request.TemplateId = templateId;
request.RegardingId = contractId;
request.RegardingType = "contract";
SendEmailFromTemplateResponse response = (SendEmailFromTemplateResponse)service.Execute(request);
Guid id = response.Id;
}
/// <summary>
/// 发送电子邮件
/// </summary>
public void SendEmail()
{
SendEmailRequest request = new SendEmailRequest();
request.EmailId = emailId;
request.IssueSend = true;
request.TrackingToken = "";
SendEmailResponse response = (SendEmailResponse)service.Execute(request);
string subject = response.Subject;
}
/// <summary>
/// 获取用于对存储在 Microsoft Dynamics CRM 数据库中的用户或队列的电子邮件凭据进行加密或解密的密钥
/// </summary>
public void GetDecryptionKey()
{
GetDecryptionKeyRequest request = new GetDecryptionKeyRequest();
GetDecryptionKeyResponse response = (GetDecryptionKeyResponse)service.Execute(request);
string key = response.Key;
}
/// <summary>
/// 删除电子邮件
/// </summary>
public void Delete()
{
service.Delete(entityName, emailId);
}
}
crm操作电子邮件的更多相关文章
- crm操作业务部门
using System; using System.Linq; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messag ...
- crm操作货币实体
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; /// <summary> ...
- crm操作权限
using System; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Query; using System.Colle ...
- crm操作知识库文章实体
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using Microsoft ...
- crm操作观点
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; /// <summary> ...
- crm操作安全角色
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using System.Co ...
- crm操作产品实体
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; /// <summary> ...
- crm操作销售订单实体
using System; using Microsoft.Xrm.Sdk; using Microsoft.Xrm.Sdk.Query; using Microsoft.Cr ...
- crm操作约会实体
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using Microsoft ...
随机推荐
- Solr6.6.0 用 SimplePostTool索引文件 中文乱码
在用SimplePostTool工具导入CSV文件,文件内容如下: 启动solr ,利用命令导入:java -Dtype=text/csv -Dc=solr_test -jar post.jar .. ...
- java源码阅读StringBuilder
1类签名与注释 public final class StringBuilder extends AbstractStringBuilder implements java.io.Serializab ...
- Selenium webdriver Java 封装与重用
目的 1. 简化调用 WebDriver对页面的操作,需要找到一个WebElement,然后再对其进行操作,比较繁琐: WebElement element =driver.findElement(B ...
- asp.net 中点击button弹出模式对话框,选择值后返回到页面中(window.showModalDialog实现)
<td>现从事专业</td><td> <asp:TextBox ID="tbMajor" runat="server ...
- lodash 集合处理方法 map和filter区别
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- 图解avaScript中this指向(超透彻)
一个图讲清楚JavaScript中this指向: 说明: (1)严格模式下,禁止this关键字指向全局对象会报错. (2)闭包中的this对象具有全局性,因此通常指向window. (3)优先级:n ...
- 后缀数组suffix array
倍增算法,时间复杂度O(nlogn) sa从小到大保存相对大小的下标 理解LSD,x数组,sa数组 char s[maxn]; int sa[maxn],t[maxn],t2[maxn],c[maxn ...
- 【Python 数据分析】Numpy模块
Numpy模块可以高效的处理数据,提供数组支持.很多模块都依赖他,比如:pandas.scipy.matplotlib 安装Numpy 首先到网站:https://www.lfd.uci.edu/~g ...
- 每日一个机器学习算法——LR(逻辑回归)
本系列文章用于汇集知识点,查漏补缺,面试找工作之用.数学公式较多,解释较少. 1.假设 2.sigmoid函数: 3.假设的含义: 4.性质: 5.找一个凸损失函数 6.可由最大似然估计推导出 单个样 ...
- JAVA-IO操作,字节-字符转换流
掌握OutputStreamWriter和InputStreamReader类的作用 一般操作输入输出内容的时候,就需要使用字节或字符流,但是,有些时候,需要将字符流变成字节流形式,或者字节流变成字符 ...