VBAでLotusNotes経由のメールを送るマクロが有ったのでJavaScriptで書いてみた。
LotusNotesがインストールされているマシンなら動きます。Notesセッションを横取りしているので現在ノーツクライアントを立ち上げているユーザーで送信されることになります。
引数に以下のものを指定して呼び出してください。
- 件名 「"テストメールです"」
- 宛先アドレス 「"test@test.com"」
- 本文 「"こんにちわ。\nテストメールです。"」
- 添付ファイル ("C:\\tmp\\a.txt")
- 送信ボックスに保存するか (false)
本文内で改行をしたい場合は\r\n等と改行コードを入れてください。
添付ファイルを付けない場合は空文字「""」をセットしてください。
呼び出し側
<script type="text/javascript"> sendNotesMail("テストメールです", "test@test.com", "こんにちわ。\nテストメールです。", "C:\\tmp\\a.txt", false); </script>
本体
<script type="text/javascript"> sendNotesMail = function(subject, sendTo, bodyText, attachment, isSave) { //NotesSessionの生成 var notesSession = new ActiveXObject( "Notes.NotesSession" ); var userName = notesSession.UserName; var mailDbName = userName.substring(0,1) + userName.substring(userName.indexOf(" ",1) + 1 ,userName.length) + ".nsf"; var maildb = notesSession.GETDATABASE("", mailDbName); if (!maildb.IsOpen) { maildb.OPENMAIL; } //本文の生成 var mailDoc = maildb.CREATEDOCUMENT; mailDoc.Form = "Memo"; mailDoc.sendto = sendTo; mailDoc.Subject = subject; mailDoc.Body = bodyText; mailDoc.SAVEMESSAGEONSEND = isSave; //添付ファイル if (attachment != "") { var attachME = mailDoc.CREATERICHTEXTITEM("Attachment"); var embedObj = attachME.EMBEDOBJECT(1454, "", attachment, "Attachment"); } //送信実行 mailDoc.SEND(0, sendTo); //後処理 maildb = null; notesSession = null; mailDoc = null; attachME = null; embedObj = null; } </script>