使用Go msgraph-sdk-go库,我正在try 转发一条消息.如果我只有一个"收件人"收件人,我可以没有问题,但如果我有"抄送"和/或"密件抄送"收件人,我不能让他们添加到邮件.
与Forward().Post()
函数一起使用的普通questBody(users.NewItemMailFoldersItemMessagesItemForwardPostRequestBody()
)只有SetToRecipients()
函数,但没有SetCcRecipients()
或SetBccRecipients()
函数.
我try 了各种方法来解决这个问题,但我所做的最接近的try 仍然不起作用.我没有调用Forward().Post()
,而是调用CreateForward().Post()
,这将创建消息草稿,并返回消息对象(models.Messageable
).
然后,我可以在该消息对象上调用SetToRecipients()
、SetCcRecipients()
和/或SetBccRecipients()
函数.然后,我对消息调用Patch()
以将更改保存到服务器,然后调用Send()
,但不断收到错误,指示没有定义收件人.
我正在使用的代码如下(简化):
func forwardMessage(id string, toRecipients []models.Recipientable, ccRecipients []models.Recipientable, bccRecipients []models.Recipientable) (success bool) {
var err error
var message models.Messageable
var requestBody = users.NewItemMailFoldersItemMessagesItemForwardPostRequestBody()
message, err = pClient.Users().ByUserId(cpMailbox).Messages().ByMessageId(id).CreateForward().Post(context.Background(), requestBody, nil)
if err != nil {
fmt.Println(getOdataErrorV1(err).Error())
return false
}
message.SetToRecipients(toRecipients)
if len(ccRecipients) > 0 {
message.SetCcRecipients(ccRecipients)
}
if len(bccRecipients) > 0 {
message.SetBccRecipients(bccRecipients)
}
message, err = pClient.Users().ByUserId(cpMailbox).Messages().ByMessageId(*message.GetId()).Patch(context.Background(), message, nil)
if err != nil {
fmt.Println(getOdataErrorV1(err).Error())
return false
}
err = pClient.Users().ByUserId(cpMailbox).Messages().ByMessageId(*message.GetId()).Send().Post(context.Background(), nil)
if err != nil {
fmt.Println(getOdataErrorV1(err).Error())
return false
}
return true
}
任何帮助弄清楚这一点的人都将不胜感激!