我有一个Microsoft应用程序(具有Mail.Read/Write权限),并且需要向用户收件箱中插入邮件(.eml扩展名文件)。
有可能吗?我知道使用Gsuite可以使用“插入” API来完成,并且想知道Graph API是否存在类似的东西。
我不是在向用户发送新邮件或在用户收件箱中插入现有邮件的附件,而是在将全新的电子邮件插入他的收件箱(无需通过SPF或进行任何检查)通常在邮件进入最终用户收件箱之前)。
查看Graph API文档下的Mail部分并没有太大帮助。
如果那不可能,也许有解决方法?
编辑:似乎最好的选择是使用“发送邮件” API并指定“ saveToSentItems”:False ..唯一的问题是我的应用程序也需要请求Mail.Send权限。 >
谢谢
答案 0 :(得分:0)
您不需要使用发送邮件api,因为您所做的全部工作就是在邮箱中创建项目。如果希望它显示为“已发送邮件”(而不是草稿),则需要设置PidTagMessageFlags扩展属性(与在EWS https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-import-items-by-using-ews-in-exchange中使用的属性相同)。另外,如果希望它在过去发送时显示,则需要设置一些其他扩展属性。例如
{
"Subject": "test1234",
"Sender": {
"EmailAddress": {
"Name": "blah",
"Address": "blah@blah.com"
}
},
"Body": {
"ContentType": "HTML",
"Content": "123Body"
},
"SingleValueExtendedProperties": [
{
"PropertyId": "Integer 0x0E07",
"Value": "1"
},
{
"PropertyId": "SystemTime 0x0039",
"Value": "2019-06-12T10:10:47.2048+10:00"
},
{
"PropertyId": "SystemTime 0x0E06",
"Value": "2019-06-12T10:10:47.2048+10:00"
}
]
}