SharePoint Online 上のポータル サイトからの「お問い合わせ」リンクなどから、「宛先」「件名」「本文」をあらかじめセットしたメール作成画面を開きたいと思う場面があります。従来通りの方法であれば、mailto: のリンクを書いておくことで、クライアントのメーラー(Outlook など)を起動させることでもこうした実装は可能でしたが、Office 365 を使っているのであれば、やはりブラウザ版の Outlook である Outlook on the Web を使いたいですよね。

というわけで、Outlook on the Web を利用した mailto: のような動作を可能とするハイパーリンクの作成方法をご紹介したいと思います。

新規メール作成画面を開く

Outlook on the Web の URL https://outlook.office.com/owa/ には、どうやら様々なクエリ文字列を付けられるようなので、それらを利用します。新規メール作成画面を立ち上げるための URL は、下記のようになります。

https://outlook.office.com/owa/?subject=新しいメールを作成します&body=ね?簡単でしょ?&to=sample@contoso.com&path=/mail/action/compose

パラメーター 説明
to 宛先のメールアドレス(複数指定する時は「;」で区切る)
subject 件名
body 本文
path 新規メール作成画面を開くおまじない「/mail/action/compose」を指定

ただ、どうやら「CC」「BCC」の指定には対応していないようです。この URL が指定されたリンクを下記のように書けば良いわけですね。

<a href="https://outlook.office.com/owa/?subject=新しいメールを作成します&body=ね?簡単でしょ?&to=sample@contoso.com&path=/mail/action/compose">メールはこちら</a>

これをクリックすると下記のように表示されます。簡単ですね。

新規予定作成画面を開く

同様の方法を使って、新規予定作成画面を立ち上げることもできます。URL は、下記のようになります。

https://outlook.office.com/owa/?subject=新しい予定を作成します&body=ね?簡単でしょ?&location=近場&startdt=2017-05-12T20:00:00+09:00&enddt=2017-05-12T21:00:00+09:00&path=/calendar/action/compose

パラメーター 説明
subject 件名
body 本文
location 場所
startdt 開始日時「2017-05-12T20:00:00+09:00」の形式で指定
enddt 終了日時「2017-05-12T21:00:00+09:00」の形式で指定
path 新規予定作成画面を開くおまじない「/calendar/action/compose」を指定

「開始日時」「終了日時」でタイムゾーンというか標準時からの時差の指定が必要だったりしますが、こちらも簡単ですね。

さいごに

調べてみたところ、MSDN ブログでもこちらの方法を紹介している記事がありました。

How to compose a New Message or Event and Populate fields in Office365
https://blogs.msdn.microsoft.com/carloshm/2016/01/16/how-to-compose-a-new-message-or-event-and-populate-fields-in-office365/

また、Office 365 標準の UI の中でも、こちらの方法を利用している箇所がありましたので、現時点では信頼できる方法ではないかと思います。

最近の傾向として、Outlook on the Web の機能も増えてきたためか、Outlook を使わずにブラウザのみで済ませているエンド ユーザーも増えてきているように感じています。また、一時的に利用するパソコンなどで、メーラーをセットアップしていない場合でも Outlook on the Web であればブラウザがあれば利用できます。

Office 365 を利用しているユーザーであれば、ほとんどの場合は利用可能になっているであろう Outlook on the Web ですので、mailto: の代わりに利用できる機会は多々ありそうな気がします。