cfpop

説明

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

シンタックス

<cfpop  
    server = "server name" 
    action = "getHeaderOnly|getAll|delete" 
    attachmentPath = "path" 
    debug = "yes|no"> 
    generateUniqueFilenames = "yes|no" 
    maxRows = "number" 
    messageNumber = "number" 
    name = "query name" 
    password = "password" 
    port = "port number" 
    secure = "yes|no"> 
    startRow = "number" 
    timeout = "seconds" 
    uid = "number" 
    username = "user name">
注意: このタグの属性は attributeCollection 属性で指定でき、その値は構造体になります。attributeCollection 属性で構造体の名前を指定し、タグの属性名を構造体のキーとして使用します。

関連項目

cfftpcfhttpcfldapcfmailcfmailparamSetLocale、『ColdFusion アプリケーションの開発』のSending and Receiving E-Mail

履歴

ColdFusion 10 Beta:secure 属性が追加されました。

ColdFusion MX 7.01: cids クエリー変数が追加されました。

ColdFusion MX 6.1:

  • テキストおよび HTML のパートを含むマルチパートメールメッセージのサポートが追加されました。

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

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

属性

属性

必須 / オプション

デフォルト

説明

server

必須

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

  • ホスト名 (例 : biff.upperlip.com)

  • IP アドレス (例 : 192.1.2.225)

action

オプション

getHeaderOnly

  • getHeaderOnly: メッセージヘッダの情報のみを返します。

  • getAll: メッセージヘッダの情報、メッセージテキスト、および attachmentPath を指定している場合は添付ファイルを返します。

  • delete: POP サーバー上のメッセージを削除します。

attachmentPath

オプション

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

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

debug

オプション

no

  • yes: デバッグ出力を標準出力に送信します。デフォルトでは、コンソールウィンドウを使用できない場合、ColdFusion は出力を <ColdFusion のルートディレクトリ>/runtime/logs/coldfusion-out.log に送信します。J2EE 設定と JRun を使用する場合、デフォルトの場所は <JRun のホーム>/logs/<サーバー名>-out.log です。注意 : このオプションを Yes に設定した場合、ColdFusion は、取得したすべてのメッセージの内容を含む詳細なデバッグ情報をログに書き込むため、大容量のログが短期間で生成される可能性があります。

  • no: デバッグ出力を生成しません。

generateUniqueFilenames

オプション

no

  • yes: 電子メールメッセージに添付したファイルに固有のファイル名を生成して、ファイル保存時の名前の重複を避けます。

  • no

maxRows

オプション

取得可能なすべての行を取得

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

messageNumber

 

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

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

name

action="getAll" または "getHeaderOnly" の場合は必須

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

password

オプション

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

port

オプション

110

POP ポートです。

secure

オプション

no

yes に設定すると、pop リクエストの SSL が有効化されます。

startRow

オプション

1

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

timeout

オプション

60

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

uid

 

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

username

オプション

ユーザー名です。

使用方法

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

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

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

attachmentPath 属性

attachmentPath 属性で、メモリ内のディレクトリを指定するには、次のシンタックスを使用します。メモリ内のファイルを使用すると、一時的データの処理が速くなります。

ram:///path

パスには、ram:///petStore/mail/attachments のように複数のディレクトリを含めることができます。パス内のディレクトリは、ファイルを指定する前に作成する必要があります。メモリ内のファイルの使用方法について詳しくは、『ColdFusion アプリケーションの開発』のWorking with in-memory filesを参照してください。

cfpop のクエリー変数

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

変数名

説明

queryname.recordCount

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

queryname.currentRow

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

queryname.columnList

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

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

次の表は、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

queryname.UID

yes

yes

queryname.cids

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 アプリケーションの開発』のSending and Receiving E-Mailを参照してください。

<!--- This view-only example shows the use of cfpop. ---> 
<h3>cfpop Example</h3> 
<p>cfpop lets you retrieve and manipulate mail in a POP3 mailbox.  
    This view-only example shows how to create one feature of  
    a mail client, to display the mail headers in a POP3 mailbox. 
<p>To execute this, un-comment this code and run with a mail-enabled CF Server. 
<!---  
<cfif IsDefined("form.server")> 
    <!--- Make sure server, username are not empty. ---> 
    <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>Message Headers in Your Inbox</h3> 
        <p>Number of Records:  
        <cfoutput>#GetHeaders.recordCount#</cfoutput></p> 
 
        <ul> 
            <cfoutput query = "GetHeaders"> 
            <li>Row: #currentRow#: From: #From# -- Subject: #Subject# 
            </cfoutput> 
        </ul> 
    </cfif> 
</cfif> 
 
<form action = "cfpop.cfm " method = "post"> 
    <p>Enter your mail server:</p> 
    <p><input type = "Text" name = "popserver"></p> 
    <p>Enter your username:</p> 
    <p><input type = "Text" name = "username"></p> 
    <p>Enter your password:</p> 
    <p><input type = "password" name = "pwd"></p> 
    <p><input type = "Submit" name = "get message headers"></p> 
</form>  
--->