1.4

2013/03/11 1:30 に joymate tomida が投稿   [ 2013/03/11 1:34 に更新しました ]
MMPLib2(.fp7|.fmp12)のスクリプト:login(hostname,port,SSL,username,password,SaveDirectory,remove) 変更。

以下を二箇所追加。

#排他処理 開放 フラグ
変数を設定 [ $MMpStatus; 値:iill_MMpStatus(0) ]



変数を設定 [ $$MMP; 値:$$MMP+1 ]
#
フィールド設定 [ MMPLib::gサーバーのメール数; "" ]
変数を設定 [ $argu; 値:Get(スクリプト引数) ]
If [ IsEmpty ( $argu ) ]
現在のスクリプト終了 [ 結果: "引数がありません!" ]
End If
変数を設定 [ $hostname; 値:GetValue ( $argu ; 1 ) ]
変数を設定 [ $port; 値:GetValue ( $argu ; 2 ) ]
変数を設定 [ $SSL; 値:GetValue ( $argu ; 3 ) ]
変数を設定 [ $username; 値:GetValue ( $argu ; 4 ) ]
変数を設定 [ $password; 値:GetValue ( $argu ; 5 ) ]
変数を設定 [ $SaveDirectory; 値:GetValue ( $argu ; 6 ) ]
変数を設定 [ $remove; 値:GetValue ( $argu ; 7 )/*受信日から何日後にサーバーからメールを削除*/ ]
#
フィールド設定 [ MMPLib::gServer; $hostname ]
フィールド設定 [ MMPLib::gAccount; $username ]
フィールド設定 [ MMPLib::gUIDL; "" ]
フィールド設定 [ MMPLib::gSaveDirectory; $SaveDirectory/*保存フォルダを設定*/ ]
フィールド設定 [ MMPLib::gサーバーから削除する受信後何日; $remove ]
#
#排他処理 ロック フラグ|戻り値が「0」の場合は、現在の時刻が設定される
変数を設定 [ $MMpStatus; 値:iill_MMpStatus(1) ]
If [ $MMpStatus ≠ 0 ]
変数を設定 [ $MMpStatusTS; 値:GetAsTimestamp ( $MMpStatus ) ]
#20分以上立っている場合は、強制解除
If [ $MMpStatusTS+1200 < Get ( タイムスタンプ ) ]
変数を設定 [ $MMpStatus; 値:iill_MMpStatus(0) ]
変数を設定 [ $MMpStatus; 値:iill_MMpStatus(1) ]
Else
#Log記録|MMPLib_Error_Log
変数を設定 [ $Log; 値:"-ER|" & Get ( アプリケーションバージョン ) & "|スクリプト:login...|" & $MMpStatus & " から他のスクリプトで「MMP+」が、利用されています。|" & MMPLib::gAccount & "/" & MMPLib::gServer ]
スクリプト実行 [ 「Add_log($TimeStamp,$Log)」 , ファイル: 「MMPLib_Error_Log」; 引数: "$TimeStamp=" & Quote ( Get ( タイムスタンプ ) ) & ";$Log=" & Quote ( $Log ) ]
現在のスクリプト終了 [ 結果: $Log ]
End If
End If
#SaveDirectory のパスチェック
フィールド設定 [ MMPLib::gER; iill_TextFile_Write( MMPLib::gSaveDirectory & "\MailMakerPop+.txt" ; "UTF-8" ; Get ( タイムスタンプ ) & "|フォルダの存在を確認。") ]
If [ MMPLib::gER ≠ 0 ]
#排他処理 開放 フラグ
変数を設定 [ $MMpStatus; 値:iill_MMpStatus(0) ]
現在のスクリプト終了 [ 結果: "-ER|SaveDirectory:" & MMPLib::gER ]
End If
#
変数を設定 [ $appVer; 値:Get ( アプリケーションバージョン ) ]
If [ PatternCount ( $appVer ; "Pro" ) > 0 ]
フィールド設定 [ MMPLib::gER; iill_MMpWindow( 1 ) ]
End If
#Loginに失敗した時、7回リトライ
変数を設定 [ $n; 値:1 ]
Loop
Exit Loop If [ $n > 7 ]
Exit Loop If [ Left ( $er ; 1 ) = "+" ]
変数を設定 [ $er; 値:iill_login( $hostname; $port; $SSL; $username; $password ) ]
#
#Log|ScriptMakerMS使用
// 変数を設定 [ $er_cmd; 値:iiil_DOScmd( "echo " & Get ( タイムスタンプ ) & "|" & $n & "|" & $username & "|" & $er & " >> " & "D:\MMPLog\\" & Filter ( Get ( 日付 ) ; "0123456789" ) & ".txt" ) ]
#Log記録|MMPLib_Error_Log
スクリプト実行 [ 「Add_log($TimeStamp,$Log)」 , ファイル: 「MMPLib_Error_Log」; 引数: "$TimeStamp=" & Quote ( Get ( タイムスタンプ ) ) & ";$Log=" & Quote ( "LOGIN|" & Get ( アプリケーションバージョン ) & "|iill_login:" & $er & "|try:" & $n & "|" & $username & "/" & $hostname) ]
変数を設定 [ $n; 値:$n+1 ]
End Loop
If [ Left ( $er ; 1 ) = "+" ]
フィールド設定 [ MMPLib::gER; $er ]
Else
#排他処理 開放 フラグ
変数を設定 [ $MMpStatus; 値:iill_MMpStatus(0) ]
現在のスクリプト終了 [ 結果: $er & "|スクリプト:" & Get ( スクリプト名 ) ]
End If
#
フィールド設定 [ MMPLib::gサーバーのメール数; Let([R=Substitute ( MMPLib::gER ; " " ; ¶ ) ; ER=GetValue ( R;1)]; If ( ER="+OK" ;GetValue ( R;2) ; "" ) ) ]
#Log.fp7 の indexフィールド に「0」を設定
スクリプト実行 [ 「初期化MailIndex(Server,Account)」 , ファイル: 「Log」; 引数: MMPLib::gServer & ¶ & MMPLib::gAccount ]
#
レイアウト切り替え [ 「MMPLib」 (MMPLib) ]
変数を設定 [ $n; 値:1 ]
Loop
Exit Loop If [ $n > MMPLib::gサーバーのメール数 ]
フィールド設定 [ MMPLib::gUIDL; iill_GetUIDLn( $n ) ]
フィールドへ移動 [ ]
フィールド設定 [ Log::Check_TimeStamp; Get ( タイムスタンプ ) ]
フィールド設定 [ Log::CountError; 0 ]
フィールド設定 [ Log::index; $n ]
#サーバーのメールを削除
#受信日あり
#Log::Delete_TimeStamp なし
#MMPLib::gサーバーから削除する受信後何日 あり
If [ not IsEmpty ( MMPLib::gサーバーから削除する受信後何日 ) and not IsEmpty ( Log::Receive_TimeStamp ) and IsEmpty ( Log::Delete_TimeStamp ) ]
If [ GetAsDate ( Log::Receive_TimeStamp ) + MMPLib::gサーバーから削除する受信後何日 ≤ Get ( 日付 ) ]
変数を設定 [ $delete; 値:iill_DeleteMail( $n ) ]
If [ Left ( $delete ; 1 ) = "+" ]
フィールド設定 [ Log::Delete_TimeStamp; Get ( タイムスタンプ ) ]
フィールド設定 [ Log::ERROR; "DELETE:" & $delete ]
Else
#Log記録|MMPLib_Error_Log|deleteでエラーがあった場合。
スクリプト実行 [ 「Add_log($TimeStamp,$Log)」 , ファイル: 「MMPLib_Error_Log」; 引数: "$TimeStamp=" & Quote ( Get ( タイムスタンプ ) ) & ";$Log=" & Quote ( "サーバーのメールを削除|iill_DeleteMail( " & $n & " ):" & $delete & "|" & $username & "/" & $hostname) ]
End If
End If
End If
変数を設定 [ $n; 値:$n+1 ]
End Loop
#
レイアウト切り替え [ 元のレイアウト ]
フィールドへ移動 [ ]
#Loginが成功した場合、MMPLib::gER に「+OK ...」が格納される
現在のスクリプト終了 [ 結果: If ( Left ( MMPLib::gER ; 1 ) = "+" ; MMPLib::gER ; MMPLib::gER & "|スクリプト:" & Left ( Get ( スクリプト名 ) ; 6 ) & "..." ) ]
Comments