MAPIFolder.UserDefinedProperties 的作用

本文介绍了如何在Outlook中使用UserDefinedProperties自定义文件夹下项目的属性,并通过实例演示了如何添加自定义属性及在视图中显示这些属性。

在OOM(Outlook Object Module)中UserDefinedProperties看起来非常奇怪,你可以定义它,却不能给它赋值。其实UserDefinedProperties是用来建立一个用户自定义项来显示其文件夹下Item中相应的自定义值的。下面是个用来说明的小例子。

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Outlook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;
using System.Windows.Forms;

namespace OutlookAddIn1
{
    public partial class ThisAddIn
    {
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            Application.Session.GetDefaultFolder(
                Outlook.OlDefaultFolders.olFolderTasks).UserDefinedProperties
                .Add("Type", Outlook.OlUserPropertyType.olText);
            Outlook.TaskItem ti = Application.CreateItem(Outlook.OlItemType
                .olTaskItem);
            ti.UserProperties.Add("Type",Outlook.OlUserPropertyType.olText)
                .Value = "Just a Test";
            ti.Save();
            Application.ActiveExplorer().ViewSwitch += new Outlook
                .ExplorerEvents_10_ViewSwitchEventHandler(ThisAddIn_ViewSwitch);
        }

        void ThisAddIn_ViewSwitch()
        {
            Outlook.Explorer explorer = Application.ActiveExplorer();
            Outlook.View view = explorer.CurrentView;
            MessageBox.Show(view.Name);
        }

        private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
        {
        }

        #region VSTO generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InternalStartup()
        {
            this.Startup += new System.EventHandler(ThisAddIn_Startup);
            this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
        }
        
        #endregion
    }
}

然后点任务Ribbon上的“视图”->“视图设置”


在对话框中点击“列”


在组合框中选中“文件夹中用户自定义的字段”


点击“添加(A) ->”


就能得到如图所示效果

 

然后点任务Ribbon上的“视图”->“视图设置”


在对话框中点击“列”


在组合框中选中“文件夹中用户自定义的字段”


点击“添加(A) ->”


就能得到如图所示效果

然后点任务Ribbon上的“视图”->“视图设置”

在对话框中点击“列”

在组合框中选中“文件夹中用户自定义的字段”

点击“添加(A) ->”

就能得到如图所示效果


欢迎访问《 许阳的红泥屋
using Outlook = Microsoft.Office.Interop.Outlook; private static bool OutlookSendMail(FileInfo tempFile, List<string> appendFileName, string rule, bool IsCompressFile) { try { Outlook.Application myApp = new Outlook.Application(); Outlook.MAPIFolder myFolder = myApp.GetNamespace("MAPI").GetDefaultFolder(Outlook.OlDefaultFolders.olFolderTasks); Outlook.MailItem myItem = (Outlook.MailItem)myFolder.Items.Add(Outlook.OlItemType.olMailItem); var date = DateTime.Now.ToString("yyyyMMdd"); var emailSubject = Subject + /*title +*/ date; myItem.Subject = emailSubject; myItem.BCC = MailBCC; myItem.CC = MailCC; myItem.To = MailTo; var headerHtml = ""; if (TableHeader != "") { headerHtml = TableHeader + " " + date; } var mailHtml = File.ReadAllText(tempFile.FullName); if (mailHtml.Contains("<center>")) { } else { mailHtml = "<center>" + mailHtml + "</center>"; } var ruleHtml = ""; if (rule != "") { ruleHtml = rule; } string AttachmentLink = null; if (appendFileName.Count != 0) { if (appendFileName.Count >= 2) { for (int i = 0; i < appendFileName.Count; i++) { AttachmentLink = AttachmentLink + $"<p>附件{i+1}请参考:<a font-size: 10px; color: red; href='http://10.6.2.130:8888/data/{appendFileName[i].ToString()}'>{appendFileName[i].ToString()}</a></p>"; } } else { if (Regex.IsMatch(appendFileName[0].ToString(), @"^\d{8}DailyWATInlineTestRate\.jpg\.pdf$")) { AttachmentLink = $"<p>附件请参考:<a font-size: 10px; color: red; href='http://10.6.2.130:8888/data/{appendFileName[0].ToString().Substring(0, appendFileName[0].ToString().Length - 4)}'>{Subject.Replace("FAB6", "").Replace("数据监控系统", "").Trim()}</a></p>"; } else { AttachmentLink = $"<p>附件请参考:<a font-size: 10px; color: red; href='http://10.6.2.130:8888/data/{appendFileName[0].ToString()}'>{Subject.Replace("FAB6", "").Replace("数据监控系统", "").Trim()}</a></p>"; } } } else { AttachmentLink = ""; } myItem.HTMLBody = "<font face='Microsoft YaHei' size=2>" + AttachmentLink + "</font>" + "<html>" + "<head><meta charset='utf-8'><style type='text/css'> td{text-align:center; font-size: 14px; }</style></head>" + "<font face='Microsoft YaHei' size=4>" + "<center><strong>" + headerHtml + /*title +*/ " </strong></center>" + "</font>" + mailHtml + "<center><font face='Microsoft YaHei' size=2 color='red'>" + "<div style='display: inline-block;text-align: left;'>" + ruleHtml + "</div></font></center>" + "</html>"; //if (appendFileName.Count != 0) //{ // #region 压缩大文件 // for (int i = 0; i < appendFileName.Count; i++) // { // if (IsCompressFile) // { // //var zip = new ZipHelper(@"C:\Program Files\7-Zip\7zG.exe"); // var zip = new ZipHelper(@"D:\7-Zip\7zG.exe"); // var list = appendFileName[i].Split('.'); // zip.CompressFile(_localPath + "\\" + appendFileName[i], _localPath + "\\" + list[0] + ".7z"); // //myItem.Attachments.Add(_localPath + "\\" + list[0] + ".7z", Outlook.OlItemType.olMailItem, 1, "email"); // } // else // { // //myItem.Attachments.Add(_localPath + "\\" + appendFileName[i], Outlook.OlItemType.olMailItem, 1, "email"); // } // } // #endregion //} myItem.Send(); return true; } catch { return false; } }转换为用coremail发送邮件
最新发布
11-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值