Ctasd Integration Manual
Ctasd Integration Manual
Ctasd Integration Manual
(ctasd)
Integration Manual
Version 4.02
The information contained in this document is subject to change without notice. Commtouch
makes no warranty of any kind. Commtouch will not be liable for any direct, indirect,
incidental, consequential or other damage alleged in connection with the furnishing or use of
this information. Except as allowed by copyright laws or herein, reproduction, adaptation or
translation without prior written permission is prohibited. RPD™, ctasd™, and ctengine™ are
trademarks of Commtouch Software Ltd. All other trade/service marks or names that may be
referenced and/or mentioned in this document belong to their respective owners. Microsoft is a
trademark and/or registered trademark of Microsoft Corp. Linux is a trademark of Linus
Torvalds. Red Hat is a trademark of Red Hat, Inc. in the United States and other countries.
Debian is a registered trademark of Software in the Public Interest, Inc.
Contacts
Any technical questions you or your developers have about using the ctwsd should be
addressed to [email protected].
About Commtouch
Commtouch® (NASDAQ: CTCH) provides proven Internet security technology to more than 150
security companies and service providers including 1&1, Check Point, F-Secure, Google,
Microsoft, Panda Security, Rackspace, US Internet, WatchGuard and Webroot,, for integration
into their solutions. Commtouch’s GlobalView™ and patented Recurrent Pattern Detection™
(RPD™) technologies are founded on a unique cloud-based approach, and protect effectively in
all languages and formats. Commtouch’s Command Antivirus utilizes a multi-layered approach
to provide award winning malware detection and industry-leading performance.
Commtouch was founded in 1991, is headquartered in Netanya, Israel, and has a subsidiary
with offices in Sunnyvale, Calif and Palm Beach Gardens, Florida.
Commtouch Inc. Commtouch Software Ltd.
292 Gibraltar Drive, 4A Hatzoran St
Suite 107, P.O. Box 8511
Sunnyvale, CA 94089, USA Netanya 42504, Israel
Tel: +1 650.864.2000 Tel: +972-9-863-6888
Fax: +1 650.864.2002 Fax: +972-9-863-6863
Table of Contents
Introduction................................................................................................................ 3
Working with ctasd ...................................................................................................... 3
ctasd Solution Components ........................................................................................... 5
System Architecture and Data Flow ................................................................................ 6
Spam Classifications (X-CTCH-Spam) ............................................................................. 7
Virus Threat Level Classifications (X-CTCH-VOD) .............................................................. 8
ctasd Deployment Options ............................................................................................ 8
ctasd Minimum Requirements ........................................................................................ 9
ctasd Package ............................................................................................................. 9
Internal Directory Structure .......................................................................................... 9
ctasd Configuration ................................................................................................... 11
Sample Configuration File ............................................................................................ 11
Optional Configuration Parameters ................................................................................17
Running ctasd ........................................................................................................... 19
Command Line Options................................................................................................ 19
Stopping ctasd ...........................................................................................................20
ctasd Protocol ........................................................................................................... 21
Request and Response Conventions...............................................................................21
ClassifyMessage_File ...................................................................................................21
Method: ClassifyMessage_Inline ....................................................................................25
Response to ClassifyMessage_Inline Request ..................................................................27
Method: ReportFP Request ........................................................................................... 28
Response to ReportFP Request ..................................................................................... 28
Method: ReportFN Request .......................................................................................... 29
Response to ReportFN Request ..................................................................................... 29
Method: GetServices Request ....................................................................................... 30
Response to GetServices Request .................................................................................30
Method: GetStatus Request.......................................................................................... 30
Response to GetStatus Request ....................................................................................31
Error Handling ............................................................................................................31
SNMP Counters ......................................................................................................... 33
General SNMP Counters ............................................................................................... 33
Spam Classification Counters........................................................................................ 34
Virus Outbreak Detection (VOD) Classification Counters ...................................................35
HTTP Protocol Counters ............................................................................................... 35
Deploying ctasd over WAN ........................................................................................ 37
Implementing a Failover Mechanism ..............................................................................37
ctasd Testing and Verification ................................................................................... 39
Connectivity Test ........................................................................................................39
Acceptance Test .........................................................................................................40
Corpus of Messages for Evaluation ................................................................................40
Running the Sample Client ........................................................................................... 42
Introduction
ctasd includes an HTTP server listening to HTTP requests on a predefined port. When
it receives input about messages requiring filtering, it passes the data to an
embedded Detection Engine (ctengine™). The message patterns are analyzed and
using this analysis, a spam and/or virus outbreak detection classification is
determined. Ctasd is then responsible for responding to the HTTP client with the
specific classifications of the messages.
The querying device is responsible for passing information about the messages to
ctasd. It will then receive classifications from ctasd and use these classifications to
apply policies or actions to the messages (for example delete the message because it
was found to be spam, quarantine the bulk message until more information is
available, or forward the message to the intended recipient).
The querying device connects to a predefined TCP port on the ctasd daemon and
passes information about the messages that require filtering in one of two ways:
File reference
Streaming data
In ”file reference” mode, the client passes the absolute path of a file to ctasd, which
then loads the file. In ”streaming data” mode, the client passes the message headers
and body to ctasd. In both cases, ctasd classifies the message and returns a series of
relevant classifications to the client (spam and/or malware).
The client sends HTTP requests to ctasd and receives HTTP responses.
Communication is based on the Commtouch-proprietary API using HTTP 1.0
conventions, as described later in this document.
The following steps demonstrate how to prepare and work with ctasd to detect and
filter email-borne spam and malware outbreaks during evaluation and testing:
1. Modify the default configuration file (ctasd.conf) or create a new version of the
configuration file.
2. Run the daemon, specifying the path of the configuration file to use.
For more details how to make effective evaluation and testing see the section ctasd
testing and verification.
The global Spam and virus pattern repository on the Commtouch Datacenter is a
result of the fully-automated analysis center adjacent to the Datacenter. The
Datacenter receives real-time information about new spam and virus attacks that
emerge over the Internet, globally and regionally. It analyzes the information,
updates the pattern repository with appropriate classification, and replies
simultaneously to real-time outstanding queries from Commtouch systems, such as
ctasd, that are deployed at customer sites.
By identifying these patterns, the technology is able to identify and detect massive
email-borne threat attacks with a high level of accuracy. Commtouch RPD™
technology was designed to detect spam or malware that is written in every
language and in all message-formats (text, HTML, images, etc.).
The Commtouch Datacenter spans several separate sites for failover and load-
balancing purposes. ctasd is designed with a built-in automatic failover mechanism in
case the last-used Datacenter is not available.
Although highly unlikely, if the connectivity with all the Datacenters is interrupted for
some reason, ctasd continues to retrieve new incoming messages and matches these
new messages against a local classification cache, which is generally credited with
detecting and classifying almost 70% of the spam messages. If a connection to all
Datacenters is unavailable, messages that do not match the local cache are
considered Uncategorized and classified accordingly and are not held until the
connectivity is restored. In addition, a connectivity error message will be logged to
the syslog file. When connectivity is resumed, the standard filter flow will resume.
Commtouch Datacenter
ctasd daemon
ctasd protocol
Querying devices
Commtouch Datacenter
The Commtouch Datacenter monitors global email traffic in real-time (24*7*365)
from various sources on an ongoing basis and maintains a vast database of message
patterns and classifications that are determined based on numerous dynamically
changing parameters.
ctasd
The Commtouch Advanced Security daemon (ctasd) performs various functions, from
receiving and processing incoming queries from query devices to determining the
Spam and/or virus outbreak detection (VOD) classifications of incoming messages
and quickly responding to the querying devices.
ctasd Protocol
In order to enable communication between a querying device and ctasd, Commtouch
has developed a simple protocol for its OEM partners using ctasd. This enables OEM
partners to provide advanced anti-spam and virus outbreak detection services to
their users. Communication between the ctasd and the querying device is
accomplished over HTTP. For more information, see ctasd Protocol.
Querying Device
For the purposes of this document, the term “querying device” is used as a generic
term for OEM applications responsible for email filtering. These applications are
integrated with ctasd to provide anti-spam and virus outbreak detection by sending
queries to ctasd over HTTP.
Once a response is received from ctasd, the querying device is responsible for
applying the appropriate policy/action on the filtered messages.
Commtouch
Datacenter
2 Incoming
message
Commtouch
Advanced 1
Querying
Security ctasd Protocol
Device
daemon 4
(ctasd)
5
Apply
Action on
msg.
Classification Explanation
Note: The Mail Sort feature enables better inbox management by distinguishing personal
emails from valid, general mailings such as newsletters. When ctasd determines that
an email contains solicited newsletters or similar bulk mailings, it returns with a
classification of Valid Bulk.
By default, the Valid Bulk classification is not enabled. To enable this classification,
you must uncomment the ValidBulkEnabled parameter in the ctasd.conf and change
the value to 1 (enabled). The default value is 0 (disabled).
When ctasd finds enough evidence to suggest the likelihood that a virus is present, it
is often recommended that you hold the message until the next relevant anti-virus
update instead of immediately deleting it (to avoid cases of false positives) or
forwarding to the targeted recipients (to avoid cases of false negatives).
Holding the message until the next immediate anti-virus update might not always be
the best tactic to use, if the anti-virus vendor has not had an opportunity to release
the appropriate signature. Therefore, it is recommended that you determine the
average response time for detecting new virus outbreaks for the particular anti-virus
software in use. You can then calculate how long to hold the message before again
passing it to the anti-virus software.
Classification Explanation
ctasd Package
The ctasd package contains the following:
./ctasd-<version>-<platform>-<compiler>/
ReleaseNotes.txt
/bin Binary files and the configuration file
/bin/oslib Operating system libraries
/bin/snmp SNMP files, including sample scripts for
evaluating and testing
/bin/snmp/mibs SNMP MIB files
/corpus Files used for testing ctasd integration
Although you can unpack and set up ctasd’s directory structure according to your
preferences, following is a list of the directory structure in which ctasd expects to
find various files and components.
ctasd Configuration
A default ctasd.conf file is provided with the ctasd package containing the necessary
configuration parameters for the daemon. The administrator can configure a single
ctasd.conf file and then copy it to other locations to be used by other daemons, but
each instance of ctasd must have its own, unique ctasd.conf file.
Most of the parameters in the configuration are optional, and have default values
that are enforced if another value is not specified. However, in order for connectivity
with the Datacenter to be established, valid License_key_code and the
Server_address must be manually set.
Note: If changes are made to the ctasd.conf file while the daemon is running,
ctasd must be stopped and restarted for the changes to take effect.
[General]
PersistentCacheEnabled=1
UseAuthMode=0
#ValidBulkEnabled- This parameter defines whether the Valid Bulk Classification
should be enabled.
#By default Valid Bulk is disabled
#ValidBulkEnabled=0
# Connectivity Section
#
# * Your license key code (mandatory)
# * Server address (mandatory)
# * Maximum cache records value (optional)
# * Proxy Server settings (only if using proxy server)
[Connectivity]
License_key_code = xxxxxxxxxxxxxxxxxxxx
Server_address = xxxxxxxxxxxxxxxxxxxx
# This is the maximum number of records that will be
# stored in the local spam detection cache.
Cache_max_records = 100000
#ProxyPort =
#ProxyServerAddress =
#ProxyAuth =
#ProxyUserName =
#ProxyPassword =
#ProxyAccess =
# Security Section
#
# Associates the user and group names for the daemon.
[Security]
User=root
Group=root
# HttpServer Section
#
# Specify the TCP port on the daemon to connect by the client
# and the relevant connectivity and performance parameters.
[HttpServer]
Port=8088
ListenBackLog=100
InitialThreads=1
MaxThreads=50
Concurrency=50
# If BindingAddress is empty (or commented), BindingAddress is set to
INADDR_ANY.
#BindingAddress=<IP Address>
[Stats]
#Port=/var/run/ctasd/ctasd.stats
# If BindingAddress is empty (or commented), BindingAddress is set to
INADDR_ANY.
#BindingAddress=<IP Address>
[Outbound]
#The size/time duration of each time window managed for each SenderID Counter.
#The parameter is measured in seconds.
#SenderIDWindowSize=60
#Flag if the ctasd ClassifyMessage response message should include also counter
values.
#ReportCounters=0
[General]
PersistentCacheEnabled=1
UseAuthMode = 0
The UseAuthMode option defines whether ctasd is deployed over LAN (0) or over
WAN (1). For more information, review the relevant section: Deploying ctasd over
WAN. If ctasd is deployed over WAN you need to ensure that HTTP requests are sent
with the X-CTCH-Key header as explained later in the section ctasd protocol. Default
value: 0 (disabled)
ValidBulkEnabled=0
The ValidBulkEnabled option defines whether ctasd will use the Mail Sort feature to
return classifications of Valid Bulk. While Bulk is considered unsolicited messages
that are received in large quantities within a given period of time, and therefore
suspected of spam, Valid Bulk is defined as solicited or wanted bulk messages such
as newsletters. The determination is made by the Datacenter.
OutboundEnabled =0
Note: If Outbound Spam is enabled, a unique license key for this service should
by used. For more information, see the ctasd Outbound Spam Protection
Integration Manual.
[Connectivity]
License_key_code = <license key code>
Enter the license key code for ctasd. If an incorrect number is entered, Commtouch
Datacenter will be unable to authenticate the organization and therefore decline
detection services. This is a mandatory parameter in the Connection String, and
consists of the following:
The OEM/Service Provider partner’s identifier should distinguish between each user,
device, or installation. In cases where more than one Commtouch product or service
is installed on the same device, a unique token should be created per instance. The
token should be unique for the lifetime of the host application and should not be
changed so that the same OEM token is used each time the application is initiated. It
can be based on hardware or software-specific data. Commtouch needs this full
license key format to offer the highest level of customer support and service.
The format for this concatenated parameter uses a colon delimiter, as follows:
Example: LicenseKey=0001K032B1010W167E2B:12345-1234A-55555
The DNS string is the server address at Commtouch Datacenter. Contact your
Commtouch sales representative to obtain a valid DNS string that will uniquely
identify your queries.
Cache_max_records = <value>
The maximum size of the local spam classification cache. There is no specific upper
limit to this value. Once the cache reaches this amount, the oldest records are
overwritten with newer ones, thus limiting the cache records to the specified value
set in the configuration file.
Default value: 100,000.
[Security]
User = <user name>
[HttpServer]
Port = <number>
ListenBacklog = <number>
InitialThreads = <number>
Initial amount of threads waiting for client requests when starting ctasd.
Default value: 1.
MaxThreads = <number>
Maximum amount of threads waiting for client requests during ongoing operation.
Default value: 50.
Concurrency = <number>
[Stats]
StatusPort
The Port option defines the server port for the statistics information collected from
the SNMP counters.
BindingAddress=<IP Address>
The BindingAddress option defines the IP address to monitor for traffic when ctasd is
deployed on a machine with multiple network cards. If a specific IP address is not
specified, than ctasd will monitor traffic on all available IP addresses.
Note: If changes are made to the ctasd.conf file while the daemon is running,
ctasd must be stopped and restarted. See the following section for more
details. This is not relevant for the ctasd Windows version.
[Outbound]
The [Outbound] section of the ctasd.conf defines the parameters needed to configure
the Outbound Spam Protection Service. By default, this is not enabled. To enable this
service, you must receive an Outbound Spam Protection license key from
Commtouch. For more information about the Commtouch Outbound Spam Protection
Service, see the ctasd Outbound Protection Service Integration Manual.
[Connectivity]
ProxyPort = <port number>
Specifies the port number used for connectivity with the proxy server.
ProxyServerAddress = <address>
Specifies the authentication mode for connectivity with the proxy server.
Options include: Basic, or NoAuth.
ProxyPassword = <password>
ProxyAccess = <integer>
When using a proxy server, this value should be set to 1. This indicates that
connectivity with the Internet is via a proxy server. This number should not be
changed. A value of 0 indicates that a proxy server is not being used in this network
topology.
Running ctasd
ctasd may be run as a service from init.d or interactively. ctasd tries to load
libasapsdk.so from the local folder and if it cannot find it there, it looks in the system
search path (LD_LIBRARY_PATH).
-r
-p <name>
-p <path>
For non-Windows platforms: creates a PID file and place it in the specified
path location. By default, the path and PID file name is: [/var/run/ctasd.pid].
This option is not applicable for Windows platforms.
-u <name>
-c <path>
Changes the location of the configuration file by specifying –c and the new
path. The default location of the configuration file is etc/ctasd.conf.
-i
-l <port>
-v
-? or –h
Stopping ctasd
If you are running ctasd interactively, you can kill the daemon using Ctrl-C.
Alternatively, if you are not running it in interactive mode, you can send a SIGTERM
to the process identified in ctasd.pid file or in the file created with the –p option
above.
ctasd Protocol
The querying device is developed and implemented by the OEM partner according to
the protocol detailed in the following sections. It is then integrated with ctasd and
the messaging network according to one or more of the scenarios in ctasd
Deployment Options.
The querying device receives inbound messages from the messaging network and for
each message it generates and posts a request to ctasd to classify the message.
Communication between the querying device and ctasd is made over HTTP 1.0. The
querying device connects to a TCP port on the ctasd daemon as prescribed in
ctasd.conf.
The request envelope includes Commtouch-related data. The structure of the header
is extensible, meaning that the order of the headers is not mandatory and not all
headers are required to be included in all requests and responses. Commtouch uses
and requires standard rfc822 headers structure.
ClassifyMessage_File
Method: ClassifyMessage_File
location. When using this option make sure that ctasd has sufficient access
permissions to the files’ location. For an example of the syntax and contents, see
Sample HTTP Request with File Reference.
Header Explanation
X-CTCH-SenderIP
The IP address of the sending SMTP machine is an important value, as it is a
valuable indicator of spammer sources and is very hard to fake.
After the message is received, it is stamped with the IP address and host name
of the sending SMTP machine in the ‘Received:’ message header.
If the message “hopped” a few times on its way to the recipient(s), each time
it completed a hop the address of the sending SMTP machine is stamped, or
added to the header.
Therefore, the information in this header describes the message’s entire
journey from the sender to the recipient’s mail server.
Some ISP and Enterprise organizations route messages through a series of internal
mail servers before redirecting the messages to the Detection Client for filtering.
The X-CTCH-SenderIP is an optional header in the request-envelope data block.
While you may want to assume that the address at the bottom of the chain in the
‘Received:’ message header representing the actual SMTP machine that was used
by the spammer, this is unfortunately not possible because smart spammers are
aware of this assumption and try to circumvent it to disguise their origin by inserting
faked addresses at the beginning of the list.
Nevertheless, the address at the top of the list contains valuable hints to Commtouch
because it may expose SMTP machines that spammers use or abuse frequently (i.e.
‘zombies’). This address is compared at the Commtouch Datacenter against
dynamically-generated lists of both ‘bad’ and ‘good’ IP addresses and is used for a
host of applications.
X-CTCH-MailFrom
The ‘mailfrom’ email address can be used to determine the likelihood of a message
being spam. However, this is an optional header in the request-envelope data block.
X-CTCH-PVer: 0000001
POST data: request X-CTCH-SenderIP: 150.215.71.29
envelope >> X-CTCH-MailFrom: [email protected]
X-CTCH-FileName: /var/spool/incoming/00000E44E1.eml
Header Explanation
ClassifyMessage_File Response
HTTP/1.0 200 OK
HTTP headers Date: Sat, 12 May 2006 22:25:21 GMT
Server: 165.34.21.87
Content-Length: 122
Connection: close
Content-Type: text/plain
Method: ClassifyMessage_Inline
The message headers and body are included in the request only if
ClassifyMessage_Inline request method is used instead of ClassifyMessage_File.
These are standard rfc822-compliant headers and body of the messages.
The request ends at the end of the message-body data block without a CRLF. In this
case, the querying device opens the file and streams the message data to ctasd over
HTTP. In this format, the message body can be included (optional).
Request Envelope
Header Explanation
Request Body
X-CTCH-PVer:0000001
POST data
X-CTCH-SenderIP: 150.215.71.29
request envelope
X-CTCH-MailFrom: [email protected]
Header Explanation
It is critical that the RefID always be included in the message sent in the request.
Without the RefID, Commtouch is unable to analyze the report.
Header Explanation
Request Body
The message headers and message body should be included as described above for
the ClassifyMessage_File/Inline requests.
Header Explanation
Header Explanation
Request Body
Include the message headers and message body as described above about
ClassifyMessage_File/Inline requests.
Header Explanation
Header Explanation
Header Explanation
Header Explanation
Header Explanation
Error Handling
When an error occurs, either during the sending of a
ClassifyMessageFile/Inline request or when ctasd is sending a response back
to the querying device, an error message is generated and sent to the querying
device over HTTP.
Header Explanation
Error Body
HTTP headers
Date: Sat, 12 May 2006 22:25:21 GMT
Server: hostname
Content-Length: 122
Connection: close
Content-Type: text/plain
Response Envelope
X-CTCH-PVer: 0000001
X-CTCH-ERROR: 501
Error body
Your license key is invalid or blocked in the Commtouch
Datacenter. Contact Commtouch technical support.
SNMP Counters
To use the SNMP counters you can configure a special port in configuration file as
described in the [general] section. When you telnet to this port, the daemon will
dump the data of the counters and will close the connection. You can write your own
SNMP sub-agent that will access the data in the predefined port and will expose
them in SNMP format. A sample of such sub-agent is supplied by Commtouch in the
package. The ctasd SNMP counters are detailed in the CTCH-CTASD-MIB.txt file.
While ctasd is typically deployed within the customer’s premises and LAN for best
performance, it is possible to deploy ctasd over WAN and remotely to the querying
devices. This deployment scenario comes with some limitations as described below
but in some cases it is justified and an essential solution for specific cases.
When deploying ctasd over WAN, you must be aware of the following limitations:
Make sure that each request to ctasd (except in the case of GetStatus
request) contains the header X-CTCH-Key. Use the same license key that is
used in ctasd.conf.
When deploying ctasd over WAN, the connectivity between the querying devices and
ctasd units may be interrupted from time to time and the responsibility for enabling
connectivity continuity to the ctasd unit is with the Commtouch OEM partner
deploying ctasd.
If you plan a failover mechanism to ctasd units that are deployed over WAN follow
these guidelines:
The best way to properly test ctasd’s effectiveness is to test it against a known
corpus of messages. When evaluating spam and malware detection using ctasd, you
should be aware that ctasd was designed to protect all users from massive spam and
virus outbreaks that are in progress in real-time. This means that you must test
ctasd with:
Verify that you have specified all the necessary parameters required in the
configuration file (by default, ctasd.conf). Note that you may also perform the test
via Proxy Server. For more details, contact your Commtouch representative.
Connectivity Test
ctasd performs an automatic connectivity test with the Commtouch Datacenter at
startup and, if it is unable to connect, generates and displays an error message. If
necessary, restart the daemon manually to see if an error message is generated at
startup.
If the administrator is unable to achieve connectivity after launching the daemon, the
following checks should be performed:
Use ‘telnet resolver1.ctmail.com 80’ from the same machine running ctasd to
validate the connection. If you are unable to connect using Telnet, it is possible
that the license key code entry in the configuration file was entered incorrectly.
Check the license key code in the configuration file and correct if necessary.
Confirm that connection with the Datacenter is not via a server proxy or, if it is
through a server proxy, that the appropriate parameters have been added to
the configuration file.
Confirm that there is no network problem and that connectivity with the
Internet is possible.
Acceptance Test
To test and evaluate ctasd after deployment, follow these steps:
You may also include additional test messages in this directory by following these
general guidelines:
Note: If the option for ValidBulk is enabled, the expected results for msg_sh.eml
file will be ValidBulk, rather than unknown.
Expected
File name Comments
Result
Eicar files:
eicar.com and High risk http://www.eicar.org/anti_virus_test_file.htm
eicar.zip
Make sure to embed these files within rfc822-compliant messages when conducting a
VOD test.
ctasd package includes two optional sample client codes, named http_client.pl and
socket_client.pl.
http_client.pl uses a standard http library and is preferred for use in order to
emulate exactly the communication between a querying device and ctasd
daemon.
socket_client.pl may be used when the tester is unable to use a standard
http library for testing. Instead, this sample code opens a socket to the ctasd
daemon.
Other than the above difference, both sample clients are used and operate the same
way and produce the same results.
Using the sample client you may connect to ctasd and evaluate the entire process
quickly. The client demonstrates the use of the protocol and is not a complete
application within itself. To use the sample client, you should execute the client and
ctasd from the same host.
OPTIONS
--stream
--host <hostname>
-?, --help
Notes:
http_client.pl will scan the DIR-NAME (recursively) and for each file within it
will generate a separate request to ctasd for filtering. The messages must be
rfc822-compliant.
If you do not specify a port, than the default TCP port is assumed.
The -m and -s are optional parameters.
Verify that ctasd has Access permissions to load the files for filtering.
When you create your own client you may choose how to input messages to
ctasd. Options are: reference to a file (as sampled by http_client.pl) or
stream the message data as prescribed later in this document.
Output is sent to stdout.
To execute the client successfully, verify that you have the following modules
installed:
o LWP::UsarAgent and HttpRequest::Common available from the LWP
(The World-Wide Web library for Perl) library at
http://search.cpan.org/dist/libwww-perl/lib/LWP.pm
o Getopt::Long and File::Find, usually available by default on any Perl
distribution.
200 OK
X-CTCH-PVer: 0000001
X-CTCH-Spam: Bulk
X-CTCH-VOD: Unknown
X-CTCH-Flags: 0
X-CTCH-RefID: str=0001.0A090209.43DF250A.000E,ss=3,sh,fgs=0
200 OK
X-CTCH-PVer: 0000001
X-CTCH-Spam: Bulk
X-CTCH-VOD: Unknown
X-CTCH-Flags: 0
X-CTCH-RefID: str=0001.0A090206.43DF2506.0031,ss=3,sh,fgs=0
200 OK
X-CTCH-PVer: 0000001
X-CTCH-Spam: Bulk
X-CTCH-VOD: Unknown
X-CTCH-Flags: 0
X-CTCH-RefID: str=0001.0A090207.43DF25A8.0044,ss=3,sh,fgs=0