SQLの窓

2018年04月21日


Basp21 を使ったメール送信でバッチ処理用スクリプト比較 : PowerShell / VBScript / PHP

それぞれ特徴がありますが、PHP と VBScript は COM しか扱えませんが、PowerShell は、Framework ベースなので、ついでに COM を扱えるという立場です。テストする意味はあまり無いと思いますが、Basp21 の DLL を直接呼び出して実行も可能でしょうし、VB や C# のコードを書いてそちら側で実行させる事もできますし、さらにその場合は exe 形式にしてしまえるので今までのスクリプトとは少し意味が違ってきています。

関連する記事

PowerShell2.0 : VB.net と C# のコードをビルドして exe を作成する

SMTP サーバーは、さくらインターネットを使用しています

【さくらのメールボックス】基本仕様

PowerShell + Basp21 メール送信

▼ 32 ビットの PowerShell を実行する為、バッチファイルに以下のように記述します
%SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell -NoProfile -ExecutionPolicy Unrestricted "./basp_mail.ps1"
basp_mail.ps1
<#
	オブジェクト作成
#>
$Basp21 = New-Object -ComObject "Basp21"

$user = "ユーザー"
$to = "宛先"
$pass = "パスワード"

$SMTPServer = "$user.sakura.ne.jp:587"
$MailTo = "あなた <$to>"
$MailFrom = "わたし <$user@$user.sakura.ne.jp>"
$MailFrom += "`t$user@$user.sakura.ne.jp:$pass"

$ErrMessage = $Basp21.SendMail(
	$SMTPServer,
	$MailTo,
	$MailFrom,
	"こんにちは",
	"日本語表示`n日本語表示",
	""
)

if ( $ErrMessage -ne "" ) {
	$ErrMessage
}
else {
	"メール送信が終了しました。"
}


VBScript + Basp21 メール送信

▼ mail.bat( 64ビット PC からの実行 )
%systemroot%\syswow64\cscript.exe basp_mail.vbs
basp_mail.vbs
v_user = "ユーザー"
v_to = "宛先"
v_pass = "パスワード"

Set Basp21 = CreateObject( "Basp21" )

SMTPServer = v_user & ".sakura.ne.jp:587"
MailTo = "あなた <" & v_to & ">"
MailFrom = "わたし <" & v_user & "@" & v_user & ".sakura.ne.jp>"
MailFrom = MailFrom & vbTab & v_user & "@" & v_user & ".sakura.ne.jp:" & v_pass

ErrMessage = Basp21.SendMail( _
	SMTPServer, _
	MailTo, _
	MailFrom, _
	"こんにちは", _
	"日本語表示\n日本語表示", _
	"" _
)

if ErrMessage <> "" then
	Wscript.Echo ErrMessage
else
	Wscript.Echo "メール送信が終了しました。"
end if

PHP + Basp21 メール送信

▼ BASP21 に渡すテキストは SHIFT_JIS で、32ビットの PHP で実行します。
<?php
$user = "ユーザー";
$to = "宛先";
$pass = "パスワード";

$Basp21 = new COM( "Basp21" );

$SMTPServer = "$user.sakura.ne.jp:587";
$MailTo = "あなた <$to>";
$MailFrom = "わたし <$user@$user.sakura.ne.jp>";
$MailFrom .= "\t$user@$user.sakura.ne.jp:$pass";

$ErrMessage = $Basp21->SendMail(
	$SMTPServer,
	$MailTo,
	$MailFrom,
	"こんにちは",
	"日本語表示\n日本語表示",
	""
);

if ( $ErrMessage != "" ) {
	print $ErrMessage;
}
else {
	print "メール送信が終了しました。";
}

?>




【プログラミング・仕様等の最新記事】
posted by lightbox at 2018-04-21 21:42 | プログラミング・仕様等 | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり