CFPOP  
説明

POP メールサーバーから電子メールメッセージの取得や削除を行います。

 
カテゴリ

インターネットプロトコルタグ

 
シンタックス
<cfpop
   server = "servername"
   port = "port_number"
   username = "username"
   password = "password"
   action = "action"
   name = "queryname"
   messageNumber = "number"
   uid = "number" 
   attachmentPath = "path"
   timeout = "seconds"
   maxRows = "number"
   startRow = "number"
   generateUniqueFilenames = "yes"、"no"
   debug = "yes"、"no">
 
関連項目

cfftp、cfhttp、cfldap、cfmail、cfmailparam、SetLocale、『ColdFusion MX 開発ガイド』の第39章の「電子メールの送受信」

 
ヒストリ

ColdFusion MX 6.1:

  • テキストおよび HTML のパートを含むマルチパートメールメッセージのサポートが追加されました。
  • 添付ファイル名のセパレータが変更されました。メッセージに複数の添付ファイルが含まれる場合、タブ記号が attachments および attachmentfiles クエリーフィールドのセパレータになりました。この動作は ColdFusion 5 およびそれ以前のバージョンと同じです。

ColdFusion MX: 添付ファイル名のセパレータが変更されました。メッセージに複数の添付ファイルが含まれる場合、カンマが attachments および attachmentfiles クエリーフィールドの名前を区切ります。

 
使用方法

cfpop タグは、POP サーバーからメールメッセージを取得し、取得したメッセージを 1 行 1 メッセージで、ColdFusion クエリーオブジェクトに挿入します。または、POP サーバーからメッセージを削除します。

メモ: cfpop タグが奇形のメールメッセージを取得した場合、エラーは生成されず、空のフィールドが返されます。

パフォーマンスを最大化するために、2 つの取得オプションを利用できます。メッセージヘッダの情報は、通常は短いため、短時間で転送されます。メッセージテキストおよび添付ファイルは長い場合もあり、処理に時間がかかることもあります。

 
cfpop クエリー変数

次の表では、cfpop によって返されるクエリーに関する情報を提供する変数について説明します。

変数名 説明

queryname.recordCount

クエリーによって返されるレコードの数です。

queryname.currentRow

cfoutput により処理されている現在の行です。

queryname.columnList

クエリー内の列名のリストです。

queryname.UID

電子メールメッセージファイルの固有の識別子です。

 
クエリーメッセージヘッダおよび本文の列

次の表は、action = "getHeaderOnly" または "getAll" の場合に返されるメッセージヘッダおよび本文の列のリストです。

列名 getHeaderOnly getAll

queryname.date

yes

yes

queryname.from

yes

yes

queryname.messagenumber

yes

yes

queryname.messageid

yes

yes

queryname.replyto

yes

yes

queryname.subject

yes

yes

queryname.cc

yes

yes

queryname.to

yes

yes

queryname.body

no

yes

queryname.textBody

no

yes

queryname.HTMLBody

no

yes

queryname.header

yes

yes

queryname.attachments

no

yes

queryname.attachmentfiles

no

yes

メールメッセージに Content-Type が text/plain のパートが含まれる場合は、queryname.textBody 列にパートのメッセージの内容が入ります。メールメッセージに Content-Type が text/HTML のパートが含まれる場合は、queryname.HTMLBody 列にパートのメッセージの内容が入ります。これらのタイプと一致する Content-Type がない場合は、列は空になります。queryname.Body 列には、常に最初に見つかったメッセージ本文が入ります。

queryname.attachments 列には、すべての添付ファイル名を示すタブ区切りのリストが入ります。queryname.attachmentfiles 列には、添付ファイルの場所を示すタブ区切りのリストが入ります。処理が終わったテンポラリファイルを削除するには、cffile タグを使用します。

queryname.date 列のメールメッセージから抽出される日付時刻文字列から ColdFusion の日付時刻オブジェクトを作成するには、次の表のようにします。

ロケール queryname.date から ColdFusion の日付時刻オブジェクトを作成する方法

English (US)

ParseDateTime関数を使用します。pop-conversion 属性を指定すると、関数は日付/時刻オブジェクトを UTC に調整します。

その他

文字列から日付部分を抽出し、それを LSParseDateTime 関数に渡します。

メモ: 日付、時刻、数値、および通貨の値のデフォルトの表示形式を設定するには、SetLocale 関数を使用してください。

