首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向EWS转发签名电子邮件失败,“未找到指定的对象”

向EWS转发签名电子邮件失败,“未找到指定的对象”
EN

Stack Overflow用户
提问于 2019-07-22 16:57:09
回答 1查看 112关注 0票数 0

我们有一个服务,将所有传入的电子邮件转发到Exchange服务器给特定的团队成员。我们有两个问题与签名电子邮件-提取附件从这些邮件和转发这些签名的电子邮件。我们已经解决了使用米梅杰包提取附件的问题。

当尝试用转发方法转发签名电子邮件时,如果出现以下错误,它将失败:

未在存储区中找到指定的对象。无法打开附件。

代码看起来像这样,没有什么特别之处:

代码语言:javascript
复制
origMessage.Forward(Nothing, forwardToAddress)

这是EWS的一个已知问题吗?引用“打开附件”的错误让我觉得它应该查找一些实际上不存在的附件--消息中唯一的附件是签名smime.7m

如果电子邮件没有签名,则相同的行执行得很好,并成功地转发了电子邮件。既然我们成功地解决了与Mimekit的第一个问题,是否也能帮助转发签名的电子邮件?

EN

回答 1

Stack Overflow用户

发布于 2019-07-24 12:15:29

由于我无法正确转发电子邮件,我决定“假装转发”,基本上发送一个新的信息,看起来是一样的。我怀疑问题是原始邮件中存在证书数据,我不允许转发。新创建的电子邮件(显然)不包含此证书。

代码语言:javascript
复制
Private Shared Sub FakeForwardOfSignedEmail(ByRef origMail As EmailMessage, ByVal cc As String, ByRef attachments As List(Of Tuple(Of String, Byte())))
         Dim fakeForward = origMail.CreateForward()
         fakeForward.ToRecipients.Add(cc)
         fakeForward.Subject = "FW: " + origMail.Subject

         Dim body As New MessageBody
         body.Text = "<hr><b>From: </b>" + origMail.Sender.Name + " (" + origMail.Sender.Address + ")<br />"
         body.Text += "<b>Sent: </b>" + origMail.DateTimeSent.ToString + "<br />"
         body.Text += "<b>To: </b>" + origMail.ReceivedBy.Name + " (" + origMail.ReceivedBy.Address + ")<br />"
         body.Text += "<b>Subject: </b>" + origMail.Subject + "<br /><br />"
         body.Text += origMail.Body.ToString
         fakeForward.Body = body

         Dim forwardMsg As EmailMessage = fakeForward.Save()
         For Each att As Tuple(Of String, Byte()) In attachments
            forwardMsg.Attachments.AddFileAttachment(att.Item1, att.Item2)
         Next

         forwardMsg.Send()
      End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57150586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档