我想使用 MS Dynamics Web API 创建电子邮件。
我在这里发布数据
{
"sender": "[email protected]",
"torecipients": "[email protected]",
"subject": "Test Subject New 1234567",
"description": "Test Description New 1234567"
}
但是发件人和收件人未反映在Dynamics CRM中。 仅显示主题和描述。
我有什么遗漏的吗?
您必须填充集合值导航属性
email_activity_parties
来填充 From
和 To
字段。 sender
和 torecipients
是仅用于报告目的的字段,其中包含这些活动各方的电子邮件地址。
var email = {};
email["subject"] = "Email demo from Web API";
email["description"] = "This a web api test";
email["[email protected]"] = "/contacts(C41CE33F-D0A0-E611-811E-5065F38C8781)";
//activityparty collection
var activityparties = [];
//from party
var from = {};
from["[email protected]"] = "/systemusers(8D23B2C1-9869-4C3F-9A80-BA51375C1784)";
from["participationtypemask"] = 1;
//to party
var to = {};
to["[email protected]"] = "/contacts(C41CE33F-D0A0-E611-811E-5065F38C8781)";
to["participationtypemask"] = 2;
activityparties.push(to);
activityparties.push(from);
//set to and from to email
email["email_activity_parties"] = activityparties;
编辑:
JSON 将如下所示:
{
"subject": "Test Subject New 1234567",
"description": "Test Description New 1234567",
"[email protected]": "/contacts(<GUID>)",
"email_activity_parties": [
{
"[email protected]": "/contacts(<GUID>)",
"participationtypemask": 2
},
{
"[email protected]": "/systemusers(<GUID>)",
"participationtypemask": 1
}
]
}
通过这种方法,From vales 会被填充,但 CC 和 To vales 不会被填充。
将此函数与数据帧输入一起使用。
def transform_df(df):
result = []
for index, row in df.iterrows():
entity_binding = f"/{row['partyid_entitytype']}s({row['partyid'].upper()})"
if row['participationtypemask'] == 1:
if row['partyid_entitytype'] == '':
result.append({
f"addressused": f"{row['addressused']}",
"participationtypemask": row['participationtypemask']
})
else:
result.append({
f"partyid_{row['partyid_entitytype']}@odata.bind": f"{row['addressused']}",
"participationtypemask": row['participationtypemask']
})
elif row['participationtypemask'] == 2:
if row['partyid_entitytype'] == '':
result.append({
f"addressused": f"{row['addressused']}",
"participationtypemask": row['participationtypemask']
})
else:
result.append({
f"partyid_{row['partyid_entitytype']}@odata.bind": entity_binding,
"participationtypemask": row['participationtypemask']
})
elif row['participationtypemask'] == 3:
result.append({
f"addressused": f"{row['addressused']}",
"participationtypemask": row['participationtypemask']
})
elif row['participationtypemask'] == 4:
result.append({
f"addressused": f"{row['addressused']}",
"participationtypemask": row['participationtypemask']
})
return result