我正在尝试为Outlook 2010创建一个自定义规则来检查电子邮件的主题,如果它生成正则表达式,则会将其移动到特定文件夹中.
但是,当我运行脚本时,当我尝试获取我要将消息移动到的文件夹的Outlook.Folder对象时,我收到以下错误:
运行时错误'91':
对象变量或未设置块变量
下面是我用来检查电子邮件主题的VBA脚本,如果匹配则将邮件移动到指定的文件夹.
Sub MoveToETS(Item As Outlook.MailItem)
Dim Subject As String
Subject = Item.Subject
Dim FolderToMoveTo As Outlook.Folder
Set FolderToMoveTo = GetFolder("ETS")
If (CheckSubject(Subject, "^[Project|Bug] (\d+?) - \[[UPDATE|NEW|RESOLVED]\]")) Then
Item.Move (FolderToMoveTo)
End If
End Sub
Function CheckSubject(Subject As String, PatternToCheck As String)
Dim ObjRegExp As RegExp
Dim ObjMatch As Match
Set ObjRegExp = New RegExp
ObjRegExp.Pattern = PatternToCheck
If (ObjRegExp.Text(Subject) = True) Then
CheckSubject = True
End If
End Function
Function GetFolder(ByVal FolderName As String) As Outlook.Folder …Run Code Online (Sandbox Code Playgroud) 我正在使用C#VSTO 3.0 Outlook加载项,我需要捕获Print事件(当用户从Outlook中选择打印选项以打印电子邮件时).我在Outlook对象模型中找不到任何提供此事件访问权限的API.有没有办法实现这个目标?
我想处理Outlook邮件中的超链接点击事件.在Outlook电子邮件中打开超链接而无需在其自身内打开浏览器.
有谁知道如何处理邮件项目上的超链接点击事件?
我是Outlook编程的新手,所以第一步(稍后更高级)是以下任务:
Explorer部分很容易上手但我在为新的检查员做上述操作时遇到了问题
我尝试了各种方法,但似乎没有工作:
我已经尝试在NewInspector中引用Globals.Ribbons [inspector] .Ribbon1但是它总是为null
我已经尝试在NewInspector中订阅Activate事件并从那里开始,但在那里Application.ActiveInspector()为null,如果我从NewInspector事件存储检查器的全局副本,它在第一个上不起作用新检查员(仅在第二次和之后阅读邮件.不是撰写邮件)
我曾尝试使用Ribbon Load事件,但这只是第一次发生
我曾尝试使用Globals.Ribbons.Ribbon1成员,但这只是第一次使用
(我发现了很多NewInspector的样本,但似乎没有人想修改除此之外的功能区/sf/ask/549641221/ to-an-an-an-object,为此没有答案)
这让我发疯了......难道真的没办法做这么简单的任务!?
示例代码供参考
void InspectorsNewInspector(Outlook.Inspector inspector)
{
AddInspectorEventHandlers(inspector);
}
private void AddInspectorEventHandlers(Outlook.Inspector inspector)
{
if (inspector == null)
{
return;
}
Ribbon1 ribbon1 = Globals.Ribbons[inspector].Ribbon1; //This always return null!!!
((Outlook.InspectorEvents_10_Event)inspector).Activate += InspectorActivate;
((Outlook.InspectorEvents_10_Event)inspector).Close += InspectorClose;
_openInspectors.Add(inspector);
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个VSTO Outlook插件.配置如下:
它在Dev PC上工作正常但是一旦安装在测试机器上就无法加载.outlook addin窗口显示了一个"Not loaded. A runtime error occurred during loading of COM add-in"
我的理解是,我不需要安装任何PIA,因为Office 2007 PIA是Office 2010的一部分.
到目前为止,我尝试了以下内容:
VSTO_SUPPRESSDISPLAYALERTS但是设置它在尝试启动时不显示任何消息.Fuslogvw.exe(程序集绑定日志查看器),但它没有显示任何绑定错误.VTSO_LOGALERTS并记录所有警报但是没有显示这没有帮助.除了让这个工作之外,我还有什么不对或需要做的吗?
我编写此代码以查找指定时间范围内指定类别的所有约会的总持续时间:
private readonly MAPIFolder _timing;
private int CalculateTotalDuration(DateTime start, DateTime end, string category)
{
string filter = String.Format(
"([Start] >= '{0:g}') AND ([End] <= '{1:g}') AND ([Categories] = '{2}')",
start, end, category);
return _timing.Items.Restrict(filter).Cast<AppointmentItem>().
Sum(appt => appt.Duration);
}
Run Code Online (Sandbox Code Playgroud)
当与俄语版本的Outlook一起使用时,此代码会导致以下异常(虽然我没有使用英文版测试它):
System.Runtime.InteropServices.COMException was unhandled
Message=??????? ???????.
Source=Microsoft Outlook
ErrorCode=-2147352567
StackTrace:
at Microsoft.Office.Interop.Outlook._Items.Restrict(String Filter)
...
Run Code Online (Sandbox Code Playgroud)
当我更换[Categories]使用[?????????],即
string filter = String.Format(
"([Start] >= '{0:g}') AND ([End] <= '{1:g}') AND ([?????????] = '{2}')",
start, end, category);
Run Code Online (Sandbox Code Playgroud)
它适用于俄语版的Outlook.但显然它不适用于其他语言.
如何以多语言方式按类别筛选Outlook约会?
我在html中创建了一个简单的电子邮件签名,他是代码:
<html>
<!-- Company logo goes here -->
<div id="far_left"
style="width: 50px;
height: 50px;
float: left;
margin-right: 10px;">
<img src="logo.png" />
</div>
<!-- Name and occupation goes here -->
<div id="top"
style="height: 25px;">
<span style="font-family: Arial, Verdana, 'Sans Serif'; font-size: 22; color: #464646;"><strong>Dean Grobler</strong>, Programmer</span>
</div>
<!-- Website link and email adress goes here -->
<div id="bottom"
style="font-family: Arial, Verdana, 'Sans Serif';
font-size: 14px;
color: #464646;
padding: 5px;
height: 25px;">
<a href="http://www.deangrobler.com" style="text-decoration: none; color: #84d5f6">www.deangrobler.com</a> |
<a href="mailto:dean@deangrobler.com" style="text-decoration: …Run Code Online (Sandbox Code Playgroud) 我在我的Android设备上创建了多个联系人vCard VCF文件,我想将其导入到Outlook 2010.似乎Outlook不支持多个联系人VCF文件,只导入这个文件中的第一个联系人.有没有办法将我的1000个联系人从这样的VCF文件导入Outlook 2010?
我正在通过以下方式获取我的默认收件箱文件夹 inboxFolder = Globals.ThisAddIn.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox
在我的代码的其他地方,我开始执行 foreach 循环以从这些 MailItems 中提取我想要的特定信息
foreach (var item in this.inboxFolder.Items)
{
Outlook.MailItem mailItem = (Outlook.MailItem)item;
//.... doing stuff here
string SenderEmail = mailItem.SenderEmailAddress;
string SenderName = mailItem.SenderName;
string FolderLocation = mailItem.???; //how to retrieve folder location?
//.... more stuff here
}
Run Code Online (Sandbox Code Playgroud)
例如: 用户可能创建了一个名为“Test”的子文件夹,如下所示。

我Reference想Microsoft.Office.Interop.Outlook在我的web项目中添加一个Namespace,我正在使用.Net 2.0和visual studio 2012
题
我应该选择使用以下哪一个 Outlook 2010
我试图谷歌这个,我找不到任何东西

outlook-2010 ×10
c# ×6
outlook ×5
vsto ×4
.net ×1
css ×1
email-client ×1
html ×1
import ×1
mapi ×1
outlook-2007 ×1
signatures ×1
vb.net ×1
vba ×1
vcf ×1
vcf-vcard ×1