SQLの窓 イラストAC フリー素材

2019年08月22日

JScript( WSH ) : fake sendmail for windows でメールを送信する

関連する記事

fake sendmail for windows を使って、PHP でごく普通に( mb_send_mail で )メール送信 : Gmail なので ssl(465)
VBScript : JavaScript のライブラリを呼び出して、Base64 エンコードを行う

ソースコードを読んだら、標準入力に -t は必要無くて、引数にファイルを指定して実行可能でした。

JScript で実行する以上、標準入力に直接アクセスして処理しています。

テストすると、今時の WEB メーラでは本文は普通に UTF-8 で利用可能でした。有名どころの WEB メーラですと、Subject も そのままで可能でしたが、まだ対応されていない業者もあったので、JavaScript の Base64 変換ライブラリを使用しています。
<JOB>
<SCRIPT language="JScript" src="https://winofsql.jp/base64.js"></SCRIPT>
<SCRIPT language="JScript">

WshShell =  new ActiveXObject("WScript.Shell");

// ファイルを作成して引数で渡しても実行可能
var oExec = WshShell.Exec("\"C:\\pleiades\\xampp\\sendmail\\sendmail.exe\"");

var mail_text = getResource("mail_data");


// 先頭の空白文字列を取り去る
mail_text = mail_text.replace(/^[ \s]+/, "");

// http://logicalerror.seesaa.net/article/151155394.html
var subject = Base64.encode("日本語の表示");

// UTF8 文字列を BASE64 に変換したものをセット
mail_text = mail_text.replace(/--UTF8TEXT--/, subject);

// 本文を渡す
oExec.StdIn.Write( mail_text );

// 標準入力を終了
oExec.StdIn.Write(String.fromCharCode(0x1a));

// 実行が終わるまで待つ
while (oExec.Status != 1) {

	WScript.Sleep(2000);
}
</SCRIPT>
<RESOURCE id="mail_data">
From: a@yourdomain.jp
To: 送り先メールアドレス
Subject: =?utf-8?B?--UTF8TEXT--?=

mail testing

abcdef

あいうえお
</RESOURCE>

</JOB>


base64.js のオリジナルサイト



posted by at 2019-08-22 14:56 | WSH( JScript ) | このブログの読者になる | 更新情報をチェックする