履歴
2.0
ヘッダーに「Content-Type: text/plain」が全く無い場合に対応。 ファイル:MMPLib2 スクリプト:lib_Body設定 32行目付近 If [IsEmpty ( MailTemp::bodyText ) and not IsEmpty ( MailTemp::bodyHTML )] スクリプト実行 [「lib_└Get TEXT from HTML by 正規表現」] End If の後に If [IsEmpty ( MailTemp::bodyText )] フィールド設定 [MailTemp::bodyText; MailTemp::bodyText & iill_GetBodyn( 0 )] End If を追加。 |
1.9x
スクリプト:lib_Mail読込解析 #2014/06/24 Content-Type: text/plain; が2箇所にあり、charset= が取得出来ない時の対応 #or $cs = "iso-2022-jp" を追加 |
1.9
MMPLib2|Ver1.9|2014/01/23 text/plain が、複数存在する場合に対応。 iPhoneから複数の写真を添付した場合、text/plain が、複数になり、本文を取得できていなかった問題を修正。 ファイル:MMPLib スクリプト:lib_Body設定 フィールド設定 [MailTemp::bodyText; iill_GetBodyn( $n )] を フィールド設定 [MailTemp::bodyText; MailTemp::bodyText & iill_GetBodyn( $n )] に変更。 フィールド設定 [MailTemp::bodyHTML; iill_GetBodyn( $n )] を フィールド設定 [MailTemp::bodyHTML; MailTemp::bodyHTML & iill_GetBodyn( $n )] に変更。 |
1.8
MMPLib2|Ver1.8|2013/12/18 ファイル:MMPLib スクリプト:lib_Body設定 2013/12/18|Content-Disposition: が attachment でなく、name も filename もない、要素が取得出来ていなかったのを修正。 |
1.7
MMPLib2|Ver1.7|2013/11/29 ファイル:MMPLib スクリプト:login(hostname,port,SSL,username,password,SaveDirectory,remove) 先頭に スクリプト実行 [lib_1レコード確保] を追加。 ※MMPLib(.fp7|fmp12)は、レコードが一つ必要。 |
1.6|Mail_template8.2
■■■■■ver.8.2|2013/10/08~09 ■ファイル:Mail_template8 ■HTMLメールの表示をMailMakerPop+の関数無しで行えるように変更 ■ファイル:MMPLib2|Ver1.6 ■POP3サーバーがメールメッセージに割り振るID番号(UIDL)の 大文字・小文字違いのユニークIDに対応 「AAAAgoKDAAAk8oCxkZ95D2kkVxxxxx」 「AAAagoKDAAAk8oCxkZ95D2kkVxxxxx」 以下の2つのファイルのフィールドのデフォルト言語を「Unicode」に変更 【1】 ファイル:MMPLib2.fmp12 テーブル:MMPLib フィールド:gUIDL オプション->索引->デフォルト言語=「Unicode」 【2】 ファイル:MMPLib_Log.fmp12 テーブル:Log フィールド:UIDL オプション->索引->デフォルト言語=「Unicode」 ■■■■■ver.8.1|2013/09/06~09 ■ファイル:MMPLib2|Ver1.5 「写真付きメール(写真がメッセージに挿入されたHTMLメール)」対応HTML 育成の為に「Content_ID」を取得 フィールド:MailTemp::body添付ファイル_Content_ID 追加 フィールド:MailTemp::body添付ファイル_FileName 追加 スクリプト:lib_Body設定 に「Content-ID」取得スクリプトを追加 フィールド設定 [MailTemp::body添付ファイル_Content_ID[$AttachedFile_index];... スクリプト:Get_AttachedFile_ContentID(Number) 追加 スクリプト:Get_AttachedFile_FileName(Number) 追加 ■ファイル:Mail_Data フィールド:MailTemp::body添付ファイル_Content_ID 追加 フィールド:MailTemp::body添付ファイル_FileName 追加 ■ファイル:Mail_template8 ●スクリプト:受信[1アカウント] 以下を追加 #取得 Content-ID スクリプト実行 [「Get_AttachedFile_ContentID(Number)」 , ファイル: 「MMPLib」; 引数: $n] フィールド設定 [Mail::body添付ファイル_Content_ID[$n]; Get ( スクリプトの結果 )] #取得 FileName スクリプト実行 [「Get_AttachedFile_FileName(Number)」 , ファイル: 「MMPLib」; 引数: $n] フィールド設定 [Mail::body添付ファイル_FileName[$n]; Get ( スクリプトの結果 )] ●スクリプト:Body表示WEBビューア 以下を追加 #「写真付きメール」対応HTML 育成 ▼▼▼▼▼|2013..9.06~09 追加 If [ not IsEmpty ( List ( Mail::body添付ファイル_Content_ID ) )//写真付メールかどうか] 変数を設定 [$atFolder; 値:Let(X=Get ( テンポラリパス ); Right ( X ; Length ( X ) -1) & Get ( レコード ID ) & "/" & Get ( レコード ID ) & ".txt" )] #添付ファイル保存用フォルダ作成 変数を設定 [$er; 値:iill_TextFile_Write( $atFolder ; "UTF-8" ; Get ( タイムスタンプ ))] 変数を設定 [$n; 値:1] Loop Exit Loop If [$n>10] 変数を設定 [$Cid; 値:Mail::body添付ファイル_Content_ID[$n]] If [not IsEmpty ( $Cid ) and not IsEmpty ( Mail::body添付ファイル_FileName[$n]) and not IsEmpty ( Mail::body添付ファイル[$n])] 変数を設定 [$atFilePath; 値:Get ( レコード ID ) & "/" & GetAsText ( Mail::body添付ファイル_FileName[$n] )] 変数を設定 [$HTML; 値:Substitute ( $HTML ; "cid:" & $Cid ; $atFilePath )] 変数を設定 [$IMGPath; 値:Get ( テンポラリパス ) & $atFilePath] フィールド内容のエクスポート [Mail::body添付ファイル[$n]; 「$IMGPath」] End If 変数を設定 [$n; 値:$n+1] End Loop End If #「写真付きメール」対応HTML 育成 ▲▲▲▲▲ ●スクリプト:タブコントロール選択[HTML] Textなし、HTMLなし、の場合Web ビューアに"about:blank"を設定 変更前: Web ビューアの設定 [オブジェクト名: "Mail_HTML_Content"; URL: "file:/" & Mail::cHtmlMailPath] 変更後: If [IsEmpty ( Mail::bodyText ) and IsEmpty ( Mail::bodyHTML )] Web ビューアの設定 [オブジェクト名: "Mail_HTML_Content"; URL: "about:blank"] Else Web ビューアの設定 [オブジェクト名: "Mail_HTML_Content"; URL: "file:/" & Mail::cHtmlMailPath] End If |
1.4
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 ) & "..." ) ] |
1.3-2
MMPLib_Log(.fp7|.fmp12)のスクリプト:Log削除 変更。 ログの削除を Check_TimeStampが3ヶ月以上前 から Check_TimeStampが90日以上前 に変更。 #Check_TimeStampが3ヶ月以上前のLogを削除 検索モードに切り替え [] フィールド設定 [Log::Check_TimeStamp; "..." & Let(D=Get ( 日付 ); Date ( Month ( D )-3 ; Day ( D ); Year ( D ) ) )] エラー処理 [オン] 検索実行 [] 対象レコード削除 [ダイアログなし] フィールドへ移動 [] 変更後 #Check_TimeStampが90日以上前のLogを削除 検索モードに切り替え [] フィールド設定 [Log::Check_TimeStamp; "..." & Let(D=Get ( 日付 ); Date ( Month ( D ) ; Day ( D )-91; Year ( D ) ) )] エラー処理 [オン] 検索実行 [] 対象レコード削除 [ダイアログなし] フィールドへ移動 [] |
1.3
MMPLib2(.fp7|.fmp12)のスクリプト:ReceiveMail 変更。 以下を追加。 #Log記録|MMPLib_Log フィールド設定 [ Log::ERROR; Log::ERROR & If ( IsEmpty ( Log::ERROR ) ; "" ; ¶ ) & Get ( タイムスタンプ ) & "|" & "受信 +OK|Retry:" & Log::CountError ] スクリプト実行 [ 「GetMailIndex(Server,Account)」 , ファイル: 「Log」; 引数: MMPLib::gServer & ¶ & MMPLib::gAccount ] 変数を設定 [ $argu; 値:Get(スクリプトの結果) ] 変数を設定 [ $UIDL; 値:GetValue ( $argu ; 1 ) ] 変数を設定 [ $index; 値:GetValue ( $argu ; 2 ) ] 変数を設定 [ $RecID; 値:GetValue ( $argu ; 3 ) ] If [ IsEmpty ( $UIDL ) or IsEmpty ( $index ) or $RecID = 0 ] 現在のスクリプト終了 [ 結果: "$er=" & Quote ( 0 ) ] End If スクリプト実行 [ 「lib_初期化[MailTemp]」 ] レイアウト切り替え [ 「MMPLib」 (MMPLib) ] フィールド設定 [ MMPLib::gUIDL; $UIDL ] フィールドへ移動 [ ] #ここから「MMPLib_Log.fp7」への設定が可能 #[Log::CountError]の初期化は スクリプト:「login(hostname,port,SSL,username,password,SaveDirectory,remove)」で実行している #[Log::CountError]が5回以上の場合、このメールの受信をスキップ If [ Log::CountError ≥ 5 ] フィールド設定 [ Log::CountError; Log::CountError+1 ] #Log記録|MMPLib_Error_Log スクリプト実行 [ 「Add_log($TimeStamp,$Log)」 , ファイル: 「MMPLib_Error_Log」; 引数: "$TimeStamp=" & Quote ( Get ( タイムスタンプ ) ) & ";$Log=" & Quote ( "受信 -ER|受信できませんでした!" & "|Retry:" & Log::CountError & "|index:" & $index & "|UIDL:" & MMPLib::gUIDL & "|" & MMPLib::gAccount & "/" & MMPLib::gServer ) ] フィールドへ移動 [ ] 現在のスクリプト終了 [ 結果: "$er=" & Quote ( "ERROR:" & Log::CountError & "|" & Log::ERROR& "|スクリプト:" & Get ( スクリプト名 ) ) ] End If #mailファイル保存用フルパス作成 スクリプト実行 [ 「lib_MailPath設定(id)」; 引数: $RecID ] フィールドへ移動 [ ] #受信 変数を設定 [ $Result; 値:iill_GetMail_Binary2( $index ; MailTemp::MailPath ) ] フィールド設定 [ MMPLib::gER; $Result ] フィールドへ移動 [ ] If [ $Result = MailTemp::MailPath ] #受信成功 フィールド設定 [ Log::Receive_TimeStamp; Get ( タイムスタンプ ) ] If [ Log::CountError > 0 ] #エラーの後で、受信が成功した場合、Log記録 #Log記録|MMPLib_Error_Log スクリプト実行 [ 「Add_log($TimeStamp,$Log)」 , ファイル: 「MMPLib_Error_Log」; 引数: "$TimeStamp=" & Quote ( Get ( タイムスタンプ ) ) & ";$Log=" & Quote ( "受信 +OK|Retry:" & Log::CountError & "|index:" & $index & "|UIDL:" & MMPLib::gUIDL & "|" & MMPLib::gAccount & "/" & MMPLib::gServer ) ] #Log記録|MMPLib_Log フィールド設定 [ Log::ERROR; Log::ERROR & If ( IsEmpty ( Log::ERROR ) ; "" ; ¶ ) & Get ( タイムスタンプ ) & "|" & "受信 +OK|Retry:" & Log::CountError ] End If フィールドへ移動 [ ] Else If [ $Result = "+UserCancel" ] #MMPWindowの[キャンセル]ボタンを押した 現在のスクリプト終了 [ 結果: "$er=" & Quote ( $Result ) ] Else #エラー #Log記録|MMPLib_Error_Log スクリプト実行 [ 「Add_log($TimeStamp,$Log)」 , ファイル: 「MMPLib_Error_Log」; 引数: "$TimeStamp=" & Quote ( Get ( タイムスタンプ ) ) & ";$Log=" & Quote ( "受信 -ER|" & $Result & "|Retry:" & Log::CountError & "|index:" & $index & "|UIDL:" & MMPLib::gUIDL & "|" & MMPLib::gAccount & "/" & MMPLib::gServer ) ] #Log記録|MMPLib_Log フィールド設定 [ Log::ERROR; Log::ERROR & If ( IsEmpty ( Log::ERROR ) ; "" ; ¶ ) & Get ( タイムスタンプ ) & "|" & $Result & "|スクリプト:" & Get ( スクリプト名 ) ] フィールド設定 [ Log::CountError; Log::CountError+1 ] フィールドへ移動 [ ] 現在のスクリプト終了 [ 結果: "$er=" & Quote ( "ERROR:" & Log::CountError & "|" & "index:" & $index & "|" & $Result ) ] End If # フィールド設定 [ MailTemp::UIDL; $UIDL ] スクリプト実行 [ 「lib_Mail読込解析」 ] スクリプト実行 [ 「lib_header情報取得」 ] スクリプト実行 [ 「lib_Body設定」 ] フィールドへ移動 [ ] #受信メールがある場合、結果($er)に「1」を返す。 変数を設定 [ $return; 値:"$er=" & Quote ( 1 ) & ";$Subject=" & Quote ( MailTemp::Subject ) & ";$bodyText=" & Quote ( MailTemp::bodyText ) & ";$bodyHTML=" & Quote ( MailTemp::bodyHTML ) & ";$From=" & Quote ( MailTemp::From ) & ";$ReplyTo=" & Quote ( MailTemp::ReplyTo ) & ";$To=" & Quote ( MailTemp::To ) & ";$Cc=" & Quote ( MailTemp::Cc ) & ";$Date=" & Quote ( MailTemp::Date変換前 ) & ";$Date_Convert=" & Quote ( MailTemp::Date変換後 ) & ";$UIDL=" & Quote ( MailTemp::UIDL ) & ";$header=" & Quote ( MailTemp::header ) & ";$Character_code=" & Quote ( MailTemp::読込文字コード ) & ";$Item_count=" & Quote ( MailTemp::アイテム数 ) & ";$MailFilePath=" & Quote ( MailTemp::MailPath ) ] 現在のスクリプト終了 [ 結果: $return ] |
1-10 of 12