我无法在任何地方找到很多东西.首先让我说我不想使用旧的Windows窗体.我想在visual studio 2008中为我的Outlook 2007插件项目添加一个新的WPF窗口.但WPF窗口模板却没有显示出来.我正在关注这个教程:http: //msdn.microsoft.com/en-us/library/bb410039.aspx,它甚至还有一张如何在outlook 2007插件中添加新的wpf窗口的图片.唯一的问题是它适用于visual studio 2005.当然,微软并没有从visual studio 2008中删除这个功能.我一定是做错了.
有没有人对我可以从这里去哪里有任何想法或建议?
我也无法使用visual studio 2008在msdn上找到类似的教程,这也很有帮助.
我有一个OL插件(c#com使用addin express)正在做这样的事情
mailItem = (Outlook.MailItem)OutlookApp.CreateItem(Outlook.OlItemType.olMailItem);
mailItem.To = ReceipientEmailAddress;
mailItem.Subject = "SOME TEXT";
mailItem.Body = NewBody;
mailItem.Display(false);
Run Code Online (Sandbox Code Playgroud)
但是这会导致默认签名消失我假设这是因为正在设置newBody我无法以任何方式读取签名或导致邮件创建包含签名
哦,这是OL 2007 .NET 2.0
我使用VSTO作为我的Outlook加载项.目前我正在处理所有Outlook联系人的电子邮件地址.如果EmailAddress1Type是"SMTP",则ContactInfo的实例没有问题.
但是如何获取Exchange联系人的电子邮件地址(Email1AddressType ="EX")?
Redemption库对我来说不是解决方案,因为解决这个问题很昂贵.
先感谢您,
杜尚
outlook vsto exchange-server outlook-object-model outlook-addin
我正在使用VSTO,VS 2010和Outlook 2010开发Outlook解决方案.
我想覆盖Outlook的发送行为的默认功能.
这是要求.
当用户点击发送按钮时,我必须检查它是否是短信 - "IPM.Note.Mobile.SMS".如果它是一个SMS,那么我必须提供我的自定义实现发送.如果它不是SMS,则默认发送行为.
对于自定义发送部分,我必须使用自己的Web服务并处理它.
我想要的是一种在Outlook 2010中覆盖默认发送功能的方法/方法.
我在MSDN,检查器包装器和执行自定义业务规则上阅读了一些文章,但我没有得到我想要的.我想要一个纯粹的C#解决方案而不是第三方dll喜欢兑换.我试图尽可能具体,我希望相同:)
请帮帮我:D谢谢,
问候 - 山姆
我正在C#/ VS 2010中编写一个Outlook Addin,并且我的应用程序正常工作,我想摆脱这个警告:
'Microsoft.Office.Interop.Outlook._MailItem.Close(Microsoft.Office.Interop.Outlook.OlInspectorClose)'和非方法'Microsoft.Office.Interop.Outlook.ItemEvents_10_Event.Close'.使用方法组.
但我不明白为什么会造成这种情况.
我有一个带有编辑框的简单 Outlook 功能区。用户单击发送按钮后,我会在 editBox 中捕获字符串并在 Application_ItemSend 中使用它。
我的问题是,在功能完成后,我想重置功能区的 UI(只是编辑框),以便用户在打开新消息屏幕时不会在同一个框中输入以前键入的字符串。我尝试了 Ribbon.Invalidate 但我似乎无法摆脱该字符串值。当我重新打开“新电子邮件”屏幕时,旧值仍然存在。
这是代码:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load_2010">
<ribbon>
<tabs>
<tab idMso="TabNewMailMessage">
<group id="TaskManager" insertBeforeMso="GroupSend" label="Task Manager">
<editBox id="editboxTaskID" label="Task ID #: " onChange="editboxTaskID_OnChange"
imageMso="RecordsAddFromOutlook" sizeString="wwwwww"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Run Code Online (Sandbox Code Playgroud)
和 VB 代码:
<Runtime.InteropServices.ComVisible(True)> _
Public Class CustomRibbon
Implements Office.IRibbonExtensibility
Private ribbon As Office.IRibbonUI
Public strTask_ID As String = ""
Public Sub New()
End Sub
Public Function GetCustomUI(ByVal ribbonID As String) As String Implements Office.IRibbonExtensibility.GetCustomUI
Return GetResourceText("Addin.Ribbon.xml")
End Function
Private Sub Application_ItemSend(ByVal …Run Code Online (Sandbox Code Playgroud) 我们编写了一个Outlook加载项,可以在发送电子邮件时启动操作.只有在撰写电子邮件期间设置了标志时才会发生此操作.通过单击切换按钮设置标志.当发送电子邮件时,会触发事件,并将电子邮件的ID存储在队列中.如果邮件出现在已发送文件夹中,则应触发事件,如果队列中发现相同的ID,则应执行操作.
下面我有两种方法.在发送电子邮件时将发生Application_ItemSend,并且在该方法中,在SentItemsQueue上调用EnQueue.EnQueue方法将事件附加到"已发送邮件"文件夹,并且在添加项目时,它应触发将启动我们操作的事件.
当电子邮件正在撰写并在Outlook中发送时,这一切都正常.如果我们从外部程序(如Word)中启动电子邮件,则会执行Application_ItemSend,但不会触发EMailFoundInSentItems(附加在EnQueue中).为什么事件从未被触发?
public partial class ThisAddIn {
void Application_ItemSend(object item, ref bool cancel)
{
try
{
Trace.TraceInformation("E-mail is being sent. Checking for archive flag.");
MailItem mail = item as MailItem;
bool? archive = mail.GetArchiveFlag();
if (archive == true)
{
Trace.TraceInformation("Archive flag was set, going to queue e-mail for archiving.");
this.SentItemsQueue.EnQueue(mail);
}
Marshal.ReleaseComObject(mail);
}
catch (System.Exception ex)
{
Trace.TraceError("An exception was thrown while trying to archive a sent mail item. Exception: {0}.", ex.ToString());
}
}
...
public class SentItemsArchiveQueue
{ …Run Code Online (Sandbox Code Playgroud) 我是新的VSTO 2015用户.我想将自定义组添加到Outlook 2010内置功能区消息选项卡.我跟着微软的例子.
创建项目后,我添加了一个新项目并选择了功能区(可视设计器).功能区显示在设计器中,但我无法在功能区的属性窗口中看到RibbonType属性.因此,我无法选择允许我将自定义组添加到消息选项卡的Microsoft.Outlook.Mail.Compose.
非常感谢您的帮助.
Explorer物体不发射的事件可能是什么原因?我正在使用下面的简单代码,只是为所有Explorer对象注册事件.我总是Init new Explorer!在调试窗口中获取一行,因此有一个Explorer对象.当我在Outlook中单击时,从邮件切换到日历视图,选择项目,切换回,切换到联系人,...我只得到一些(!)的第一个事件,而不是确定性的哪个事件.几秒钟之后,尽管仍然保持点击和更改视图,但我没有获得更多活动.这有什么不对?
private void ThisAddInStartup(object sender, System.EventArgs e)
{
foreach (var exp in this.Application.Explorers)
{
this.ExplorersOnNewExplorer(exp as Explorer);
}
this.Application.Explorers.NewExplorer += this.ExplorersOnNewExplorer;
}
private void ExplorersOnNewExplorer(Explorer currentExplorer)
{
Debug.WriteLine("Init new Explorer!");
currentExplorer.BeforeViewSwitch += this.CurrentExplorerOnBeforeViewSwitch;
currentExplorer.BeforeFolderSwitch += this.CurrentExplorerOnBeforeFolderSwitch;
currentExplorer.SelectionChange += this.CurrentExplorerOnSelectionChange;
currentExplorer.ViewSwitch += this.CurrentExplorerOnFolderSwitch;
currentExplorer.FolderSwitch += this.CurrentExplorerOnFolderSwitch;
}
private void CurrentExplorerOnBeforeFolderSwitch(object newFolder, ref bool cancel)
{
Debug.WriteLine("BeforeFolderSwitch!");
}
private void CurrentExplorerOnBeforeViewSwitch(object newView, ref bool cancel)
{
Debug.WriteLine("BeforeViewSwitch!");
}
private void CurrentExplorerOnFolderSwitch()
{
Debug.WriteLine("CurrentExplorerOnFolderOrViewSwitch!"); …Run Code Online (Sandbox Code Playgroud) 我正在使用Visual Studio项目模板创建一个新的Outlook Mail加载项,我在其中获取一个显示当前所选电子邮件属性的示例.
我添加了一个带有click事件处理程序的按钮,使用以下代码打开一个对话框:
$('#clickMeButton').click(function () {
Office.context.ui.displayDialogAsync('https://localhost/OutlookAddinTest/MessageDialog.html', {
height: 40,
width: 40,
requireHTTPS: true
}, function (result) {
_dlg = result.value;
_dlg.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogMessageReceived, dialogMessageReceived);
});
});
Run Code Online (Sandbox Code Playgroud)
我正在使用Chrome中的Outlook网络客户端进行调试:

我不知道它是否与此错误相关,但在我点击clickMeButton之前,我可以在加载网站后看到以下错误:

osfruntime.js:13 Error while parsing the 'sandbox' attribute: 'ms-allow-popups' is an invalid sandbox flag.OSF.OsfControl._createIframeAndActivateOsfControl @ osfruntime.js:13
Run Code Online (Sandbox Code Playgroud)
该displayDialogAsync(...)函数不应该用于Outlook Mail加载项吗?这可能是一个问题,因为它会在主Outlook html页面的上下文中加载另一个html页面.但它不能在Outlook桌面客户端中运行.
outlook-addin ×10
vsto ×6
c# ×3
outlook ×3
.net ×1
c#-4.0 ×1
office-js ×1
outlook-2007 ×1
outlook-2010 ×1
outlook-2013 ×1
wpf ×1