Notesクライアントが停止していてもNotesメールを送る

こんにちは。

だいぶ間が空いてしまいましたが、前回と関連して。
ログオフしている状態でNotesから自動でメールを出したかったので、もちろんクライアントは起動していません。

Notesクライアントが起動していなくても、メールを送信するVBAを書いてみました。

せっかくなのでエクセルシートに記述したテンプレートを使ってメールを出しています。

Const EMBED_ATTACHMENT As Integer = 1454
Option Explicit


Public Sub SendMail()
Dim session As Object
Dim notesdir As Object
Dim Db As Object
Dim doc As Object
Dim mailitem As Object
Dim MailTo As Variant
Dim MailCc As Variant
Dim MailBcc As Variant
Dim MailSubject As Variant
Dim wkNAtt As Object
Dim MailBody As Variant
Dim line
Dim TempSheet


Set session = CreateObject("Lotus.NotesSession")
Call session.Initialize("パスワード")


Set notesdir = session.GetDbDirectory("")
Set Db = notesdir.OpenMailDatabase()
Set doc = Db.CreateDocument

Set mailitem = doc.CreateRichTextItem("Body")


MailTo = Worksheets("Sheet1").Range("C2").Value
MailCc = Worksheets("Sheet1").Range("C3").Value
MailBcc = Worksheets("Sheet1").Range("C4").Value
MailSubject = Worksheets("Sheet1").Range("C5").Value
MailBody = Worksheets("Sheet1").Range("C6:C17")


For Each line In MailBody

With mailitem
.APPENDTEXT line
.ADDNEWLINE 1
End With

Next


With mailitem
Set wkNAtt = .EmbedObject(EMBED_ATTACHMENT, "", "c:\Sample.txt")
.ADDTAB 1
.ADDNEWLINE 1
End With

Call doc.ReplaceItemValue("Subject", MailSubject)
Call doc.ReplaceItemValue("SendTo", Split(MailTo, ","))
Call doc.ReplaceItemValue("CopyTo", Split(MailCc, ","))
Call doc.ReplaceItemValue("BlindCopyTo", Split(MailBcc, ","))
Call doc.Send(False)
  
Set wkNAtt = Nothing
Set mailitem = Nothing
Set doc = Nothing
Set Db = Nothing
Set session = Nothing

End Sub


あとはこれを呼び出すVBSを書いて実行すればクライアントが起動していなくてもNotesメールを自動送信できます。
前回のエントリーと組み合わせれば、Windowsが起動している状態であれば、Notesクライアントが起動していなくても、ログオンしていなくても、メールが送信できるわけです。

注意としては、Notesクライアントのデフォルトインストール先の設定がちゃんと入っていることが前提です。


VBAエキスパート公式テキスト Excel VBA スタンダード

ログオフ状態でVBAマクロを実行する方法

たまには技術的なことも書かないとなと思い、VBAネタです。

Windows7が乗ったPCで二台のNASをマウントしてバックアップをとっるていうVBスクリプトを書いてタスクで実行していました。

で、バックアップがこけた時にメールを送信するVBAを呼び出すのですが、どうやらこけたのにメールが飛んで無い。

原因調査の為、タスクスケジューラの履歴を確認。しっかりタスクは実行されている。だけど終わってないぞ。
タスクマネージャからプロセスを確認すると、「wscript.exe」と「EXCEL.EXE」が残っている。


スクリプトの中身がRobocopyでバックアップし、エラーがあったらVBAを呼びだすってフローなのでコピータスクは終了し、VBAを呼びだしたところで止まっている様子。

あれ?作成時に実行したときは問題無かった覚えがあるのですが。
そう、確かにコマンドプロンプトやダブルクリックから実行すると問題なく動くのです。

ですが、タスクに登録し「ユーザがログオンしているかどうかにかかわらず実行する(W)」にチェックを入れていると、タスクから実行された時失敗します。
タスクスケジューラから実行するテストをやってなかった私が悪いですね・・・


エクセルマクロを呼びだしたところで止まってしまってるので、ネットで情報を検索。
ズバリな方法がこちらにありました。

