我已经编写了一个应用程序,它可以通过我设计的一个小型控制台应用程序自动从我们的系统发送邮件,作为webjob运行。该应用程序发送邮件完全正常,直到我尝试添加attatchments的集合。参照https://msdn.microsoft.com/office/office365/APi/mail-rest-operations#Createandsendmessages 我尝试发送自己的代码示例这个含有我Attatchments集合的单个对象,看起来像这样Outlook Rest API发送带附件的邮件
{ "@odata.type": "#Microsoft.OutlookServices.FileAttachment", "Name": "menu.txt", "ContentBytes": "bWFjIGFuZCBjaGVlc2UgdG9kYXk=" }
然而,在此之后API请求被错误拒绝:
{"error":{"code":"RequestBodyRead","message":"The property 'ContentBytes' does not exist on type 'Microsoft.OutlookServices.Attachment'. Make sure to only use property names that are defined by the type."}}
此外,在展望服务支持热线上花费半个小时的时间,去结账一些论坛,并阅读我一直在用于参考的文章,因为我开始了我所投入的项目。如果任何人都可以帮助我让这个API接受请求,我会永远感谢。
这是样本请求的样子。
POST https://outlook.office.com/api/v2.0/me/sendmail
{
"Message": {
"Subject": "Meet for lunch?",
"Body": {
"ContentType": "Text",
"Content": "The new cafeteria is open."
},
"ToRecipients": [
{
"EmailAddress": {
"Address": "[email protected]"
}
}
],
"Attachments": [
{
"@odata.type": "#Microsoft.OutlookServices.FileAttachment",
"Name": "menu.txt",
"ContentBytes": "bWFjIGFuZCBjaGVlc2UgdG9kYXk="
}
]
},
"SaveToSentItems": "false"
}
而且我知道消息对象有其设置为true时不影响通话的结果HasAttachments的布尔标志。
该示例与我的代码行匹配。关于你的开放性评论,我可以做些什么来声明这是一个FileAttatchment当我提供属性 - >“@ odata.type”:“#Microsoft.OutlookServices.FileAttachment”我在我的结尾使用的类肯定是无关紧要的,只要属性匹配我的意思是这是JSON时,它到达微软。我敢肯定,我在某个地方做了一个愚蠢的事,我只是无能为力,至于它究竟是什么。 – Ben