Go to main content
1/12
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
1
MTA SDK Concepts and Overview
Channel Programs and Message Queuing
Managing Multiple Threads Using Contexts
Enqueuing Messages
Message Components
Threads and Enqueue Contexts
Enqueuing Dequeued Mail
Dequeuing Messages
Threads and Dequeue Contexts
Message Processing Threads
String-valued Call Arguments
Item Codes and Item Lists
2
MTA SDK Programming Considerations
Running Your Enqueue and Dequeue Programs
Debugging Programs and Logging Diagnostics
Required Privileges
Compiling and Linking Programs
Compiling
Linking Instructions for Oracle Solaris
Running Your Test Programs
To Run Test Programs in a Messaging Environment
To Manually Run Your Test Programs
Preventing Mail Loops when Re-enqueuing Mail
Miscellaneous Programming Considerations
Retrieving Error Codes
Writing Output From a Channel Program
Considerations for Persistent Programs
3
Enqueuing Messages
About Enqueing Messages
Basic Steps to Enqueue Messages
Originating Messages
A Simple Example of Enqueuing a Message
Enqueuing a Message Example Output
Transferring Messages into the MTA
Intermediate Processing Channels
Delivery Processing Options (Envelope Fields)
Order Dependencies
4
Dequeuing Messages
About Dequeing Messages
How Dequeuing Works
Basic Dequeuing Steps
Caller-Supplied Processing Routine
Dequeue Message Processing Routine Tasks
The process_message() Routine
A Simple Dequeuing Example
Explanatory Text for Numbered Comments in the Simple Dequeue Example
Processing the Message Queue
The process_done() Routine
A Complex Dequeuing Example
Explanatory Text for Numbered Comments in the Complex Dequeue Example
Intermediate processing channels
Preserve Envelope Information
Use MTA_ENV_TO
Use Rewrite Rules to Prevent Message Loops
Intermediate Channel Example
Explanatory Text for Numbered Comments in the Intermediate Channel Example
Thread Creation Loop in mtaDequeueStart()
Multiple Calls to mtaDequeueStart()
Calling Order Dependencies
5
Decoding Messages
Usage Modes for mtaDecodeMessage()
The Input Source
Dequeue Context
The Inspection Routine
A Simple Decoding Example
Explanatory Text for Numbered Comments in the Simple Decoding Example
The Output Destination
Enqueue Context
Decode Contexts
A Simple Virus Scanner Example
Example Option File
6
MTA SDK Reference
Summary of SDK Routines
Address Parsing
Dequeue
Enqueue
Error Handling
Initialization
Logging and Diagnostics
MIME Parsing and Decoding
Miscellaneous
Option File Processing
MTA SDK Routines
mtaAccountingLogClose()
Syntax
Arguments
Description
Return Values
Example
mtaAddressFinish()
Syntax
Arguments
Description
Return Values
Example
mtaAddressGetN()
Syntax
Arguments
Description
Elements Argument
Address Argument
Return Values
Example
mtaAddressParse()
Syntax
Arguments
Description
Return Values
Example
mtaAddressToChannel()
Syntax
Arguments
Description
Return Values
Example
mtaBlockSize()
Syntax
Arguments
Description
Return Values
Example
mtaChannelGetName()
Syntax
Arguments
Description
Return Values
Example
mtaChannelToHost()
Syntax
Arguments
Description
Return Values
Example
mtaDateTime()
Syntax
Arguments
Description
Return Values
Example
mtaDebug()
Syntax
Arguments
Description
Return Values
Example
mtaDecodeMessage()
Syntax
Arguments
Description
Return Values
Example
mtaDecodeMessageInfoInt()
Syntax
Arguments
Description
Return Values
Example
mtaDecodeMessageInfoParams()
Syntax
Arguments
Description
Return Values
Example
mtaDecodeMessageInfoString()
Syntax
Arguments
Description
Return Values
Example
mtaDecodeMessagePartCopy()
Syntax
Arguments
Description
Return Values
Example
mtaDecodeMessagePartDelete()
Syntax
Arguments
Description
Return Values
Example
mtaDequeueInfo()
Syntax
Arguments
Description
Return Values
Example
mtaDequeueLineNext()
Syntax
Arguments
Description
Return Values
Example
mtaDequeueMessageFinish()
Syntax
Arguments
Description
Return Values
Example
mtaDequeueRecipientDisposition()
Syntax
Arguments
Description
Return Values
Example
mtaDequeueRecipientNext()
Syntax
Arguments
Description
Return Values
Example
mtaDequeueRewind()
Syntax
Arguments
Description
Return Values
Example
mtaDequeueStart()
Syntax
Arguments
Description
Return Values
Example
Other Considerations for mtaDequeueStart()
Multiple Calls to mtaDequeueStart()
mtaDequeueThreadId()
Syntax
Arguments
Description
Return Values
Example
mtaDone()
Syntax
Arguments
Description
Return Values
Example
mtaEnqueueCopyMessage()
Syntax
Arguments
Description
Return Values
Example
mtaEnqueueError()
Syntax
Arguments
Description
Return Values
Example
mtaEnqueueFinish()
Syntax
Arguments
Description
Return Values
Example
mtaEnqueueInfo()
Syntax
Arguments
Description
Return Values
Example
mtaEnqueueStart()
Syntax
Arguments
Description
Return Values
Example
mtaEnqueueTo()
Syntax
Arguments
Description
Return Values
Example
mtaEnqueueWrite()
Syntax
Arguments
Description
Return Values
Example
mtaEnqueueWriteLine()
Syntax
Arguments
Description
Return Values
Example
mtaErrno()
Syntax
Arguments
Description
Return Values
Example
mtaInit()
Syntax
Arguments
Description
Return Values
Example
mtaLog()
Syntax
Arguments
Description
Return Values
Example
mtaLogv()
Syntax
Arguments
Description
Return Values
Example
mtaOptionFinish()
Syntax
Arguments
Description
Return Values
Example
mtaOptionFloat()
Syntax
Arguments
Description
Return Values
Example
mtaOptionInt()
Syntax
Arguments
Description
Return Values
Example
mtaOptionStart()
Syntax
Arguments
Description
Return Values
Example
mtaOptionString()
Syntax
Arguments
Description
Return Values
Example
mtaPostmasterAddress()
Syntax
Arguments
Description
Return Values
Example
mtaStackSize()
Syntax
Arguments
Description
Return Values
Example
mtaStrError()
Syntax
Arguments
Description
Return Values
Example
mtaUniqueString()
Syntax
Arguments
Description
Return Values
Example
mtaVersionMajor()
Syntax
Arguments
Description
Return Values
Example
mtaVersionMinor()
Syntax
Arguments
Description
Return Values
Example
mtaVersionRevision()
Syntax
Arguments
Description
Return Values
Example
7
Using Callable Send mtaSend()
Sending a Message
Envelope and Header From Addresses
To, Cc, and Bcc Addresses
Message Headers and Content
Required Privileges for mtaSend()
mtaSendDispose()
Syntax
Arguments
Description
Return Values
Example
Compiling and Linking Programs
Examples of Using mtaSend()
Sending a Simple Message
Example 2 Specifying an Initial Message Header
Example 3 Sending a Message to Multiple Recipients
Example 4 Using an Input Procedure to Generate the Message Body
8
mtaSend() Routine Specification
List of Item Codes
mtaSend() Syntax
Arguments
Item Descriptor Fields
Description
Item Codes
MTA_ADR_NOSTATUS
MTA_ADR_STATUS
MTA_BCC
MTA_BLANK
MTA_CC
MTA_CHANNEL
MTA_CFILENAME
MTA_CFILENAME_NONE
MTA_CTYPE
MTA_ENC_BASE64
MTA_ENC_BASE85
MTA_ENC_BINHEX
MTA_ENC_BTOA
MTA_ENC_COMPRESSED_BASE64
MTA_ENC_COMPRESSED_BINARY
MTA_ENC_COMPRESSED_UUENCODE
MTA_ENC_HEXADECIMAL
MTA_ENC_NONE
MTA_ENC_PATHWORKS
MTA_ENC_QUOTED_PRINTABLE
MTA_ENC_UNKNOWN
MTA_ENC_UUENCODE
MTA_END_LIST
MTA_ENV_FROM
MTA_ENV_TO
MTA_FRAGMENT_BLOCKS
MTA_FRAGMENT_LINES
MTA_FROM
MTA_HDR_ADRS
MTA_HDR_BCC
MTA_HDR_CC
MTA_HDR_FILE
MTA_HDR_LINE
MTA_HDR_NOADRS
MTA_HDR_NORESENT
MTA_HDR_PROC
MTA_HDR_RESENT
MTA_HDR_TO
MTA_HDRMSG_FILE
MTA_HDRMSG_PROC
MTA_IGNORE_ERRORS
MTA_INTERACTIVE
MTA_ITEM_LIST
MTA_MAX_TO
MTA_MODE_BINARY
MTA_MODE_TEXT
MTA_MSG_FILE
MTA_MSG_PROC
MTA_NOBLANK
MTA_NOIGNORE_ERRORS
MTA_PRIV_DISABLE_PROC
MTA_PRIV_ENABLE_PROC
MTA_SUBADDRESS
MTA_SUBJECT
MTA_TO
MTA_USER
9
Error Status Codes Summary
Error Status Codes
Scripting on this page enhances content navigation, but does not change the content in any way.