FORMAT OF THE IMA.INI FILE
(Version 1.04b)

INITIALIZATION FILE LAYOUT

The file ima.ini is the Internet Exchange configuration file, and is used to store all gateway configuration information. This file is installed in the Windows directory. It is created by the installation procedure, and updated whenever any changes are made to the gateway configuration via the system manager (admin.exe). Most initialization file settings are loaded into memory at the start of program execution. Since CCIN, CCOUT, and SMTPC are not long running tasks, they pick up any changes by the next time they run. The settings ADMIN references are loaded each time it needs to test them, so changes are reflected instantly. SMTPD must be shutdown and restarted to pickup changes.

The configuration parameters in the ima.ini file are broken down into several functional categories. They are:

Post Office
Local post office connection information
Gateway
General gateway parameters
Schedules
Queue manager scheduling
Connection
TCP/IP host parameters
Routing
TCP/IP routing
Options
Operational switches
Magic
MIME to DOS file extension mapping
Confirm
User confirmation options
Config
Miscellaneous configuration options
Tuning
TCP and SMTP tuning parameters
Debug
Debugging options
License Info
Software licensing information
Addressing
Internationalization of cc:Mail tokens
Apple
Apple MacIntosh options

Each section of the ima.ini file is identified by the section name enclosed between brackets. For example, the PostOffice section will be identified by the marker [PostOffice] in the configuration file. Section and variable names are not case sensitive. If a value contains embedded spaces, you may enclose it with double quotation marks, however it is not required. To include comments in the IMA.INI file, begin each comment line with a semicolon (;). Each configurable parameter within a given section will be of the form:

OptionName=OptionValue


[PostOffice]

PoName
This is the name of the local cc:Mail Post Office database which will be used to store messages. This name is the same name the cc:Mail administrator supplies on the cc:Mail (not Internet Exchange) ADMIN utility command line when doing user ID additions, deletions, etc. to the cc:Mail directory. The default value is main-po.

example: PoName=Main Post Office

PoPath
This is the full DOS path to the local cc:Mail post office database referenced by the PoName setting above. The default value is m:\ccdata.

example: PoPath=m:\ccdata

PoPassword
This is set to the encrypted password of the cc:Mail Post Office database (i.e. the same password you use to invoke the cc:Mail ADMIN utility). It is set by IMASETUP and the Configure Post Office screen and is not intended to be modified by any other means.

PoAdministrator
This is the name of the local cc:Mail administrator. Messages addressed to "postmaster" will be forwarded to this cc:Mail user. The default value is postmaster.

example: PoAdministrator=Adam Smith

InternetPoName
This is the name which Internet Exchange uses to log into the local cc:Mail Post Office. It is an upper case "P" entry in the cc:Mail directory. This should be left as Internet unless this name is already used. Note: At installations which provide cc:Mail users with several means of delivering messages to and from the Internet, the P.O. name, "Internet" may be too broad, in which case you might consider using a more specific name such as SMTP or MIME. The default value is Internet.

example: InternetPoName=Internet


[Gateway]

SendMessageSize
This is the maximum size for outgoing messages. CCOUT will return messages larger than this value to the sender. A value of 0 indicates no limit. The default is 0.

example: SendMessageSize=0

ReceiveMessageSize
This is the maximum size for incoming messages. CCIN will return messages larger than this value to the sender. If a message must be returned, and it is also larger than SendMessageSize, only the message headers will be returned. A value of 0 indicates no limit. The default is 0.

example: ReceiveMessageSize=0

LogfileSizeLimit
This is the maximum size of logfile in bytes. The Windows notepad application cannot display files larger than about 50kb, so when the logfile exceeds this size, it is renamed and a new logfile is started. If your logfile viewer (see [Config] Viewer) can handle larger files, then this number can be increased. A value of 0 indicates no limit. The default is 50,000.

example: LogfileSizeLimit=50000

QueueDirectory
This is the directory Internet Exchange uses for queuing incoming and outgoing messages. It is sometimes desirable to change the default location of this directory if you want to move the whole queue directory tree off to a network drive. The default value for this option is c:\ieccmail\queue.

example: QueueDirectory=c:\ieccmail\queue

