非技术人员的Outlook邮件插件开发指南

在本文中,将探讨如何开发一个Outlook插件,该插件旨在帮助非IT技术人员编辑圣诞邮件,并发送带有自定义消息的邮件。这个插件使用C#语言在Visual Studio 2012和Office 2010环境下开发。

为了使非IT技术人员能够轻松编辑和发送圣诞邮件,开发了一个Outlook插件。该插件通过在Outlook的Ribbon上添加一个按钮来实现,用户可以通过这个按钮打开一个表单,输入消息内容,编辑图片,并将消息发送出去。

使用代码

首先,创建一个新的Office - Outlook 2010 Add-in项目。然后添加一个Ribbon(添加新项目 - Ribbon(Visual Designer))。Ribbon自带一个Tab和一个Group,用于组织Ribbon上的控件。接下来,修改Tab和Group的标签,并设置Tab的ControlIdType属性为Custom,Ribbon的RibbonType属性为Microsoft.Outlook.Explorer。

现在,点击Start,它将打开Outlook并显示Ribbon。使用Toolbox,向Group中添加一个Office Ribbon Control Button。如果需要,可以为按钮添加图片,并在按钮上写上标签。

接下来,向项目中添加一个新的表单。在按钮上添加代码,以便在点击按钮时显示表单。以下是Ribbon.cs的代码示例:

public partial class MyOutlookAddIn { private void Ribbon1_Load(object sender, RibbonUIEventArgs e) { } private void button1_Click(object sender, RibbonControlEventArgs e) { ShowForm(); } private Form1 form1 = null; // 这是显示表单的方法 private void ShowForm() { if (form1 == null) { // 使用Global类变量获取Form form1 = new Form1(Globals.ThisAddIn.Application); } form1.ShowDialog(); } }

绘制一个表单,用于捕获所有必要的信息(主题、消息内容、电子邮件等)。向项目中添加一个图片,该图片将作为邮件的背景。在属性中,设置复制到输出目录 - 如果更新则复制。

确保更改表单的构造函数,以在构造函数中接收Outlook应用程序。以下是Form1类的代码示例:

public partial class Form1 : Form { protected Microsoft.Office.Interop.Outlook.Application App; public Form1(Microsoft.Office.Interop.Outlook.Application _app) { App = _app; InitializeComponent(); } }

在发送按钮的点击事件中,它将使用以下代码将消息内容写入图片的特定位置:

// 创建位置点 PointF location = new PointF(137f, 150f); // 获取位于插件安装文件夹中的图片 string imageFilePath = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "picture.png"); // 将图片转换为可管理的格式(Bitmap) Bitmap bitmap = (Bitmap)Image.FromFile(imageFilePath); using (Graphics graphics = Graphics.FromImage(bitmap)) { using (Font arialFont = new Font("Comic Sans", 2)) { if (!string.IsNullOrWhiteSpace(to)) { // 在图片上绘制 graphics.DrawString(to + ", ", arialFont, Brushes.CornflowerBlue, location); } } } // 然后使用另一个名称保存图片,避免被覆盖 imageFilePath = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "picture1.png"); bitmap.Save(imageFilePath);

然后发送图片:

private void SendMessage(Microsoft.Office.Interop.Outlook.Application oApp, List bodyMessage, string stringBodyMessage, string receiver, string subject, string from, string to) { try { // 创建一个新的邮件项。将表单上接收到的应用程序作为参数传递 Microsoft.Office.Interop.Outlook.MailItem oMsg = (Microsoft.Office.Interop.Outlook.MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); // 添加邮件正文 oMsg.HTMLBody = stringBodyMessage; // 添加附件 string sDisplayName = "MyAttachment"; int iPosition = (int)oMsg.Body.Length + 1; int iAttachType = (int)Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue; // 现在附加文件 prepareMessage(bodyMessage, from, to); clearFieldsAndClose(); string thePath = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "picture1.png"); Microsoft.Office.Interop.Outlook.Attachment oAttach = oMsg.Attachments.Add(thePath, iAttachType, iPosition, sDisplayName); // 主题行 oMsg.Subject = subject; // 添加收件人 Microsoft.Office.Interop.Outlook.Recipients oRecips = (Microsoft.Office.Interop.Outlook.Recipients)oMsg.Recipients; // 在下一行中更改收件人(如果需要) Microsoft.Office.Interop.Outlook.Recipient oRecip = (Microsoft.Office.Interop.Outlook.Recipient)oRecips.Add(receiver); oRecip.Resolve(); // 发送 oMsg.Send(); // 清理 oRecip = null; oRecips = null; oMsg = null; oApp = null; } // 结束try块 catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show("Ocorreu um erro " + ex.Message); } // 结束catch }

安装插件

点击文件 => 添加 => 新建项目 => 其他项目类型 => 安装和部署 => Install shield。如果没有Install shield,可以从这里下载。

使用项目助手填写应用程序信息,安装要求。特别注意应用程序文件。点击添加项目输出并添加主输出。然后添加文件清单和文件vsto,它们都位于构建后创建的bin文件夹中。也要添加图片。

安装的最后一步是在应用程序注册表中添加注册表。最初,它可能在HKEY_CURRENT_USER下是空白的,但是如果点击左侧的注册表,它将重定向到一个视图,可以在其中拖放。

将顶部视图中的Software - Microsoft - Office - Outlook - Addins - Add in的名称从顶部视图拖放到HKEY_CURRENT_USER下的底部视图。这个视图最初将显示开发路径。需要编辑Manifest条目为[INSTALLDIR],以便它使用安装路径运行。(查看前一个图像。)

感兴趣的要点

  • 全局访问对象
  • Outlook对象模型概述
  • Ribbon概述
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485