我们目前使用 Microsoft.Office.Interop.Outlook 来打开带有预格式化 MailItem 的 Outlook。这样用户就可以在发送电子邮件之前更改任何信息。
搜索 Exchange WebServices 但没有找到等效项。
我尽可能地清理了下面的代码。我们想在用户桌面上的当前版本的 Outlook 中打开一条消息。目前,我们在 Prem 和 Office 2010 上有 Exchange,我们正在迁移到云中的 Office 2016 和 O365。
Public Function OpenOutlookSendWithAttachment(ByVal Subject As String, ByVal Body As String, ByVal FileName As String) As Boolean
Dim bSuccess As Boolean = True
Dim OutlookApplication As Microsoft.Office.Interop.Outlook.Application
Dim OutlookMailItem As Microsoft.Office.Interop.Outlook.MailItem
Try
OutlookApplication = New Microsoft.Office.Interop.Outlook.Application
Try
If OutlookApplication.Session.Offline Then OutlookApplication.Session.Logon("", "", True, True)
Catch ex As Exception
End Try
OutlookMailItem = OutlookApplication.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem)
OutlookMailItem.Subject = Subject
OutlookMailItem.Body = Body & vbNewLine
OutlookMailItem.Attachments.Add(FileName)
OutlookMailItem.Display(True)
Catch ex As Exception
bSuccess = False
Finally
OutlookMailItem = Nothing
OutlookApplication = Nothing
End Try
Return bSuccess
End Function
寻找任何 .Net 方法来执行等效操作。
您可以使用mailto
链接(不支持附件)或创建 MSG(二进制)或 EML(MIME 文本)文件:Outlook 很乐意打开并显示它。
在后一种情况下(.EML 文件),不要忘记添加"X-Unsent: 1"
MIME 标头以强制 Outlook 将邮件视为未发送并显示“发送”按钮。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句