コンテンツにスキップ

MailMakerPop+Library 2 for Receive

MailMakerPop+Library2(MMPLib2.fp7|.fmp12)は、MailMakerPop+を簡単に使用するためのライブラリファイルです(受信用)。 直接MailMakerPop+Library2(MMPLib2.fp7|.fmp12)を開いて操作する必要はありません。

サンプルはこちら

外部のFileMakerファイルから「MMPLib2.fp7|.fmp12」のスクリプトを実行し、メールの受信を行います。
あなたのFileMakerファイルから「MMPLib2.fp7|.fmp12」への参照は、[外部データソース]に追加するだけです!

リレーションシップグラフへのテーブルの追加をする必要は、ありません!

FileMaker
└ファイル
 └管理
  └外部データソース

使用するスクリプトは、4つだけ!
login(hostname,port,SSL,username,password,SaveDirectory,remove)
ReceiveMail
Get_AttachedFile(Number)
logoff

サンプルファイル:Mail_template8.fp7|.fmp12 のスクリプト実行例。

スクリプト名:受信[1アカウント]

変数を設定 [$appVer; 値:Get ( アプリケーションバージョン )]
レイアウト切り替え [「Mail_account」 (Mail_account)]
変数を設定 [$AccountTitle; 値:Mail_account::AccountTitle]
スクリプト実行 [「login(hostname,port,SSL,username,password,SaveDirectory,remove)」 , ファイル: 「MMPLib」; 引数: Mail_account::POP_Server & ¶ & 
フィールド設定 [SYSTEM::gER; Get(スクリプトの結果)]
If [Left ( SYSTEM::gER ; 1 ) ≠ "+"]
#[+]を返さない場合は、ログインに失敗しているので、ログアウト処理は、しない。
//  スクリプト実行 [「logoff」 , ファイル: 「MMPLib」]
現在のスクリプト終了 [結果: "$AccountTitle=" & Quote ( $AccountTitle ) &  ";$ERROR=" & Quote ( SYSTEM::gER )]
End If
#
レイアウト切り替え [「List」 (Mail)]
変数を設定 [$ERROR; 値:""]
Loop
スクリプト実行 [「ReceiveMail」 , ファイル: 「MMPLib」]
変数を設定 [$Result; 値:Evaluate ( "Let ( [" & Get ( スクリプトの結果 ) & "] ; 0 )" )]
#変数に値が格納されます。 $er $Subject $bodyText $bodyHTML $From $ReplyTo $To $Cc $Date $Date_Convert $UIDL $header $Character_code $Item_co
Exit Loop If [$er = 0]
If [$er = 1]
新規レコード/検索条件
フィールド設定 [Mail::受信TimeStamp; Get(タイムスタンプ)]
フィールド設定 [Mail::受信Mail_Account; $AccountTitle]
フィールド設定 [Mail::UIDL; $UIDL]
フィールド設定 [Mail::header; $header]
フィールド設定 [Mail::Subject; TextStyleAdd ( $Subject; 太字)]
フィールド設定 [Mail::From; $From]
フィールド設定 [Mail::To; $To]
フィールド設定 [Mail::Cc; $Cc]
フィールド設定 [Mail::ReplyTo; $ReplyTo]
フィールド設定 [Mail::Date変換前; $Date]
フィールド設定 [Mail::Date変換後; $Date_Convert]
フィールド設定 [Mail::bodyText; $bodyText]
フィールド設定 [Mail::bodyHTML; $bodyHTML]
フィールド設定 [Mail::MailPath; $MailFilePath]
フィールド設定 [Mail::読込文字コード; $Character_code  /*読込文字コード */]
フィールド設定 [Mail::アイテム数; $Item_count  /*アイテム数*/]
#添付ファイル取得
変数を設定 [$n; 値:1]
Loop
Exit Loop If [$n>10]
スクリプト実行 [「Get_AttachedFile(Number)」 , ファイル: 「MMPLib」; 引数: $n]
フィールド設定 [Mail::body添付ファイル[$n]; Get ( スクリプトの結果 )]
変数を設定 [$n; 値:$n+1]
End Loop
フィールドへ移動 []
Else If [$er = "+UserCancel"]
#MMPWindowの[キャンセル]ボタンを押した
Exit Loop If [1]
Else
#エラー
変数を設定 [$ERROR; 値:$ERROR & If ( IsEmpty ( $ERROR ) ; $er ; ¶ & $er )]
End If
End Loop
If [PatternCount ( $appVer ; "Pro" )   > 0]
スクリプト一時停止/続行 [間隔(秒): 1]
End If
#ログアウト
スクリプト実行 [「logoff」 , ファイル: 「MMPLib」]
If [ not IsEmpty ( $ERROR )]
If [PatternCount ( $appVer ; "Pro" )   > 0]
カスタムダイアログを表示 ["ERROR!"; "[ERROR:5]以上の場合、メールの受信ができていません。¶¶" &  $ERROR]
End If
End If
フィールドへ移動 []
レイアウト切り替え [元のレイアウト]
現在のスクリプト終了 [結果: "$AccountTitle=" & Quote ( $AccountTitle ) &  ";$ERROR=" & Quote ( $ERROR )]

login(hostname,port,SSL,.....

login(hostname,port,SSL,username,password,SaveDirectory,remove)

オプションのスクリプトパラメータ:
POP3サーバー名 & ¶ &
POP3ポート & ¶ &
SSL(0 or 1) & ¶ &
POP3アカウント & ¶ &
パスワード & ¶ &
メールメッセージファイルの保存フォルダ & ¶ &
サーバーから削除する受信後何日(数字)

以下、Gmailの場合の例: "pop.gmail.com" & ¶ &
"995" & ¶ &
"1" & ¶ &
"POP3アカウント" & ¶ &
"パスワード" & ¶ &
"D:mail\アカウント名" & ¶ &
"7"

戻り値: POP3サーバーにログインが成功した場合、
+OK 40 7974171|+OK [メールの数] [容量]
が、返ってきます。

ReceiveMail

実行例:

スクリプト実行 [「ReceiveMail」 , ファイル: 「MMPLib」]  
#スクリプト:「ReceiveMail」を実行し、結果を以下の様にして取得して下さい。  
変数を設定 [$Result; 値:Evaluate ( "Let ( [" & Get ( スクリプトの結果 ) & "] ; 0 )" )]  

#以下の変数に値が代入されます。
$er
$Subject
$bodyText
$bodyHTML
$From
$ReplyTo
$To
$Cc
$Date
$Date_Convert
$UIDL
$header
$Character_code
$Item_count
$MailFilePath

メールの有無は、$er で判断します。

新規メールがある場合、
$er = 1 になります。
ない場合、
$er = 0
エラー
$er = エラー内容

スクリプトを以下のようにしてメールの内容をFileMakerのフィールドに取り込んで下さい。

If [$er = 1]
新規レコード/検索条件
フィールド設定 [mailer::受信TimeStamp; Get(タイムスタンプ)]
フィールド設定 [mailer::受信Mail_Account; $AccountTitle]
フィールド設定 [mailer::UIDL; $UIDL]
フィールド設定 [mailer::header; $header]
フィールド設定 [mailer::Subject; TextStyleAdd ( $Subject; 太字)]
フィールド設定 [mailer::From; $From]
フィールド設定 [mailer::To; $To]
フィールド設定 [mailer::Cc; $Cc]
フィールド設定 [mailer::ReplyTo; $ReplyTo]
フィールド設定 [mailer::Date変換前; $Date]
フィールド設定 [mailer::Date変換後; $Date_Convert]
フィールド設定 [mailer::bodyText; $bodyText]
フィールド設定 [mailer::bodyHTML; $bodyHTML]
フィールド設定 [mailer::MailPath; $MailFilePath]
フィールド設定 [mailer::読込文字コード; $Character_code  /*読込文字コード */]
フィールド設定 [mailer::アイテム数; $Item_count  /*アイテム数*/]

Get_AttachedFile(Number)

Get_AttachedFile(Number)

添付ファイルを取得します。
オブジェクトデータが返ってきます。
オブジェクトフィールドに設定して下さい。
MailMakerPop+Library2(MMPLib2.fp7|.fmp12)は、添付ファイルを10個まで取得できるようになっています。
MailMakerPop+プラグイン自体は、いくつでも添付ファイルを取得できます!
添付ファイルが無い場合は、空データが返ります。

変数を設定 [$n; 値:1]
Loop
Exit Loop If [$n>10]
スクリプト実行 [「Get_AttachedFile(Number)」 , ファイル: 「MMPLib」; 引数: $n]
フィールド設定 [mailer::body添付ファイル[$n]; Get ( スクリプトの結果 )]
変数を設定 [$n; 値:$n+1]
End Loop

logoff

logoff

POPサーバとの通信を終了します!

MMPLib_Log

MMPLib_Log(.fp7|.fmp12)

「MMPLib_Log」の「UIDL」値とメールサーバーの「UIDL」値を照合しメールの受信・削除の管理を行う為のファイル。

  • メールの受信・削除のログ
  • 1レコード=1メッセージ
  • メールサーバーのデータと「UIDL」で照合

フィールド:
[Check_TimeStamp] メールサーバーをチェックし該当のメールが存在した場合、タイムスタンプが更新される。
[Receive_TimeStamp] MMPLib2(.fp7|.fmp12)のスクリプト:ReceiveMail が実行され受信が成功した場合、タイムスタンプが更新される。
[Delete_TimeStamp] メールサーバーのメールを削除した場合、タイムスタンプが更新される。
[index] 最後にメールサーバーと接続した時のメールメッセージのindex番号。
[ERROR] エラーの記録
サーバーのメールを削除した場合、"DELETE:" & メールサーバー空のメッセージ が記録されます。
例:DELETE:+OK

Back to top