从 Office.Interop.Outlook 迁出
Migrating away from Office.Interop.Outlook
我们目前使用 Microsoft.Office.Interop.Outlook 打开带有预格式化 MailItem 的 Outlook。这样用户就可以在发送电子邮件之前更改任何信息。
已搜索 Exchange WebServices 但未找到等效项。
我尽可能清理了下面的代码。我们想在用户桌面上的当前版本的 Outlook 中打开一条消息。目前,我们有本地 Exchange 和 Office 2010,我们正在迁移到云中的 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
协议外,没有其他方法可以使用预格式化的电子邮件打开已安装的 Outlook 版本。技术在所有 Outlook 版本中保持不变。有关详细信息,请参阅 C# app automates Outlook (CSAutomateOutlook)。
您可以使用 mailto
link(不支持附件)或创建 MSG(二进制)或 EML(MIME 文本)文件:Outlook 将很乐意打开并显示它。
在后一种情况下(.EML 文件),不要忘记添加 "X-Unsent: 1"
MIME header 以强制 Outlook 将邮件视为未发送并显示“发送”按钮。
我们目前使用 Microsoft.Office.Interop.Outlook 打开带有预格式化 MailItem 的 Outlook。这样用户就可以在发送电子邮件之前更改任何信息。
已搜索 Exchange WebServices 但未找到等效项。
我尽可能清理了下面的代码。我们想在用户桌面上的当前版本的 Outlook 中打开一条消息。目前,我们有本地 Exchange 和 Office 2010,我们正在迁移到云中的 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
协议外,没有其他方法可以使用预格式化的电子邮件打开已安装的 Outlook 版本。技术在所有 Outlook 版本中保持不变。有关详细信息,请参阅 C# app automates Outlook (CSAutomateOutlook)。
您可以使用 mailto
link(不支持附件)或创建 MSG(二进制)或 EML(MIME 文本)文件:Outlook 将很乐意打开并显示它。
在后一种情况下(.EML 文件),不要忘记添加 "X-Unsent: 1"
MIME header 以强制 Outlook 将邮件视为未发送并显示“发送”按钮。