MailMakerPop+Library for Receive

MailMakerPop+Library(MMPLib.fp7)は、今後の更新は、ありません。


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


外部のFileMakerファイルから「MailMakerPop+Library(MMPLib.fp7)」のスクリプトを実行し、
「MailMakerPop+Library(MMPLib.fp7)」内の
グローバルフィールド
MMPLib_MailTemp::header
MMPLib_MailTemp::Subject
MMPLib_MailTemp::bodyText
などから
フィールド設定 [mailer::header; MMPLib_MailTemp::header]
で各値を取得します。

エラー処理無しで基本的な情報の取得であれば、以下のスクリプトでメールの受信が可能です。

受信スクリプト例

  • スクリプト実行 [ 「login(hostname,port,SSL,username,password,SaveDirectory,remove)」 , ファイル: 「MMPLib」; 引数: account::POP_Server & ¶ & account::POP_Port & ¶ & account::POP_SSL & ¶ & account::POP_Username & ¶ & account::POP_Password & ¶ & account::SaveDirectory & ¶ & account::サーバーから削除する受信後何日 ]
  • レイアウト切り替え [ 「List」 (mailer) ]
  • Loop
  • スクリプト実行 [ 「ReceiveMail」 , ファイル: 「MMPLib」 ]
  • 変数を設定 [ $er; 値:Get(スクリプトの結果) ]
  • Exit Loop If [ $er = 0 ]
  • If [ $er = 1 ]
  • 新規レコード/検索条件
  • フィールド設定 [ mailer::Subject; MMPLib_MailTemp::Subject ]
  • フィールド設定 [ mailer::From; MMPLib_MailTemp::From ]
  • フィールド設定 [ mailer::To; MMPLib_MailTemp::To ]
  • フィールド設定 [ mailer::Date変換前; MMPLib_MailTemp::Date変換前 ]
  • フィールド設定 [ mailer::bodyText; MMPLib_MailTemp::bodyText ]
  • フィールドへ移動 [ ]
  • End If
  • End Loop
  • #ログアウト
  • スクリプト実行 [ 「logoff」 , ファイル: 「MMPLib」 ]



実行が必要なスクリプトは、3つだけです。

スクリプト実行 [login(hostname,port,SSL,username,password,SaveDirectory,remove)」 , ファイル: 「MMPLib」; 引数: ...]
スクリプト実行 [ReceiveMail」 , ファイル: 「MMPLib」 ]
スクリプト実行 [ logoff」 , ファイル: 「MMPLib」 ]

スクリプト|login(hostname,port,SSL,username,password,SaveDirectory,remove)

POPサーバーへログインし、サーバー上のメールを確認します。

引数:
hostname:受信メールサーバー | 例:pop3.lolipop.jp
port:ポート | 例:110 , 995 など
SSL: 0 または、1 | 「このサーバーはセキュリティで保護された接続 (SSL) が必要」の場合は、「1」
username:受信メールサーバー ユーザー名
password:受信メールサーバー パスワード
SaveDirectory:受信したメールファイルの保存フォルダ。設定したフォルダの下層に「西暦+月」(例:201206)のフォルダを作成しその中に受信したメールを保存します。
remove:サーバーから削除する受信日から[ ]日後:「0」に設定した場合、最初に受信処理をした時には、サーバー上のメールは削除しません。再度、受信処理をした時に、サーバー上のメールが削除されます。
空欄=削除しない。

戻り値:
「+OK 16 2166373」の様に「+OK」とメールの件数・容量が帰ります。

説明:
POPサーバーへログインし、サーバー上のメールを確認します。
「Log.fp7」にサーバー上のメールをリスト化し、受信済・削除済などの管理を行います。

実行例:
スクリプト実行 [「login(hostname,port,SSL,username,password,SaveDirectory,remove)」 , ファイル: 「MMPLib」; 引数: ...]
変数を設定 [ $er; 値:Get(スクリプトの結果) ]


スクリプト|ReceiveMail

メールを受信

引数:
なし

戻り値:
未受信メールあり:「1」|なし:「0
MMPWindowの[キャンセル]ボタンを押した:+UserCancel
エラー:エラー文字列

説明:
メールを受信し、「MMPLib_MailTemp」に保管します。


実行例:
Loop
スクリプト実行 [ 「ReceiveMail」 , ファイル: 「MMPLib」 ]
変数を設定 [ $er; 値:Get(スクリプトの結果) ]
Exit Loop If [ $er = 0 ]
If [ $er = 1 ]
新規レコード/検索条件
フィールド設定 [ mailer::受信日; Get(日付) ]
フィールド設定 [ mailer::header; MMPLib_MailTemp::header ]
フィールド設定 [ mailer::Subject; MMPLib_MailTemp::Subject ]
フィールド設定 [ mailer::bodyText; MMPLib_MailTemp::bodyText ]
End Loop

スクリプト|logoff

POPサーバーとの通信を終了

引数:
なし

戻り値:
正常終了:0

実行例:
スクリプト実行 [ 「logoff」 , ファイル: 「MMPLib」 ]

MailTemp からメールを取得

スクリプト|ReceiveMail を実行し、メールを受信した場合、
「MailMakerPop+Library(MMPLib.fp7)」内の
テーブル
MailTemp
グローバルフィールド
UIDL
header
Subject
From
To
Cc
ReplyTo
Date変換前
Date変換後
bodyText
bodyHTML
MailPath
読込文字コード
アイテム数
にそれぞれの情報が保管されています。

「FileMaker データソースの追加...」で「MailMakerPop+Library(MMPLib.fp7)」を追加しグローバルフィールドの値を取得出来るように設定して下さい。



MailTempから取得

フィールド設定 [mailer::受信日; Get(日付)]
フィールド設定 [mailer::UIDL; MMPLib_MailTemp::UIDL]
フィールド設定 [mailer::header; MMPLib_MailTemp::header]
フィールド設定 [mailer::Subject; TextStyleAdd ( MMPLib_MailTemp::Subject; 太字)]
フィールド設定 [mailer::From; MMPLib_MailTemp::From]
フィールド設定 [mailer::To; MMPLib_MailTemp::To]
フィールド設定 [mailer::Cc; MMPLib_MailTemp::Cc]
フィールド設定 [mailer::ReplyTo; MMPLib_MailTemp::ReplyTo]
フィールド設定 [mailer::Date変換前; MMPLib_MailTemp::Date変換前]
フィールド設定 [mailer::Date変換後; MMPLib_MailTemp::Date変換後]
フィールド設定 [mailer::bodyText; MMPLib_MailTemp::bodyText]
フィールド設定 [mailer::bodyHTML; MMPLib_MailTemp::bodyHTML]
フィールド設定 [mailer::MailPath; MMPLib_MailTemp::MailPath]
フィールド設定 [mailer::読込文字コード; MMPLib_MailTemp::読込文字コード]
フィールド設定 [mailer::アイテム数; MMPLib_MailTemp::アイテム数]
#添付ファイル取得
変数を設定 [$n; 値:1]
Loop
Exit Loop If [$n>10]
フィールド設定 [mailer::body添付ファイル[$n]; MMPLib_MailTemp::body添付ファイル[$n]]
変数を設定 [$n; 値:$n+1]
End Loop

Comments