TimeZone
This is the local timezone. The format is NNNHH:MMSSS, where NNN is the 3 digit code for normal time, HH:MM a signed value indicating the difference in hours from Greenwich Mean Time (GMT) and SSS is the 3 digit code for daylight saving time. This last code can be omitted if daylight saving is not used locally. It is generally easier for the user to set this option from IMASETUP or ADMIN's Gateway button/dialog. The default value is PST8PDT.

example: TimeZone=PST8PDT

LoggingLevel
This option defines how much information to record in IECCMAIL.LOG. Level 1 is the lowest level, which allows only errors to be logged. Level 2 allows queue processors to log successful delivery of messages. Level 3 additionally logs all SMTP transactions, while level 4 includes much diagnostic information as well. Normally, level 2 or 3 should be used, although SMTP logging consumes a great deal of disk space. Note: See the [Debug] DetailedSMTPlog option for additional ways to control SMTP logging. The default is 3.

example: LoggingLevel=3

GatewayMode
This option accepts the values send, receive, configure, or send/receive. Send causes Internet Exchange's Admin program to only execute CCOUT and SMTPC, while receive causes it to only run SMTPD and CCIN. Send/receive allows all programs to function normally. Configure mode will not allow any message traffic to be processed and can be used when it is necessary to make configuration changes while message delivery is suspended. Note: When Internet Exchange is restricted to either send or receive mode, error reports (i.e. bounced messages) will still be produced, but their delivery will be postponed until the gateway mode is changed to a mode that will allow for these error reports to be delivered. The default mode is send/receive.

example: GatewayMode=send/receive

RetryPeriod
This is the number of hours during which SMTPC will attempt to deliver a message. After this time has elapsed, the message will be returned to sender. The default is 72.

example: RetryPeriod=72

MaxRetryPeriod
This specifies the maximum value, in hours, for the SMTPC retry period, generated via the exponential back-off algorithm. i.e. if this value is reached, then all further retries before RetryPeriod will be every MaxRetryPeriod hours. e.g. if RetryPeriod=72 and MaxRetryPeriod=12, then the retry increment each time will double until it hits 12 hours. It will then increase by 12 hours each time until 72 hours have elapsed, at which point the message will be bounced. The default is 60 hours.

example: MaxRetryPeriod=4

SMTPCqueueRunSize
This is the number of messages which SMTPC will attempt to deliver in a single queue pass. SMTPC will continue to process messages (based upon the setting of SMTPCrestartIfNotDone) as long as there are any messages remaining in the queue after a given pass. A value of 0 allows SMTPC to process all the messages in a single queue run. The default is 5.

example: SMTPCqueueRunSize=10

SMTPCrestartIfNotDone
Controls the restarting of SMTPC after it has processed SMTPCqueueRunSize number of messages. The default is YES.

example: SMTPCrestartIfNotDone=YES

MaxSessions
This limits the number of simultaneous incoming SMTP connections. Some Winsock stacks cannot handle unlimited incoming connections. In the case of Wollongong Pathway, this value should be set no higher than 8. Values are numeric, with the default being zero (i.e. no limit).

example: maxSessions=8

TemporaryDirectory
This points to the directory which Internet Exchange will use for the storage of temporary files. If this can be configured as a RAM disk or a disk with lazy write caching enabled, a considerable speedup can be achieved. The default value is c:\ieccmail\queue\tmp.

example: TemporaryDirectory=c:\ieccmail\queue\tmp

FastAdminStartup
If there has been a network outage or hardware failure, etc., which has caused the cc:Mail post office queue to grow very long, you can reduce the time required for ADMIN to startup by enabling the FastAdminStartup option. This will postpone the queue counter update until the first mouse or keyboard action from the user, and will delay the updating of the listbox until the second mouse or keyboard action from the user. The default is NO.

example: FastAdminStartup=NO

LoopingItemsToPostmaster
Controls whether CCIN forwards items which appear to be caught in a routing loop to the system administrator, or returns them to the sender (which may only perpetuate the loop). The default is NO.

example: LoopingItemsToPostmaster=NO

LocalCharSet
This value is either US-ASCII or ISO-8859-1 up to -10. These are the standard ISO strings used for the MIME character set parmeter. The default is US-ASCII.

example: LocalCharSet=US-ASCII

MaxTrips
This option specifies the maximum number of Recieved lines allowed in an incoming message which include the FQDN of the gateway machine. If this number is exceeded, the message will be bounced. This can be used to stop message loops. The default is 5.

