2016年8月9日火曜日

Windowsのコマンド実行でメール送信(BASP21)

こんにちは。近藤です。


以前の担当回で、コマンドからメールを送信する例として、WSHで記載した例PowerShellで記載した例を掲載しました。2例のように、Windowsの機能のみでメール送信できるのですが、Windows環境では、BASP21も多く利用されています。BASP21は、メール送受信のための汎用コンポーネントで、ライセンスフリーで公開されています。今回は、BASP21を使って書いた例を記載します。


やりかた:

BASP21を使用してメールを送信する例を記載します。
今回は、WSHを使用した例を記載します。

0.(事前準備)BASP21を、利用環境にインストールします。(手順は省略します)

1.以下のスクリプトファイルを作成します(例えば、「mail.vbs」)。SMTP認証、Cc、Bcc、Reply、添付ファイルなどのうち、不要なものは消すかコメントアウトしてください。

' ************************************************************
' メールを送受信するオブジェクトの生成
' ************************************************************
Set BASP21 = CreateObject("Basp21")
Set objShell = CreateObject("WScript.Shell")

' ************************************************************
'メール送信元の設定
' ************************************************************

strFrom = "<送信元メールアドレス>"
strReply = “<返信メールアドレス>”

strServer = "<smtpサーバのアドレス>"
nPort = <smtpサーバのポート番号>
strUser = "<smtpサーバのユーザ>"
strPass = "<smtpサーバのパスワード>"

‘ SMTP AUTH用にまとめます
strMailFrom = strFrom & vbTab & strUser:strPass

' ************************************************************
'メール送信先の設定&メール本体の作成
' ************************************************************

strTo = "<送信先メールアドレス>"
strCc = "<cc先メールアドレス>"
strBcc = "<bcc先メールアドレス>"

strSubject = "<メールタイトル>"
strTextbody = "<メール本文>"

strAddAttachment = “<添付ファイルのフルパス>”

‘ メールヘッダをまとめます
strMailTo = strTo & vbTab & “cc” & vbTab & strCc & “bcc” & vbTab & strBcc & “reply-to” & vbTab & strReply

' ************************************************************
' メール送信
' ************************************************************

rc = BASP21.SendMail(strServer: nPort, strMailTo, strMailFrom, strSubject, strTextbody, strAddAttachment)

' ************************************************************
' 終了
' ************************************************************

' メール送信結果判定
If rc = "" Then ' メール送信成功
WScript.Quit(0)
Else ' メール送信失敗
WScript.Quit(1)
End If

2.1で作成した「mail.vbs」を、コマンドプロンプトから実行します。

cscript mail.vbs

3.メールが送信されます。

今回の例では、以前掲載したWSHPowerShellだけでメールを送る場合と同じ設定項目での例ですが、WSHやPowerShellだけでメールを送る場合と比べて、BASP21のようなコンポーネントを使用すれば、リッチなメールを送信することが可能です。
また、今回の例では、WSHから呼び出して起動するものでしたが、それ以外にも様々な方法でメールを送信することができます。

0 件のコメント:

コメントを投稿