Dynamics 365 Web API 是微软 Dynamics 365 CRM 平台提供的 RESTful API 接口,允许开发者通过 HTTP 请求与 Dynamics 365 数据进行交互。电子邮件发送功能是其中重要的业务功能之一,可用于自动化业务流程中的通知、提醒等场景。
// C# 示例代码
public async Task SendEmailUsingWebApi(string serviceUrl, string accessToken)
{
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// 创建电子邮件实体
var email = new
{
subject = "测试邮件主题",
description = "这是邮件正文内容",
directioncode = true, // true 表示外发邮件
prioritycode = 1, // 1=高优先级
from = new[] { new { partyid_systemuser@odata.bind = "/systemusers(用户GUID)" } },
to = new[] { new { partyid_contact@odata.bind = "/contacts(联系人GUID)" } }
};
string requestUrl = $"{serviceUrl}/api/data/v9.1/emails";
var response = await client.PostAsJsonAsync(requestUrl, email);
if (response.IsSuccessStatusCode)
{
// 发送邮件
var emailId = JObject.Parse(await response.Content.ReadAsStringAsync())["emailid"].ToString();
var sendRequest = new
{
EmailId = emailId,
IssueSend = true,
TrackingToken = ""
};
requestUrl = $"{serviceUrl}/api/data/v9.1/SendEmail";
response = await client.PostAsJsonAsync(requestUrl, sendRequest);
}
}
}
// JavaScript 示例
async function sendEmailFromTemplate(serviceUrl, accessToken) {
const headers = {
"Authorization": `Bearer ${accessToken}`,
"Accept": "application/json",
"Content-Type": "application/json",
"OData-MaxVersion": "4.0",
"OData-Version": "4.0"
};
// 创建使用模板的邮件
const emailData = {
"email_activity_parties": [
{
"partyid_systemuser@odata.bind": "/systemusers(用户GUID)",
"participationtypemask": 1 // 发件人
},
{
"partyid_contact@odata.bind": "/contacts(联系人GUID)",
"participationtypemask": 2 // 收件人
}
],
"template@odata.bind": "/templates(模板GUID)",
"regardingobjectid_account@odata.bind": "/accounts(相关客户GUID)"
};
const response = await fetch(`${serviceUrl}/api/data/v9.1/emails`, {
method: "POST",
headers: headers,
body: JSON.stringify(emailData)
});
if (response.ok) {
const email = await response.json();
const sendResponse = await fetch(`${serviceUrl}/api/data/v9.1/SendEmail`, {
method: "POST",
headers: headers,
body: JSON.stringify({
EmailId: email.emailid,
IssueSend: true
})
});
}
}
原因:调用API的用户没有发送邮件的权限或对相关实体的访问权限不足
解决方案:
原因:
解决方案:
原因:
解决方案:
原因:
解决方案:
通过合理使用Dynamics 365 Web API的电子邮件功能,可以实现业务流程的自动化,提高客户沟通效率,并确保所有沟通记录都保存在系统中便于追踪和分析。
没有搜到相关的文章