example: MaxTrips=5

SMTPC554DuringDATAisTemporary
RFC 821 (SMTP) is unclear whether a "554 transaction failed" error during the SMTP DATA phase indicates a non-retriable error. Generally 5XX errors are considered permanent, non-retriable errors, but some SMTP implementations issue 554 for non-fatal error conditions. Internet Exchange takes the conservative approach and treats this as retriable, unless you set this option to NO. If set to YES, a 554 SMTP error during the data phase of an SMTPC session is treated as temporary, and the message will be retried later, otherwise it will be bounced. The default is YES.

example: SMTPC554DuringDATAisTemporary=YES


[Schedules]

CcInInterval
This is the interval in minutes for starting up the CCIN queue manager. The default is 5.

example: CcInInterval=5

CcOutInterval
This is the interval in minutes for starting up the CCOUT queue manager. The default is 5.

example: CcOutInterval=5

SMTPCInterval
This is the interval in minutes for starting up the SMTPC queue manager. The default is 5.

example: SMTPCInterval=5

CcInSync
If set, ccInSync will cause CCIN to start up as soon as a message is fully received by SMTPD into the queue\in directory. Valid values are YES and NO. The default value is NO.

example: CcInSync=YES

CcOutSync
If set, ccOutSync will cause CCOUT to start up as soon as a message is detected in the outgoing cc:Mail post office queue (i.e. in the cc:Mail database). Valid values are YES and NO. The default value is NO.

example: CcOutSync=YES

SMTPCSync
If set, SMTPCSync will cause SMTPC to start up as soon as a message is fully delivered by CCOUT to the queue\out directory. Valid values are YES and NO. The default value is NO.

example: SMTPCSync=YES

ShutdownTime
This value, if set to a value other than NONE, is the time at which the gateway will shut itself down. The format is hh:mm using a 24 hour clock. If set to NONE, the gateway will run continuously. The default value is NONE.

example: ShutdownTime=23:30


[Connection]

GatewayHostName
This is the Internet name of the gateway machine, WITHOUT the domain part. The default value is iegate.

example: GatewayHostName=iegate

GatewayDomain
This is the domain component of the Internet name of the gateway machine. Note: Together, GatewayHostName and GatewayDomain make up the gateway's Fully Qualified Domain Name, which is sometimes referred to as the FQDN. The default value is anon.com.

example: GatewayDomain=anon.com

HostTable
This is the location of the TCP HOSTS file. Your specific Winsock TCP/IP stack may dictate the location of this file. The default value is c:\ieccmail\hosts.

example: HostTable=c:\ieccmail\hosts

