ASPでのメール送信機能といえばBASP21というコンポーネント。
BASP21はフリーソフトでありながら高機能なので使用しているユーザが多い。
んが。フリーゆえに問題になることもあるのよね。
仕事先で使っているのだがやはり仕事となるとフリーソフトの導入は不安らしく。
代替案はないかと思って調べてみたので今後の自分のためにメモ。
VBScriptから使用できるメール機能を検索してみるとBASP21ばっかり。
そこでどうにか探し出したものが「CDO」というもの。
CDOとは
CDO(Collaboration Data Objects)
と呼ばれるWindows2000から標準でついてくるコンポーネントらしい。
詳しくは「@IT:Windows TIPS -- Tips:Windows標準機能とWSHを使ってメールを送信する」参照。
Windows標準機能ならお偉い方も納得でしょう、と使い方をリサーチ。
参考にさせていただいたのが
「WSHからメール送信するときのメモ(管理人日記) - むぅもぉ.jp」。
こちらはJavaScriptで書かれているがVBScriptに読み替えればOK。
以下、VBScriptで作成したのもの。
Set oMsg = CreateObject("CDO.Message")
oMsg.From = "from-user@example.com"
oMsg.To = "to-user@example.com,to2-user@example.com"
oMsg.Cc = "cc-user@example.com"
oMsg.Bcc = "bcc-user@example.com"
oMsg.Subject = "【テスト】CDO Test "
oMsg.TextBody = "テストメッセージです" & vbCrLf & "で改行もできるとか" & vbCrLf
oMsg.TextBodyPart.Charset = "ISO-2022-JP"
strParam = "http://schemas.microsoft.com/cdo/configuration/"
oMsg.Configuration.Fields.Item(strParam & "sendusing") = 2
oMsg.Configuration.Fields.Item(strParam & "smtpserver") = "smtp.example.com"
oMsg.Configuration.Fields.Item(strParam & "smtpserverport") = 25
oMsg.Configuration.Fields.Update
oMsg.Send
複数の宛先はカンマ区切り、改行は" vbCrLf "で問題なし。
Toにメールアドレスを指定せずにBcc配信も可能
基本的なメール送信機能はあるのでこれを使うのも手かも。
っていうか使えるのがこれとBASP21しかないっぽいんだよね…。
あとはASP.NETに移行しか道はなさそう。
以上、リサーチメモ。