cfpop の詳細については、『ColdFusion MX 開発ガイド』の第39章の「電子メールの送受信」 を参照してください。

 
<!--- この参照専用の例は、cfpop の使用方法を示しています。 --->
<h3>cfpop の例</h3>
<p>cfpop を使用すると、POP3 メールボックス内でメールの取り出しと操作を行うことができます。 
この参照専用の例では、メールクライアントの機能を 1 つ作成し、POP3 メールボックスでメールヘッダーを表示
する方法を示します。
<p>これを実行するには、このコードのコメントを削除し、メール操作が有効になっている CF サーバーで実行します。
<!--- 
<cfif IsDefined("form.server ")>
   <!--- サーバー、ユーザー名が空でないことを確認します。 --->
   <cfif form.server is not "" and form.username is not "">
      <cfpop server = "#form.popserver# " username = #form.username# password = #form.pwd#
      action = "getHeaderOnly" name = "GetHeaders ">
      <h3> Inbox のメッセージヘッダ</h3>
      <p>レコード件数。 
      <cfoutput>#GetHeaders.recordCount#</cfoutput></p>

      <ul>
         <cfoutput query = "GetHeaders">
         <li>行。#currentRow#:送信者 :#From# -- 題名。#Subject#
         </cfoutput>
      </ul>
   </cfif>
</cfif>

<form action = "cfpop.cfm " method = "post">
   <p>メールサーバーを入力してください。
   <p><input type = "Text" name = "popserver">
   <p>ユーザー名を入力してください。
   <p><input type = "Text" name = "username">
   <p>パスワードを入力してください。
   <p><input type = "password" name = "pwd">
   <input type = "Submit" name = "get message headers">
</form> 
--->
SERVER  
  必須
 

POP サーバーの識別子です。

  • ホスト名 (例 : biff.upperlip.com)
  • IP アドレス (例 : 192.1.2.225)
PORT  
  オプション
 
Default value: "110"

POP ポートです。

USERNAME  
  オプション
 

ユーザー名です。

PASSWORD  
  オプション
 

username に対応するパスワードです。

ACTION  
  オプション
 
Default value: "getHeaderOnly"
  • getHeaderOnly: メッセージヘッダの情報のみを返します。
  • getAll: メッセージヘッダの情報、メッセージテキスト、および attachmentPath を指定している場合は添付ファイルを返します。
  • delete: POP サーバー上のメッセージを削除します。
NAME  
  action = "getAll" または "getHeaderOnly" の場合は必須
 

取得したメッセージの情報が含まれるクエリーオブジェクトの名前です。

MESSAGE
NUMBER
 
   
 

取得または削除するメッセージ番号またはメッセージ番号のカンマ区切りリストです。無効なメッセージ番号は無視されます。

uid 属性を指定すると、この属性は無視されます。

UID  
   
 

取得または削除する UID または UID のカンマ区切りリストです。無効な UID は無視されます。

ATTACHMENTPATH  
  オプション
 

action="getAll" の場合に、添付ファイルを保存するディレクトリを指定します。指定したディレクトリが存在しない場合は、自動的に作成されます。

この属性を省略すると、添付ファイルは保存されません。相対パスを指定する場合は、GetTempDirectory 関数によって返される ColdFusion テンポラリディレクトリがパスのルートになります。

TIMEOUT  
  オプション
 
Default value: "60"

メール処理を待つ最大時間です (単位 : 秒)。

MAXROWS  
  オプション
 
Default value: "取得可能なすべての行を取得"

startRow の番号から数えて、取得または削除するメッセージの数です。messageNumber 属性または uid 属性を指定すると、この属性は無視されます。

STARTROW  
  オプション
 
Default value: "1"

取得または削除する最初の行番号です。messageNumber 属性または uid 属性を指定すると、この属性は無視されます。

GENERATE
UNIQUE
FILENAMES
 
  オプション
 
Default value: "No"
  • Yes: 電子メールメッセージに添付したファイルに固有のファイル名を生成して、ファイル保存時の名前の重複を避けます。
  • No
DEBUG  
  オプション
 
Default value: "No"
  • Yes: デバッグ出力を標準出力に送信します。デフォルトでは、コンソールウィンドウを使用できない場合、ColdFusion は出力を cf_root/runtime/logs/coldfusion-out.log に送信します。J2EE 設定と JRun を使用する場合、デフォルトの場所は jrun_home/logs/servername-out.log です。
    注意 : このオプションを Yes に設定した場合、ColdFusion MX は、取り出したすべてのメッセージの内容などの詳細なデバッグ情報をログに書き込み、大容量のログをすばやく生成できます。
  • No: デバッグ出力を生成しません。