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 ) & "..." ) ] |
MailMakerPop+Library 2 for Receive > 履歴 >