AlternateNameList
This is a comma separated list of alternate host/domain names (i.e. FQDN's) by which the gateway is known on the Internet. There is no default value.

example: AlternateNameList=victoria.ima.com, cm.ima.com


[Routing]

DNSaddresses
This is a comma-delimited list of Internet addresses of DNS nameservers, to be tried in succession. There should always be at least one DNS nameserver listed if DNS is being used.

example: DNSaddresses=190.9.200.1,190.9.200.5

NameResolution
This is the order of methods used to resolve domain names. Valid options are HostOnly, DNSonly, HostThenDNS, DnsThenHost or MailRelayHostOnly. This can be set via ADMIN's Routing button, aka Configure Routing dialog. Note: this is not a comma separated list. Only a single value is allowed. The default value is DnsThenHost.

example: NameResolution=DnsThenHost

RelayHostname
This is the name of default host to be used if DNS fails to resolve a hostname. The message is forwarded to this host under the assumption that it will know how to deliver the message to its recipients. It is highly recommended that a Mail Relay Host be defined here in the event that mail cannot be delivered by any other method. There is no default for this option.

example: RelayHostname=ima.com


[Options]

DefaultEncoding
If a file with an extension not configured under the [Magic] section, or a file with no extension, is exported, then it will be encoded using this encoding method. Valid values are base64, quoted-printable or x-uuencode. The latter value is for sending files to sites which cannot handle MIME messages. Note: Text items which contain non-ASCII characters will always be encoded using quoted-printable. The default value is base64.

example: DefaultEncoding=base64

IncludeRfc822Header
This option indicates if the gateway should import all RFC 822 headers from incoming messages and attach them as a separate note item. For MIME messages the RFC 822 headers will be the first attachment. For non-MIME messages they will be last in order to maintain compatibility with SMTPLINK. Valid values are YES and NO. The default is YES.

example: IncludeRfc822Header=YES

IncludeccMailName
This option indicates if the gateway should include cc:Mail user names (extracted from the cc:Mail directory) in outgoing Internet addresses. Valid values are YES and NO. The default is YES.

example: IncludeccMailName=YES

UseReplyTo
This option controls setting the cc:Mail sender field to the value of the Internet Reply-to: header instead of the From: header. You need to choose between the two header fields because cc:Mail is unable to differentiate between the two. Valid values are YES and NO. The default is NO.

example: UseReplyTo=NO

RegularScreenUpdates
This option will update the current queue being displayed in the ADMIN screen every minute. Normally this should be set. However, if a large backlog has accumulated in a particular queue, displaying all the messages will drastically slow down the gateway. In this case the option should be turned off until the queue size has gone down. Valid values are YES and NO. The default is YES.

example: RegularScreenUpdates=YES

CloseSMTPD
This option indicates whether SMTPD should shutdown when the Admin interface exits. Valid values are YES and NO. If set to NO, SMTPD will continue to accept messages, even if Admin is not running. The default is YES.

example: CloseSMTPD=YES

AutoRestartSMTPD
This option is used to automatically restart the SMTP daemon if it exits for any reason. This should normally be set to YES. Valid values are YES and NO. The default is YES.

example: AutoRestartSMTPD=YES

IncludeMimeHeader
This variable controls the importation of MIME headers for a given message. If set, an extra text item will be created for each incoming MIME bodypart in each message. This will result in a large number of attachments in the resulting cc:Mail message, which may push it over the cc:Mail limit of 20 attachments. If an incoming message contains so many bodyparts that these bodypart headers would cause it to exceed the VIM limit of 20 attachments, then the bodypart headers will not be imported. It is recommended that this variable be set for debugging purposes only. Valid values are YES and NO. The default value is NO.

example: IncludeMimeHeader=NO

Separator
This variable holds the addressing delimiter used to perform default address mapping. Currently Internet Exchange is limited to use just the dot and underscore characters. Valid values are dot and underscore. The default value is underscore.

example: Separator=underscore

BounceToPostmaster
This is used to send a copy of all bounced messages to the local postmaster as well as the original sender of the message. This can be useful for debugging delivery problems. Valid values are YES and NO. The default value is NO.

example: BounceToPostmaster=NO

BounceSender
This option specifies an Internet ID to be used as the sender of bounced messages. The FQDN of the gateway is appended onto the end of this parmeter, forcing the address of the sender to appear to be local to the gateway. This value can point to a nonexistent ID, such as nobody, so that remote users cannot reply to these error reports! The default is postmaster.

example: BounceSender=postmaster

UseHostname
This indicates whether to include the local Internet hostname in outgoing addresses. Some sites prefer to use just the domain name, with no host component at all. Valid values are YES and NO. If set to NO, the gateway domain must be added to the alternate host name domain list. The default value is YES.

example: UseHostname=YES

DeleteMIMEheaders
This indicates whether to discard outgoing MIME header text items, which are created when importing MIME messages into cc:Mail. It is recommended that this variable be set to YES to discard such headers as these attachments typically cause confusion and do not convey any useful information when re-exported. Valid values are YES and NO. The default value is NO.

example: DeleteMIMEheaders=YES

RrqHeader
This contains the name of the header field used to contain return receipt information. The default value is return-receipt-to.

example: RrqHeader=return-receipt-to

UseRemotePoName
If set to YES, default addresses include the cc:Mail post office name of the sender and are of the form:

Bill_Smith_at_Sales@a.b.c

If set to NO they do not include the cc:Mail post office name and take the form:

Bill_Smith@a.b.c

The later form is usually desirable when the post office Internet Exchange sends messages to knows how to route messages to all possible recipients, i.e. when running ADE. The default is YES.

example: UseRemotePoName=YES

RestrictLocalUsers
When set to YES, users with no SMTP.ADR entry cannot send outbound email. They can still receive inbound mail, but outbound messages will be bounced back to them. The default is NO.

example: RestrictLocalUsers=NO

RejectUnqualifiedAddresses
If this option is set to YES, SMTPD rejects all unqualified addresses. This forces use of fully qualified addresses at all times. The default is NO.

example: RejectUnqualifiedAddresses=NO

RejectRemoteRecipients
If set to YES, SMTPD will reject remote recipients for incoming mail. This is to prevent remote sites spoofing messages which get re-routed through the gateway. The default is YES.

example: RejectRemoteRecipients=YES

SmtpcPort
This specifies the TCP port number to use for SMTP. The default is 25.

example: SmtpcPort=25

SmtpdPort
This specifies the TCP port number to use for SMTPD. The default is 25.

example: SmtpdPort=25

WarnIfEmptyMsgSentOut
This option, when set to YES, causes outbound empty messages to trigger a warning from postmaster. This is designed to alert users who sometimes put their reply text in imported header text items, which gets deleted on the way out (if DeleteMIMEHeaders is set to YES), resulting in an empty message going out. The default is YES.

example: WarnIfEmptyMsgSentOut=YES

TryReverseSeparator
This option, if set to YES causes both address separators to be compared with incoming addresses during default address translation. The default is NO.

example: TryReverseSeparator=NO

KillSMTPDzombie
When this option is set to YES, SMTPD checks for [config] SMTPDmainSocket on startup. If this is not set to NONE, this socket number indicates the main socket used by SMTPD when it shutdown prematurely last time around. An attempt to close this socket is performed, so that SMTPD does not get an "address already in use" error the next time around. The default is YES.

example: KillSMTPDzombie=YES

MimePreambleFile
MIME messages contain an empty or null section, also known as the MIME preamble area, where either no information is stored, or a short message useful to non-MIME gateways and UA's can be stored. This section resides after the RFC 822 headers and the first MIME body part. If this option is set to point to an existing file, the contents of this file is used as the MIME preamble in outgoing messages. If set to a nonexistent file, no preamble is used. If not set, the default preamble, which is built into Internet Exchange is used. The default is internal.

example: MimePreambleFile=c:\ieccmail\pre.txt


[Magic]

Each line in the [magic] section lists a DOS extension, a MIME content-type, a MIME content subtype, a content encoding method and a comment in the following format:

extension=type/subtype,encoding,comment

This allows a mapping between DOS file types and MIME content types.

example: gif=image/gif,base64,GIF image format

It is strongly recommended that this section only be changed via Admin, as an incorrectly formatted line will be ignored.


[Confirm]

The values in the [confirm] section are boolean values that take on the values of either YES or NO. They determine whether to ask the user for confirmation before performing the action desired. They are just a convenience for experienced users and do not yet have an ADMIN interface.

Quit
This value is used to confirm exit of ADMIN. The default is YES.

example: Quit=YES

DeleteMsg
This value is used to confirm deletion of messages. The default is YES.

example: DeleteMsg=YES

MessageDeleted
This value is used to control display of a message deleted confirmation dialog. The default is YES.

example: MessageDeleted=YES

ClearLog
This value is used to confirm clearing of the logfile. The default is YES.

example: ClearLog=YES


[Config]

The [config] section stores configuration information used by the gateway.

Version
The current version of the gateway software. This value should not be changed.

Viewer
The program used to view the logfile. Defaults to write.exe if unspecified.

example: Viewer=c:\windows\write.exe

Addressfile
The name and location of address file. This value should not be changed.

example: Addressfile=c:\ieccmail\smtp.adr

Domainfile
The name and location of domain file. This value should not be changed.

example: Domainfile=c:\ieccmail\smtp.pod

InstallDirectory
This entry is created by the install script and used by other programs. This value should not be changed.

example: InstallDirectory=c:\ieccmail

HelpFile

This is the location of the Internet Exchange help file. This value should not be changed.

example: HelpFile=c:\ieccmail\ieccmail.hlp

SetupHelpFile
This is the location of the Internet Exchange setup help file. This value should not be changed.

example: SetupHelpFile=c:\ieccmail\imasetup.hlp

UpSince
This records the time and date when Internet Exchange was last started. It is useful in tracking how long the gateway has been in continuous operation. There is no default value.


[Tuning]

The options in the [tuning] section contain configurable tuning parameters used in SMTP.

SMTPDtimeout
This variable indicates the timeout value (in minutes) used in SMTPD. It should not need to be changed, but if unusual delays are experienced, this can be adjusted to stop SMTPD from timing out. The default value is 5 minutes.

example: SMTPDtimeout=5

SMTPCInitialTimeout
Defines the period (in minutes) SMTPC is to wait for the initial contact of a remote host to complete. The default value is 5 minutes.

example: SMTPCInitialTimeout=5

SMTPCHeloTimeout
Defines the period (in minutes) SMTPC is to wait for the remote system to respond to HELO. The default is 5 minutes

example: SMTPCHeloTimeout=5

SMTPCQuitTimeout
Defines the period (in minutes) SMTPC is to wait for the remote system to respond to QUIT. The default is 5 minutes.

example: SMTPCQuitTimeout=5

SMTPCMailTimeout
Defines the period (in minutes) SMTPC is to wait for the remote system to respond to MAIL FROM. The default is 5 minutes.

example: SMTPCMailTimeout=5

SMTPCRcptTimeout
Defines the period (in minutes) SMTPC is to wait for the remote system to respond to RCPT TO. The default is 5 minutes.

example: SMTPCRcptTimeout=5

SMTPCDataTimeout
Defines the period (in minutes) SMTPC is to wait for the remote system to respond to DATA. The default is 5 minutes.

example: SMTPCDataTimeout=5

SMTPCDataBlockTimeout
This variable defines the period (in minutes) SMTPC is to wait for the remote system to acknowledge an individual buffer transmission of the message data. Another way of looking at this is the period which SMTPC is willing to wait between writes to the Winsock stack before it considers the remote system "dead". The default is 5 minutes.

example: SMTPCDataBlockTimeout=5

SMTPCDataEndTimeout
Defines the period (in minutes) SMTPC is to wait for the remote system to respond to DATA phase wrap up. The default is 5 minutes.

example: SMTPCDataEndTimeout=5

DataBufferSize
This is a numeric value that sets the file read buffer size (in bytes) used by SMTPC. The maximum value that can be configured is 32K. If you are utilizing disk caching software, set this value to the size of its caching-unit (a.k.a. read-ahead) size. The default value is 8192 (8K).

example: DataBufferSize=8192

DNStimeout
If set, this option specifies the number of seconds before a DNS timeout is registered. The default is 5.

example: DNStimeout=5

DNSretries
If set, this option specifies the number of times a DNS query is retried after a timeout. Note: DNS retries utilize an exponential-backoff timer to vary the period between retries. The default is 4.

example: DNSretries=4


[Debug]

These options in the [debug] section are not normally needed, and are only used for tracking problems.

LogFileIO
This value, if set, will log all file I/O functions. Valid values are TRUE and FALSE. Note: This will produce a huge amount of output.

example: LogFileIO=TRUE

DetailedSMTPlog
If this option is set to YES, and logging is in diagnostic mode, detailed SMTPC and SMTPD Winsock activity will be logged. The default is NO.

example: DetailedSMTPlog=NO


[License Info]

The values in the [License Info] section store Internet Exchange licensing information

IEccMailSerialNumber
This is the numeric value that corresponds to the Internet Exchange serial number. This will be different for each installation and should not be changed.

example: IEccMailSerialNumber=46

LicenseID
This is the numeric value of the IMA license key. This is supplied by IMA when enabling the gateway license. This value, consisting of 16 hexadecimal digits, must be entered exactly as supplied by your licensing agent, except that upper and lower case of the hex digits A-F are not important.

example: LicenseID=38c74bc0f239d5be


[Addressing]

The [Addressing] section effects how default Internet to cc:Mail user address mappings are performed.

PrimaryATWord
When this option is set, this is the value of the main word used by cc:Mail to separate the user name from the post office name. The default is the character string "AT".

example: PrimaryATWord=AT

ATWordList
When this option is set, it corresponds to the list of possible local AT words used by various international versions of cc:mail locally. The default is NONE.

example: ATWordList=NONE


[Apple]

The [Apple] section effects how Apple MacIntosh files are handled. Currently, there is only one value recognized. Note: Apple MacIntosh files are not effected by [Magic] entries.

MacMimeEncoding
This controls how MIME body parts of type/subtype application/applefile are encoded by CCOUT. Possible values are base64 and x-uuencode. The default value is base64.

example: MacMimeEncoding=base64