Windows環境でちょっとした定型業務を自動化する:汎用的なツールで作るDB→Excel→メール配信の自動システム (2/2) - @IT


対話的ログオンをしていない場合にエクセルを実行したいなら、以下のフォルダを先に作っておく必要があるようです。

32bitの場合: %SystemRoot%\System32\config\systemprofile\Desktop
64bitの場合: %SystemRoot%\SysWOW64\config\systemprofile\Desktop


しかしながら、マイクロソフトでは非対話的ログオンでのOffice実行は推奨もサポートもしていないようなので、あくまでも自己責任で!

Office のサーバーサイド オートメーションについて


仕事を速くする Excel VBA入門 (日経BPムック)

キーボードは何ゴミ

ヒマなので、2本目です。

 

自宅のワイヤレスキーボードの調子が悪く、電池を取り換えても、ドライバ削除→インストしても改善せず。

 

本体なのか受信部なのかの切り分けもままならないまま、しかたなく新しいキーボードを購入。

基本的にキーボードに対するこだわりがないので、Amazonで安キーボードを購入しました。

 

が、これは失敗でした。どちらかというとストロークは深いほうが好み(タッチが強めなので周りとっては迷惑かもしれません)なのですが、購入したものすごく浅めでした。

さらに、パンタグラフのような軽さもなく、音で表すなら「グニュッ」っという感じ。

やっぱりキーボードは実物を触ってみないとだめですね。

 

危うく話を締めちゃいそうになりましたが、本題です。

 

みなさんはキーボードが何ゴミかご存知でしょうか?

中には基盤も入っているけど、表面はプラスチックだし・・・

あれこれ考える前にググってみました。

 

結果は自治体によって違うという答え。

横浜市なんかは燃えるゴミとの事。驚きです。

いい焼却炉を持ってるんでしょうね~

 

私の自治体では資源ごみでじた。

しかも直に捨ててよいそうです。

明日の朝にでもゴミ収集所に突っ込んでおきます。

Notesでメール作成

さまざまなルーチン作業を自動化しようって案がでまして・・・

Notesは利用する方でDBの開発なんか触ったことはなかったのですが、今回を機に少しはいじれるようになろうかなと、デザイナーと戦ってます。

 

現在は、自動的に生成・送信されたメールをさまざまな顧客向けに、作り変えて送信って作業をコピー&ペーストで行っているのですが、やはり人間が行うのでコピペミス等が起こってしまいます。

それをボタン一つでやってしまおうと考えたわけです。

 

イメージとしては顧客ごとのテンプレ文書を用意、変数部分はユニークな文字列にしてそれに自動送信メールから取得した値に変換してドラフト保存的なことを考えてるのですが、いままで遠ざけてた分、どーもいうことをきいてくれません。

 

しかし、分かってくると様々な課題が解決できそうな気がして、可能性を感じまね。

今までNotesと聞くとアレルギーを起こしてたことを反省してます・・・

 

もう少し早く気付いていればよかったなと。

 

 

Lotus Domino Designer 8.5開発者ガイド

Lotus Domino Designer 8.5開発者ガイド

 

 

14.11 ADP雇用統計

前回:23.3万人

予想:22.2万人

結果:20.8万人

 

弱い指標にもかからず、下げは限定的。

その後全戻し、爆上げ。

119.286でエントリー。+50pips

 

ここ最近の円安は恐怖すら感じますね・・・

その恩恵に授かっているわけですが。

f:id:gagaj:20141204013713p:plain

 

 

 

FXをMT4でやりたい初心者のための本!  誰でもこの本一冊でFXを始められる世界一親切なメタトレーダー4マニュアル!
 

 

 

自己紹介

はじめました。

インフラ系エンジニアとして6年ほど過ごしていますが、みなさまの記事にお世話になるばかりだったので、一念発起し人生初のブログを開設しました。

意外と周りにブログやってる方がいなかったので、大分抵抗はありましたが・・

新しい技術(解説はできません)や趣味について書いていきたいとおもっています。

結局、自分用の備忘録になってしまいそうですが。

いつまで続くかわかりませんが、どうぞよろしくお願いします。