ScriptMail サンプル
ScriptMail バージョン Ver1.15 Windows2000Pro/Server上にて検証
サンプル1 TekuMailを利用してPCのWindowsのwin.iniをメールにして送り返す例
サンプル2 TekuMailを利用してPCのデイレクトリ一覧を取得してメールにして送り返す例
サンプル3 TekuMailを使用した添付ファイルでデータを送り返す例
サンプル4 定型実行モードとUWSCを使った例
サンプル5 定型実行モードとPerlを使ってVectorの作者側ライセンス登録処理を自動化する例
サンプルの基礎条件(メールアドレスは実在しません)
サンプル1
TekuMailを利用してScriptMailが上記の条件で実行されているPCのWindowsのwin.ini
をメールにして送り返すスクリプトです。
途中の copy TekuMail.* c:\WinNT は次の行(TekuMail....)を実行するために必要
ではありませんが入れてあれば、次回のメールからTekuMail.exeおよびTekuMail.iniを添付
する必要がなくなります。
最後のpauseは実行状況を見るために入っています。実際に使う場合は取り除いてください。
メール
From Sender@test.jp
To Receive@xxx.jp
件名 TEST1
添付ファイル TekuMail.exeおよびTekuMail.ini
本文
-------------------------------------------------------------------------------------------------
TEST2
set FROM=Receive@xxx.jp
set TO=Sender@test.jp
if not exist C:\WinNT\win.ini goto skip1
# WindowsNT/2000の場合
copy TekuMail.* C:\WinNT
TekuMail %TO% %FROM% "TEST" C:\WinNT\win.ini
goto skip9
:skip1
if not exist C:\Windows\win.ini goto skip9
# Windows98/ME/XPの場合
copy TekuMail.* C:\Windows
TekuMail %TO% %FROM% "TEST" C:\Windows\win.ini
:skip9
pause
-------------------------------------------------------------------------------------------------
TekuMailを利用してScriptMailが上記の条件で実行されているPCのデイレクトリ一覧
を取得してメールにして送り返すスクリプトです。
最後のpauseは実行状況を見るために入っています。 実際に使う場合は取り除いてください。
メール
From Sender@test.jp
To Receive@xxx.jp
件名 TEST1
添付ファイル TekuMail.exeおよびTekuMail.ini
本文
-------------------------------------------------------------------------------------------------
TEST2
set FROM=Receive@xxx.jp
set TO=Sender@test.jp
// デイレクトリ一覧の取得
dir c:\ > c:\temp\dir.txt
// メールとして送り返す
TekuMail %TO% %FROM% "DIR.TXT" C:\temp\dir.txt
// 送り返した後は削除
del c:\temp\dir.txt
pause
---------------------------------------------------------------------------------------------------
サンプル3
TekuMailを使用した添付ファイルでデータを送り返す例
OKを入力することで、TekuMail.exeと同じフォルダにTekuMail.iniファイルが
作成されます。
メール
From Sender@test.jp
To Receive@xxx.jp
件名 TEST1
添付ファイル TekuMail.exeおよびTekuMail.ini
本文
-------------------------------------------------------------------------------------------------
TEST2
set FROM=Receive@xxx.jp
set TO=Sender@test.jp
// デイレクトリ一覧の取得
dir c:\ > c:\temp\dir.txt
// 添付ファイル付きメール、本文は空白で送り返す
TekuMail %TO% %FROM% "Return From %FROM%" nul C:\temp\dir.txt
// 送り返した後は削除
del c:\temp\dir.txt
pause
-------------------------------------------------------------------------------------------------
サンプル4
定型実行モードとUWSC(自動実行ソフトウエア)
を使用して、送り込んだメールの内容を解析してメモ帳に一行ずつ追加する。
準備
以下のようにScriptMailのアカウント#1の設定を行う
C:\ScriptにUWSC.EXEおよび、以下のUWSC用スクリプト test.uwsを入れておく
test.uws
------------------------------------------------------------------------------
// 受信した本文をファイル化したbody.txtを開く
fp=FOPEN( "C:\temp\body.txt", F_READ)
ifb fp>=0 // もし、存在すれば処理
// もしlog.txtが無ければ作成
ff=FOPEN("c:\script\log.txt",F_EXISTS)
ifb ff=False
ff=FOPEN("c:\script\log.txt",F_WRITE)
FCLOSE(ff)
endif
// メモ帳起動
DOSCMD("notepad c:\script\log.txt",True)
WpID= GETID("メモ帳")
i=1 // 行数
// 住所を見つけるまで、最大100行目まで読む
repeat
data=FGET(fp,i)
n=POS("住所:",data)
ifb n>=1
// 文字「住所:」が見つかったので、それをメモ帳へ送り込む
SendStr(WpID,copy(data,n+5,length(data)-4-n)+"<#TAB>")
endif
i=i+1
until (n>=1 or i>100)
// 名前を見つけるまで、最大100行目まで読む
repeat
data=FGET(fp,i)
n=POS("名前:",data)
ifb n>=1
// 文字「名前:」が見つかったので、それをメモ帳へ送り込む
SendStr(WpID,copy(data,n+5,length(data)-4-n)+"<#TAB>")
endif
i=i+1
until (n>=1 or i>100)
SendStr(WpID,"<#CR>") // 改行を送る
FCLOSE(fp)
// ファイルを上書き保存してnotepadを閉じる
ClkItem(WpID, "ファイル",CLK_MENU)
ClkItem(WpID, "上書き保存",CLK_MENU)
CtrlWin(WpID, CLOSE) // メモ帖終了
endif
------------------------------------------------------------------------------
メール
From だれからでもOK
To Receive@xxx.jp
件名 なんでもOK
添付ファイル なし
本文 (最初の "アンケート解答"によって、有効なメールと判断)
-------------------------------------------------------------------------------------------------
アンケート解答
住所: 住んでいる所
名前: 実験 花子
-------------------------------------------------------------------------------------------------
結果的に c:\script\log.txt は以下のようになる
-------------------------------------------------------------------------------------------------
住んでいる所<TAB>実験 花子<CR>
住んでいる所<TAB>実験 太郎<CR>
・
・
・
・
-------------------------------------------------------------------------------------------------
C:\ScriptにLicense.EXE(ユーザ名から解除コードを生成するソフト)、TekuMail.EXE
および、
以下のPerlスクリプト vector.plを入れておく。
TekuMailの設定は、もし、POP before SMTPだったら、Normalで設定する。なぜなら、
ScriptMailがメールサーバーにアクセス中にTekuMailが呼び出されるため、
SMTPの前にPOPの必要はない。 逆に、TekuMailがPOPサーバーにアクセスに行くと
2重アクセスでエラーとなる。
vector.pl
------------------------------------------------------------------------------
#Perlスクリプトおよびソフトウエアの場所
$folder='c:/Script';
#ScriptMailが定型実行モードで保存したファイル
$body_txt = 'c:/temp/body.txt';
#Vectorへの送り返すメール本文
$reply_txt = "$folder/reply.txt";
#送り返した情報をCSVに蓄積するためのファイル
$csv_txt = "$folder/db.csv";
#送り返し先
$reply_email = 'shopkeyreg@vector.co.jp';
#送り返したメールのFROM
$from_email ='tekuteku999info@gmail.com';
#送り返す件名
$subject_txt = 'Re: [シェアレジ]ライセンスキー登録依頼';
#TekuMailの送信ログファイル
$email_log = "$folder/log.txt";
$soft='';
open BODY, $body_txt;
while($a = <BODY>) {
chomp $a;
$n=index($a,':');
if($n>=0) {
$ck=index($a,'お申込日');
if( $ck>=0 ) { $date =substr($a,$n+2); }
$ck=index($a,'お申込作品名');
if( $ck>=0 ) { $soft =substr($a,$n+2); }
$ck=index($a,'お申込番号');
if( $ck>=0 ) { $number =substr($a,$n+2); }
$ck=index($a,'利用者氏名 ');
if( $ck>=0 ) { $simei =substr($a,$n+2); }
$ck=index($a,'利用者氏名(よみ)');
if( $ck>=0 ) { $simeiy =substr($a,$n+2); }
$ck=index($a,'ご利用者e-mail');
if( $ck>=0 ) { $email =substr($a,$n+2);last; }
}
}
# #startから#softkeyまでをコピーする
open OUT, ">$reply_txt";
if($soft ne '') {
while($a = <BODY>) {
chomp $a;
if(index($a,"#start")==0) {
print OUT "$a\n";
while($a = <BODY>) {
chomp $a;
print OUT "$a\n";
if(index($a,"#softkey")==0) { last; }
}
}
}
}
close BODY;
if($soft ne '') {
# ライセンスコードを作る
if($soft eq 'ScriptMail') {
#License.exeは名前を元にライセンスを生成するソフトなので公開できません。
exec "$folder/License.exe \"$simei\" >./temp.___";
}
else {
#メール内容にScriptMailが無かったので、おかしいメールとして扱う
$soft='';
}
# 作ったライセンスを読み込む
open LICENSE, "./temp.___";
$license=<LICENSE>;
chomp $license;
close LICENSE;
$status = unlink "./temp.___";
}
else {
$license='';
}
#ライセンス生成エラーなら$softはクリアする
if (index($license,'Error')>=0) { $soft=''; }
print OUT "$softをご購入いただきありがとうございます。\n";
print OUT "ユーザ名、会社名、解除コードのセットでライセンスを認識します。 \n";
print OUT "特に名前と名字の間の空白などの全角、半角にご注意ください。 \n";
print OUT "(できれば、以下の情報をカット&ペーストしてください) \n\n";
print OUT "ユーザ名 $simei\n";
print OUT "会社名 (空白)\n";
print OUT "解除コード $license\n\n";
print OUT "最新バージョンやオプションソ\フトに関してはホームページ\n";
print OUT "http://hp.vector.co.jp/authors/VA035220/\n";
print OUT "をごらんください。\n";
print OUT "#softkey_end\n";
print OUT "#end\n";
close OUT;
#$softが空でなければ正常なのでメールを送る
if ($soft ne '') {
#VECTORへメール送信
exec "$folder/TekuMail.exe $reply_email $from_email \"$subject_txt\"
\"$reply_txt\" >>$email_log";
#自分へバックアップメール送信
exec "$folder/TekuMail.exe $from_email $from_email \"$subject_txt\"
\"$reply_txt\" >>$email_log";
#CSVデータへ追加
open CSV, ">>$csv_txt";
print CSV "\"$date\",\"$soft\",\"$number\",\"$simei\",\"$simeiy\",\"$email\",\"$license\"\n";
close CSV;
}
else {
#おかしなメールだったのでバックアップメールとして自分に送信する
if(open(CHECK,$body_txt)) {
close CHECK;
exec "$folder/TekuMail.exe $from_email $from_email \"BackUp\"
\"$body_txt\" >>$email_log";
}
}
exit;
----------------------------------------------------------------------------------------
メール
From VECTORから来るライセンス登録依頼メール
To tekuteku999info@gmail.com
件名 [シェアレジ]ライセンスキー登録依頼
添付ファイル なし
本文 (最初の "てくてく 様"によって、有効なメールと判断)
C:\temp\body.txt
----------------------------------------------------------------------------------------------------------------------------
てくてく 様
登録作品に対して下記のお申込みがありました。
至急、ライセンスキーをベクターレジサービスにご登録ください。
-----------------------------
お申込日
: 2003/09/02
キー登録期限 : 2003/09/09
-----------------------------
作品番号
: SR1234567
お申込作品名 :
ScriptMail
-----------------------------
お申込番号 : XYZXXXXX
利用者氏名 : 大道 はじめ
利用者氏名(よみ) : だいどう はじめ
ご利用者e-mail : daidou@mail.goo.ne.jp
-----------------------------
利用者連絡欄
:
★ご注意★
・ライセンスキーは、必ずベクターレジサービスにご登録してください。
登録されたライセンスキーは、お客様のお支払手続が完了した後、
送信いたします。
・皆様より、お客様に直接ライセンスキーを送らないでください。
(まだお客様はお支払手続を完了しておりません。)
★本メールへの返信で登録するには★
・ライセンスキーの登録は、本メールへの返信としても登録できます。
・返信メールで登録する時は、以下の#softkey〜#softkey_endの間に
ライセンスキーを記入してください。
・なお、その際引用記号('>
'など)は付けないようお願いいたします。
・ライセンスキーがファイルの場合はそのファイルを返信メールに添付し、
#softkey〜#softkey_endの間にファイル名を記入してください。
(ファイル名は、半角のアルファベットおよび英文字です。
漢字、ひらがな、カタカナのファイル名は使用できません。)
・詳細はhttp://www.vector.co.jp/swauth/man/help/pagehelp09.htmlをご覧
ください。
-----------------------------
メールによる登録の場合、#startから#endまでは必ず含めて送ってください。
#start
#auth_id SA12345678
#srnum SR1234567
#recno XYZXXXXX
#user_addr daido@mail.goo.ne.jp
#order_pw 789789
#comment
↓ライセンスキーを記入してください
#softkey
#softkey_end
#end
-----------------------------
==================
株式会社ベクター・レジ・センター
----------------------------------------------------------------------------------------------------------------------------
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||