履歴


2.0.1

2014/09/16 18:29 に joymate tomida が投稿

メーッセージ「+OK」「末尾ドット」チェック機能追加
ファイル:MMPLib2
スクリプト:ReceiveMail

2.0

2014/09/16 18:29 に joymate tomida が投稿

ヘッダーに「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

2014/09/16 18:28 に joymate tomida が投稿

スクリプト:lib_Mail読込解析
#2014/06/24 Content-Type: text/plain; が2箇所にあり、charset= が取得出来ない時の対応
#or $cs = "iso-2022-jp" を追加

1.9

2014/01/22 17:29 に joymate tomida が投稿

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

2014/01/22 17:28 に joymate tomida が投稿   [ 2014/01/22 17:29 に更新しました ]

MMPLib2|Ver1.8|2013/12/18
ファイル:MMPLib
スクリプト:lib_Body設定
2013/12/18|Content-Disposition: が attachment でなく、name も filename もない、要素が取得出来ていなかったのを修正。

1.7

2013/11/29 1:34 に joymate tomida が投稿   [ 2013/11/29 1:35 に更新しました ]

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

2013/10/08 18:53 に joymate tomida が投稿

■■■■■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

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 ) & "..." ) ]

1.3-2

2013/03/10 23:22 に joymate tomida が投稿   [ 2013/03/11 0:54 に更新しました ]

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

2013/03/10 23:02 に joymate tomida が投稿

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