リダイレクトして telnetの入力に直接 SMTPコマンドを流し込めばできるんでないの,と思って試してみたらどうも DOSのリダイレクトはそういうことはできないらしい(やり方が間違っているだけかもしれないけど)。代替案がないかと調べてみると WSHを使えば可能らしいことが分かり,試したところうまくいったのでメモ。
Windows標準機能とWSHを使ってメールを送信する
http://www.atmarkit.co.jp/fwin2k/win2ktips/428wshmail/wshmail.html
まず,以下のような vbsファイルを作成する。ファイル名は mail.vbsで保存。
Set oMsg = CreateObject("CDO.Message")
oMsg.From = "mailsender@example.co.jp"
oMsg.To = "user@example.co.jp"
oMsg.Subject = "Test "
oMsg.TextBody = "テストメッセージです" & vbCrLf & Now
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"smtp.example.co.jp"
oMsg.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oMsg.Configuration.Fields.Update
oMsg.Send
後はコマンドプロンプトから cscriptで実行するだけ。
D:\WSH> cscript mail.vbs