我尝试通过Azure自动化(带有消息ID)将带有附件的电子邮件转发到特定的电子邮件地址。运行代码后,我在底部收到错误消息。我不确定我是否走在正确的轨道上(包括电子邮件发送和发送附件)。也许有更好的方法来做到这一点。 有人可以帮忙吗?
$credObject = Get-AutomationPSCredential -Name "Myscreds"
$url = "https://outlook.office365.com/api/v1.0/me/AAMkADA1MTAAAH5JaL/forward"
$body = "{
""Message"":{
""Subject"": ""This is a test"",
""Importance"": ""Low"",
""Body"": {
""ContentType"": ""HTML"",
""Content"": ""This is great!""
},
""ToRecipients"": [
{
""EmailAddress"":{
""Address"": ""myname@test.com""
}
}
]
}}"
Invoke-RestMethod -Uri $url -Method Post -Credential $credobject -ContentType "application/json" -Body $Body
我收到以下错误消息:
Invoke-RestMethod:远程服务器返回错误:(400)Bad Request。 在行:24 char:1 + Invoke-RestMethod -Uri $ url -Method Post -Credential $ credobject -Con ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidOperation:(System.Net.HttpWebRequest:HttpWebRequest)[Invoke-RestMethod], 引发WebException + FullyQualifiedErrorId:WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
感谢。
答案 0 :(得分:0)
根据Microsoft documentation,您需要修改您的请求。
https://outlook.office.com/api/v1.0/me/messages/AAMkAGE0Mz8DmAAA=/forward
您似乎忘了在请求中加入/messages/
。
但是,当您转发邮件时,您似乎想要更改邮件的正文。这更复杂,您需要遵循此工作流程:
或者,如果您需要修改要转发的邮件中的任何可更新属性,您可以先create a draft forward message,u pdate the message properties,然后发送回复。
这就是看起来的样子。
首先,制作要转发的邮件的草稿
$request = "https://outlook.office365.com/api/v1.0/me/messages/AAMkADA1MTAAAH5JaL/createforward"
$body = {
"ToRecipients":[
{
""EmailAddress"":{
""Address"": ""myname@test.com""
}
}
],
"Comment": "Your sample message here"
}
回复将包括一些属性,包括新消息的ID。然后,您可以使用它来编辑草稿(更改主题等),然后将其发送出去。如果您需要任何进一步的帮助,请告诉我。
答案 1 :(得分:0)
确定。我的消息ID不正确,这是我的主要问题。一切都解决了。我可以使用消息ID转发带附件的邮件。再次感谢。
$credObject = Get-AutomationPSCredential -Name "mycreds"
$url = "https://outlook.office365.com/api/v1.0/Users('it-test@test.com')/messages/ASHJFKHFUISDFWIzLT=/forward"
$body = "{
""Comment"": ""A mail with some attachments (hopefully)"",
""ToRecipients"": [
{
""EmailAddress"":{
""Address"": ""myname@test.com""
}
}
]
}"
Invoke-RestMethod -Uri $url -Method Post -Credential $credobject -ContentType "application/json" -body $body