This section provides an example of each of the following uses of POP mail:
You can retrieve only the headers of your messages by using the GetHeaderOnly value for the action
attribute of the cfpop
tag. Whether you use cfpop
to retrieve the header or the entire message, ColdFusion returns a query object that contains one row for each message in the specified mailbox. The query object, whose name is specified in the name
attribute of the cfpop
tag, consists of the following fields:
<html> <head> <title>POP Mail Message Header Example</title> </head> <body> <h2>This example retrieves message header information:</h2> <cfpop server="mail.company.com" username=#myusername# password=#mypassword# action="GetHeaderOnly" name="Sample"> <cfoutput query="Sample"> MessageNumber: #HTMLEditFormat(Sample.messageNumber)# <br> To: #HTMLEditFormat(Sample.to)# <br> From: #HTMLEditFormat(Sample.from)# <br> Subject: #HTMLEditFormat(Sample.subject)# <br> Date: #HTMLEditFormat(Sample.date)#<br> Cc: #HTMLEditFormat(Sample.cc)# <br> ReplyTo: #HTMLEditFormat(Sample.replyTo)# <br><br> </cfoutput> </body> </html>
<cfpop
server="mail.company.com"
username=#myusername#
password=#mypassword#
This code retrieves the message headers and stores them in a cfpop
record set called Sample. For more information about working with record set data, see Chapter 22, "Using Query of Queries".
The ColdFusion function HTMLEditFormat
replaces characters that have meaning in HTML, such as the less than (<) and greater than (>) signs that can surround detailed e-mail address information, with escaped characters such as <
and >
.
In addition, you can process the date returned by cfpop
with ParseDateTime
, which accepts an argument for converting POP date/time objects into a CFML date-time object.
You can reference any of these columns in a cfoutput
tag, as the following example shows:
<cfoutput
>
#ParseDateTime(queryname.date, "POP")#
#HTMLCodeFormat(queryname.from)#
#HTMLCodeFormat(queryname.messageNumber)#
</cfoutput
>
For information on these ColdFusion functions, see CFML Reference.
When you use the cfpop
tag with action="GetAll"
, ColdFusion returns the same columns as with getheaderonly
, plus two additional columns, body
and header
.
<html> <head><title>POP Mail Message Body Example</title></head> <body> <h2>This example adds retrieval of the message body:</h2> <cfpop server="mail.company.com" username=#myusername# password=#mypassword# action="GetAll" name="Sample"> <cfoutput query="Sample"> MessageNumber: #HTMLEditFormat(Sample.messageNumber)# <br> To: #Sample.to# <br> From: #HTMLEditFormat(Sample.from)# <br> Subject: #HTMLEditFormat(Sample.subject)# <br> Date: #HTMLEditFormat(Sample.date)#<br> Cc: #HTMLEditFormat(Sample.cc)# <br> ReplyTo: #HTMLEditFormat(Sample.replyTo)# <br> <br> Body:<br> #Sample.body#<br> <br> Header:<br> #HTMLCodeFormat(Sample.header)#<br> <hr> </cfoutput> </body>
</html>
<cfpop
server="mail.company.com"
username=#myusername#
password=#mypassword#
This example does not use a CFML function to encode the body contents. As a result, the browser displays the formatted message as you would normally see it in a mail program that supports HTML messages.
When you use the cfpop
tag with action="getAll"
, and use the attachmentpath
attribute to specify the directory in which to store attachments, ColdFusion retrieves any attachment files from the POP server and saves them in the specified directory. The cfpop
tag also adds the following two columns to the query it creates:
attachments
Contains a tab-separated list of all attachment names.
attachmentfiles
Contains a tab-separated list of the locations of the attachment files. Use the cffile
tag to delete these temporary files.
You must ensure that the attachmentpath
directory exists before you use the cfpop
tag to retrieve attachments. ColdFusion generates an error if it attempts to write an attachment file to a nonexistent directory.
If a message has no attachments, the attachments
and attachmentfiles
columns contain empty strings.
<html> <head> <title>POP Mail Message Attachment Example</title> </head> <body> <h2>This example retrieves message header, body, and all attachments:</h2> <cfpop server="mail.company.com" username=#myusername# password=#mypassword# action="GetAll" attachmentpath="c:\temp\attachments" name="Sample"> <cfoutput query="Sample"> MessageNumber: #HTMLEditFormat(Sample.MessageNumber)# <br> To: #HTMLEditFormat(Sample.to)# <br> From: #HTMLEditFormat(Sample.from)# <br> Subject: #HTMLEditFormat(Sample.subject)# <br> Date: #HTMLEditFormat(Sample.date)# <br> Cc: #HTMLEditFormat(Sample.cc)# <br> ReplyTo: #HTMLEditFormat(Sample.ReplyTo)# <br> Attachments: #HTMLEditFormat(Sample.Attachments)# <br> Attachment Files: #HTMLEditFormat(Sample.AttachmentFiles)# <br> <br> Body:<br> #Sample.body# <br> <br> Header:<br> HTMLCodeFormat(Sample.header)# <br> <hr> </cfoutput> </body> </html>
<cfpop
server="mail.company.com"
username=#myusername#
password=#mypassword#
Note: To avoid duplicate filenames when saving attachments, set the generateUniqueFilenames
attribute of cfpop
to Yes.
By default, retrieved messages remain on the POP mail server. If you want to delete retrieved messages, you must set the action
attribute of the cfpop
tag to Delete. You must also specify use the messagenumber
attribute to specify the numbers of the messages to delete.
Using cfpop
to delete a message permanently removes it from the server. If the messagenumber
does not correspond to a message on the server, ColdFusion generates an error.
Note: Message numbers are reassigned at the end of every POP mail server communication that contains a delete action. For example, if you retrieve four messages from a POP mail server, the server returns the message numbers 1,2,3,4. If you delete messages 1 and 2 with a single cfpop
tag, messages 3 and 4 are assigned message numbers 1 and 2, respectively.
<html> <head> <title>POP Mail Message Delete Example</title> </head> <body> <h2>This example deletes messages:</h2> <cfpop server="mail.company.com" username=#username# password=#password# action="Delete" messagenumber="1,2,3"> </body> </html>
<cfpop
server="mail.company.com"
username=#username#
password=#password#
Caution: When you view this page in your web browser, ColdFusion immediately deletes the messages from the POP server.
The following figure shows the message list before the deletion of message 280:
The following figure shows the message list after the deletion of message number 280. ColdFusion reorders the remaining messages: