Posted at

Outlookでメールの送信前に確認を表示するVSTOアドインを作ってみた。

More than 3 years have passed since last update.


概要

Outlookで、メールの送信前に「本当に送信しますか?」といった確認を表示したかったので、

VSTO(Visual Studio Tools for Office)で、簡単なOutlookのアドインを作ってみました。

とっても簡単にOutlookのアドインが作成できました(∩´∀`)∩

Visual Studioが配布用のインストーラまで作成してくれるので、

社内で配布したい場合も、ある程度スムーズにできるかと思います。


完成品

Outlook 2016でメールを送信しようとすると、下記のような確認が表示されます。

Outlook.PNG

※Outlook2016でのみ動作確認をしています。


制作環境


  • Windows10

  • Visual Studio Community 2015 Update2

  • Office Developer Tools (ここからダウンロードできます)


プロジェクトの種類


  • Outlook 2013 と 2016 VSTO アドイン (Visual C#)


ソース

メールの送信時にダイアログを表示しているだけです。


ThisAddIn.cs

using Outlook = Microsoft.Office.Interop.Outlook;

using System.Windows.Forms;
using static System.Environment;

namespace OutlookAddIn1
{
public partial class ThisAddIn
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Application.ItemSend += new Outlook.ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);
}

public void Application_ItemSend(object Item, ref bool Cancel)
{

Outlook.MailItem mail = Item as Outlook.MailItem;

DialogResult result = MessageBox.Show
($"送り先(To):{mail.To}{NewLine}送り先(CC):{mail.CC}{NewLine}送り先(BCC):{mail.BCC} ",
"本当にメールを送信しますか?",
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button2);

if (result == DialogResult.Yes)
{
//メールを送信
}
else if (result == DialogResult.No)
{
Cancel = true;
}
else if (result == DialogResult.Cancel)
{
Cancel = true;
}
}

private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
//注: Outlook はこのイベントを発行しなくなりました。Outlook が
// シャットダウンする際に実行が必要なコードがある場合は、http://go.microsoft.com/fwlink/?LinkId=506785 を参照してください。
}

#region VSTO で生成されたコード

/// <summary>
/// デザイナーのサポートに必要なメソッドです。
/// このメソッドの内容をコード エディターで変更しないでください。
/// </summary>
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}

#endregion
}
}



配布用インストーラの作成方法

プロジェクト名を右クリックして「公開(B)…」を選ぶと作成できます。

Visual Studio.PNG


インストール時にエラーが表示される場合

アドインのインストール時にエラーが表示されることがあります(´・ω・`)

これは、こちらに書かれているとおり、

ユーザ側で.vstoファイルと.dll.manifestファイルのブロックを解除することでインストールできるようになります。


まとめ

VSTOアドインの情報があまり出回っていないような気もしますが、

簡単にOutlookなどのOffice製品に機能を追加できて便利だと思います(`・ω・´)