ERR #100 pattern delimiter error: "%.50s..."
Failed to find the end bang (!) delimiter of a !simple! pattern. See access-map about right-hand-side pattern lists.
ERR #103 network delimiter error: "%.50s..."
Failed to find the end square-bracket (]) delimiter of a [network/cidr] pattern. See access-map about right-hand-side pattern lists.
ERR #105 network specifier error: "%.50s..."
ERR #106 network specifier error, "%.50s..."
The network portion of a [network/cidr] pattern does not parse to a valid IPv4 or IPv6 address. See access-map about right-hand-side pattern lists.
ERR #108 regular expression delimiter error: "%.50s..."
Failed to find the end slash (/) delimiter of a /regex/ pattern. See access-map about right-hand-side pattern lists.
ERR #110 regular expression error: %s "%.50s..."
ERR #112 regular expression error: %s "%.50s..."
There is an error in a /regex/ pattern that prevents it from being compiled.
WARN #115 access-map option disabled
The access-map option has been set to an empty string.
ERR #116 access-map=%s text method no longer supported
ERR #117 access-map=%s open error
The key-value-map specified by the access-map option could not be opened. Check the map type, file path, and file permissions & ownership.
INFO #119 host %s [%s] %s (%s)
There is a Connect: tag entry for either the client name or IP address with a right-hand-side value of OK. See access-map.
INFO #974 host %s [%s] %s
There is a Connect: tag entry for either the client name or IP address with a right-hand-side value of DISCARD. See access-map.
INFO #975 message %s
There is a tag entry with a right-hand-side value of DISCARD. See access-map.
INFO #124 host %s [%s] sender <%s> %s (%s)
There is a Connect:From: combo tag entry for either the client name and sender pair or client IP address and sender pair with a right-hand-side value of OK. See access-map.
INFO #126 sender <%s> %s (%s)
There is a From: tag entry for the sender address or their domain with a right-hand-side value of OK. See access-map.
INFO #134 host %s [%s] recipient <%s> %s (%s)
There is a Connect:To: combo tag entry for either the client name and recipient pair or client IP address and recipient pair with a right-hand-side value of OK. See access-map.
INFO #136 sender <%s> recipient <%s> %s (%s)
There is a From:To: combo tag entry for a sender and recipient pair with a right-hand-side value of OK. See access-map.
INFO #138 recipient <%s> %s (%s)
There is a To: tag entry for sender's address with a right-hand-side value of OK. See access-map.
INFO #923 helo %s %s (%s)
There is a Helo: tag entry for HELO/EHLO argument with a right-hand-side value of OK. See access-map.
INFO #976 helo %s %s
There is a Helo: tag entry for HELO/EHLO argument a right-hand-side value of DISCARD. See access-map.
INFO #821 %s found content=%s pattern=%s
Reported by the deny-content family of options. See deny-content.
ERR #161 %s
The avastd daemon found a virus or suspicious content in the message. See avastd-policy.
ERR #163 avastd error: %s
ERR #172 cache-path=%s open error: %s (%d)
The cache database could not be opened. Check the cache.sq3 file permissions & ownership
ERR #173 cache-sync-mode=%s error
An invalid value was specified for this option.
ERR #176 cache-unicast-hosts error: %s (%d)
ERR #177 cache-unicast-hosts error: %s (%d)
An error in parsing the option or starting the unicast cache listener thread. See cache-unicast-domain or cache-unicast-hosts.
WARN #202 clamd-max-size=%ld reached
The size of the message passed to clamd has been reached. No additional data will be passed to clamd. See clamd-max-size.
ERR #207 %s
The clamd daemon found a virus or suspicious content in the message. See clamd-policy.
ERR #210 error parsing %s='%s': %s (%d)
See cli-content and cli-envelope.
INFO #212 started %s[%d] %s
See CLI section, and the options cli-content and cli-envelope.
ERR #213 cmdStart(%s) failed: %s (%d)
There was a problem invoking the specified command-line. Things to check are if the command is on default PATH or specify an absolute path and/or check that options are correct. See cli-content and cli-envelope.
ERR #215 write error to child=%d: %s (%d)
There was a problem closing the input stream to the CLI child process. See cli-content and cli-envelope.
ERR #220 %s[%d] terminated on signal=%d%s",
The CLI child process terminated on signal, possibly due to a program fault. See cli-content and cli-envelope.
ERR #221 exit status=%d out of range
The CLI child process returned an unsupported exit code. See cli-content and cli-envelope.
INFO #222 %s[%d] exit status=%d
The CLI child process returned a supported exit code. See cli-content and cli-envelope.
INFO #225 %s
The CLI child process standard output and standard error are logged. See cli-content and cli-envelope.
INFO #242 host %s [%s] sender <%s> white listed
A cached click white-list entry was found. See the Click family of options.
ERR #257 client %s [%s] I/O error: %s (%d)
During AUTH LOGIN, there was a client read error while waiting for login name.
ERR #260 AUTH LOGIN buffer overflow caught
During AUTH LOGIN, the login user name given exceeds the size of the decoding buffer.
ERR #261 login base64 decode error
During AUTH LOGIN, the login user name could not be decoded according to Base64 rules.
ERR #262 client %s [%s] I/O error: %s (%d)
During AUTH LOGIN, there was a client read error while waiting for password.
ERR #265 password base64 decode error
During AUTH LOGIN, the password could not be decoded according to Base64 rules.
ERR #268 AUTH PLAIN buffer overflow caught
During AUTH PLAIN, the Base64 argument given exceeds the size of the decoding buffer.
ERR #270 AUTH base64 decode error
The AUTH PLAIN argument could not be decoded according to Base64 rules.
INFO #272 queuing all messages on %s [%s]
All messages from successfully authenticated clients are queued on the local route. See route-map documentation.
INFO #273 auth-id=<%s> relay=%d
WARN #281 filter_mail_table unexpected rc=%d
This is an internal error.
WARN #291 filter_rcpt_table unexpected rc=%d
This is an internal error.
INFO #294 queuing message on %s [%s] for <%s>
The message is being sent to the local route. See route-map about the local route and AUTH support.
ERR #301 chunk write error size=%ld written=%lu: %s (%d)
There was an I/O write error while trying to relay a DATA chunk to a forward host.
ERR #309 missing temp. file name
ERR #310 open error "%s": %s (%d)
ERR #311 seek error "%s": %s (%d)
An error trying to find and open a temporary message file which is to be relayed onto the forward hosts. See save-dir option.
ERR #312 DATA rejected by all forward hosts
All of the forward hosts for this message rejected the DATA command. This message almost never appears. If it does, check if the forward hosts have implemented any filtering that rejects at DATA, like smtpf does for grey-listing and call-back failures.
ERR #313 read error "%s": %s (%d)
An error while reading from a temporary message file, which is to be relayed onto the forward hosts. See save-dir option.
ERR #977 %s(%lu)
Read error for verb +data. See the section Runtime Configuration and verbose option.
ERR #978 %s(%lu)
ERR #980 %s(%lu)
Read error and debug output for verb +data during the stripping of SMTP dot transparency; RFC 5321 section 4.5.2. See the section Runtime Configuration and verbose option.
ERR #319 client %s [%s] timeout after DOT-LF; message must end with CRLF-DOT-CRLF
See rfc2821-strict-dot.
ERR #320 client %s [%s] I/O error: %s (%d)
The client appears to have disconnected. A read error occured in the DATA collection loop.
Debug output for verb +smtp-data. Note that the logged data lines are truncated at 75 characters. See the section Runtime Configuration and verbose option.
INFO #929 xclient %s [%s] f="%s" h="%s"
STMP XCLIENT command summary.
INFO #958 ctasd vod=%s spam=%s refid=%s
ERR #959 %s
The ctasd daemon found a virus or suspicious content in the message. See ctasd-policy.
ERR #331 %s rejected message: %s
A forward host has rejected a message and a DSN has been sent,
INFO #337 %s duplicate key=%s previous session=%s
smtpf tracks what messages have already been seen and discards any message that have prevously been processed. This can occur when the client connection disappears between the time we relay the end-of-message to the forward host(s) and the client receiving an SMTP reply. When the client disconnects, it will assume a 421 response and rety sending the message later. Mean while if the forward hosts accepted the message the first time, then these retries can result in duplicate messages being received. See the dupmsg-ttl option.
WARN #346 EMEW Message-ID buffer error or no secret set
The buffer used to generate the EMEW Message-ID is too small.
ERR #375 %s
The fpscand daemon found a virus or suspicious content in the message. See fpscand-policy.
ERR #908 mcc statement error: %s %s
INFO #910 greyGcExpire count=%d
INFO #964 grey content hash replaced msg-id=%s key={%s} value={%s} hash=%s
ERR #383 greyMakeKey() overflow caught, key={%s} truncated
INFO #387 grey listed {%s} for %ld seconds
See grey-key, grey-content, and grey-temp-fail-period options.
WARN #937 WARNING grey list {%s} rc=%d unexpected, check cache
The grey: cache entry has an unexpected value. See the section Cache Structure.
INFO #393 grey-content message mismatch
See grey-content option.
INFO #394 grey-content listed {%s} for %ld seconds
See grey-content and grey-temp-fail-period options.
Debug output for verb +ixhash. See the section Runtime Configuration and verbose option.
WARN #395 %s-%s license key expires in less than %d day%s
ERR #396 license key %s must be set
ERR #397 license key date-issued is in the future, please check your system clock
ERR #398 license key has expired
ERR #399 license key %s error: %s (%d)
ERR #400 license key %s mismatch
ERR #401 license key invalid
ERR #402 license key not for %s/%s
ERR #403 license key not for %s
ERR #404 invalid license key IP address [%s]
ERR #405 lickey syntax error: %s
ERR #406 not licensed for IP [%s]
ERR #407 IP [%s] not licensed for %ld cores (max. %ld)
INFO #408 found valid licensed IP [%s]
ERR #409 license key "%s" load error: %s (%d)
ERR #410 route count error
ERR #411 route-map entries=%lu exceeds license key max-domains=%ld
ERR #411 route-map unique-domains=%lu exceeds license key max-domains=%ld
ERR #412 %s load error: %s (%d)
The lickey-file option is a required option and must be the absolute path of the license key file.
ERR #993 lua load: %s
ERR #998 smtp.connect: %s
ERR #1001 smtp.helo: %s
ERR #1003 smtp.mail: %s
ERR #1005 smtp.rcpt: %s
ERR #1007 smtp.data: %s
ERR #1011 smtp.dot: %s
ERR #1013 smtp.rset: %s
ERR #1015 smtp.close: %s
Experimental module using Lua to script additional tests by creating a smtpf.lua script. This module is undocumented and currently not provided in production code.
WARN #429 %s [%s] HELO %s is not FQDN
See rfc2821-strict-helo option.
ERR #435 MX %s error %s
The MX record is always fetched and verified regardless of the setting of client-is-mx and mail-require-mx options.
INFO #437) CLIENT_FORMAT " is MX for %s
See client-is-mx option.
WARN #438 empty MX list after pruning
The MX list gathered from DNS is pruned to remove hosts that resolve to localhost, RFC 3330 reserved IP addresses that cannot be reached from the Internet, or have no A/AAAA record. This message is reported if the MX list is empty after pruning.
WARN #906 MX list incomplete...
The MX / A / AAAA records gather from DNS failed one or more queries. See mail-require-mx option.
ERR #465 domain %s does not exist
The top level domain is unknown.
ERR #467 domain %s does not exist
ERR #468 SOA for %s lookup error: %s
ERR #469 SOA for %s does not exist
Part of the experimental is-nxdomain family of tests. Reject a domain if the host and none of its parent domains upto, but not including, the TLD have an SOA. Temp. fail if there was a DNS lookup error. Otherwise continue if the host name or any of its parent domains have an SOA before the TLD is reached.
ERR #480 %s write error: %s (%d)
ERR #482 %s write error: %s (%d)
An error occurred while sending an SMTP command to a forward host.
ERR #484 %s read error: %s (%d)
ERR #486 %s read error: %s (%d)
An error occurred while reading an SMTP reply from a forward host.
ERR #490 MX %s error %s
While attempting to perfom a call-back, there was an error looking up the MX records of the sender's domain. See call-back option.
ERR #506 p0f address error: %s (%d)
ERR #507 p0f open error: %s (%d)
ERR #508 p0f connection error: %s (%d)
ERR #510 p0f write error: %s (%d)
ERR #511 p0f timeout error: %s (%d)
ERR #512 p0f read error: %s (%d)
ERR #515 p0f magic number error
ERR #516 p0f query error (%d)
INFO #517 p0f %s
See p0f-socket and p0f-timeoutoptions.
ERR #519 %lu connections exceeds %ld per second
See the rate-throttle option.
INFO #523 %s found %s %s
See dns-bl, dns-gl, dns-wl, ns-bl, uri-bl, and uri-dns-bl options.
ERR #537 init error %s(%lu) %s: %s (%d)
A generic initialisation error reporting file and line number where it occured.
ERR #538 out of memory %s(%lu)
A generic out of memory error reporting file and line number where it occured.
ERR #539 internal error %s(%lu) %s: %s (%d)
A generic internal error reporting file and line number where it occured and some extra context. Not expected to occur outside of code development.
INFO #540 pipeline input=%ld:%s
Log any premature input from the connected client.
ERR #965 buffer overflow %s(%lu) size=%lu length=%lu
A buffer overflow check failed reporting file and line number where it occured. Not expected to occur outside of code development.
ERR #542 cache get error key={%s} %s(%lu)
A generic error where a module could not get a cache record for unspecified reasons. This is not the same as record not found.
ERR #544 cache put error key={%s} value={%s} %s(%lu)
A generic error where a module failed to update a cache record for unspecified reasons.
ERR #546 cache delete error key={%s} %s(%lu)
A generic error where a module failed to delete a cache record for unspecified reasons.
ERR #556 resources error %s(%lu): %s (%d)
A runtime error reporting file and line number. Check the process status and ulimit settings. Typically the only solution is to restart the process.
INFO #1034 delayed: %s
ERR #1018 route-map=%s open error: %s (%d)
See the section Route-Map and route-map option.
INFO #557 route domains=%lu addresses=%lu accounts=%lu unique-domains=%lu
A summary of route types found in the route-map, used for max-domains license control. The domain, addresses, and accounts refer to records in the route-map of the form route:some.domain, route:user@some.domain, and route:user@ respectively.

The license key field max-domains is a bit of a misnomer. It should have been called max-routes, but it is easier for people to think in terms of domains and in the majority of cases routing is by-domain only.

However, our logic counts all route: records, regardless of type, towards the license's max-domains, since the same amount of work is necessary to route by-domain as by-address or by-account.

INFO #558 call-ahead host=%s rcpt=<%s> rc=%d reply="%s"
A summary of call-ahead results.
ERR #566 localhost route required
ERR #567 localhost route requires FORWARD definition
The local route is not defined and is required for correct operation. See route-map documentation.
ERR #568 mail loop from %s [%s] in localhost route
When the mail is coming from one of our smart hosts then we would like to relay outbound, not forward inbound, otherwise we end up in a loop.
INFO #570 smtp-strict-relay client %s [%s] sender <%s> denied",
See smtp-strict-relay options.
See rfc2821-strict-greeting option.
ERR #830 %s
See uri-call-back-greeting option.
INFO #573 call-back mail=<%s> rc=%d reply="%s"
A summary of call-back results.
ERR #846 %s
The savdid daemon found a virus or suspicious content in the message. See savdid-policy.
ERR #574 save-dir must be defined
ERR #577 delete error "%s": %s (%d)
ERR #579 temp. file name "%s": %s (%d)
ERR #580 create error "%s": %s (%d)
See save-data, save-dir option. In addition, the avastd-socket, fpscand-socket, and spamd-socket options also rely on the save-dir option being defined in order to function.
ERR #876 hard link(%s, %s) failed: %s (%d)
ERR #877 hard link(%s, %s) failed: %s (%d)
ERR #813 lint option requires special license key
The lint option requires a special license key offered only for special partnership deals and is not generally available to customers.
INFO #732 terminated
ERR #598 create "%s" failed: %s (%d)
ERR #905 lock "%s" failed: %s (%d)
See run-pid-file option.
The SMTP service is ready to accept connections.
INFO #604 smtpf 2.6 Copyright 2006, 2016 by SnertSoft. All rights reserved.
INFO #605 LibSnert %s %s
INFO #606 SQLite %s Public Domain by D. Richard Hipp
INFO #1019 %s %s
INFO #904 Built on %s
Version and copyright notices.
INFO #599 ready
The server has completed initialisation and is ready to accept connections.
ERR #608 siq-score-discard number must -1 to disable, or 0..99
ERR #609 siq-score-reject number must -1 to disable, or 0..99
ERR #610 siq-score-tag number must -1 to disable, or 0..99
INFO #615 siq score=%d confidence=%d ttl=%u text='%.83s'
ERR #616 %s
INFO #618 siq-score=%d less than %ld, discarding message
See siq-score-reject, siq-score-tag, and siq-servers options.
ERR #628 server I/O error: %s (%d)
While trying to send a reply back to the client, the server had an I/O error. Typical cause is "broken pipe", ie. the connection with the client was lost, most likely due to the client voluntarily dropping the connection. A lot of spamware reacts on the first digit of the response, dropping the connection as soon as it gets a 4xy or 5xy indication and ignoring the rest.

Sometimes the client might disconnect during the welcome banner, because of an option like smtp-slow-reply which impose delays. A lot of spamware is impatient and will drop the connection as a result.

INFO #635 client [%s] has CNAME/PTR delegation %s",
INFO #637 start %s [%s] f="%s" th=%u cn=%u cs=%lu",
The start of the session after the client IP checks, but before the welcome banner. When the verbose option is set to an empty string (terse mode), then the information found here is available in the session "end" log line only.
ERR #1031 banner error code=%d %s [%s]: %s (%d)
ERR #639 client %s [%s] I/O error: %s (%d)
The client appears to have disconnected. A read error occured in the SMTP command loop. Similar to "server I/O error" in nature.

Typical cause is "broken pipe", ie. the connection with the client was lost, most likely due to the client voluntarily dropping the connection. A lot of spamware reacts to the last response they receive, dropping the connection if they get a 4xy or 5xy reply.

Sometimes the client disconnects during the welcome banner, because of an option like smtp-slow-reply which imposes delays. A lot of spamware is impatient and will drop the connection as a result.

INFO #644 dropping %s [%s] after %d errors
See smtp-drop-after option.
ERR #646 spamd connect error "%s": %s (%d)
ERR #649 spamd write error: %s (%d)
WARN #656 spamd-max-size=%ld reached
ERR #657 spamd write error after %lu bytes
ERR #659 spamd read error: %s (%d)
ERR #661 spamd error: %s
ERR #663 spamd parse error: %s
ERR #664 spamd read error: %s (%d)
ERR #667 %s
INFO #668 %s
Assorted spamd errors from the 1.0 version of the spamd module.
INFO #670 spamd disabled this message
ERR #671 spamd connect error "%s": %s (%d)
ERR #675 spamd write error: %s (%d)
An I/O error trying to connect or send to spamd. See spamd-socket option.
ERR #682 spamd open error "%s": %s (%d)
An error trying to open a temporary message file to forward to spamd. See save-dir option.
WARN #684 spamd-max-size=%ld reached
The size of the message passed to spamd have been reached. No additional data will be passed to spamd. See spamd-max-size.
ERR #685 spamd read error: %s (%d)
An I/O error while reading from spamd. See spamd-socket option.
ERR #687 spamd parse error: %s
ERR #689 spamd parse error: %s
The response from spamd does not match the current supported protocol.
ERR #690 spamd read error: %s (%d)
An I/O error while reading from spamd. See spamd-socket option.
INFO #692 spamd %s [%s] %s
A summary of the spamd score for a message.
ERR #706 stats-map get key={%s} failed
ERR #708 stats-map key={%s} value={%s} truncated
ERR #710 statsSave() field name buffer overflow caught
ERR #711 statsSave() buffer overflow caught
ERR #878 stats-http-post request buffer overflow
ERR #879 stats-http-post error: %s
ERR #714 stats-map=%s open error: %s (%d)
See stats-map option.
INFO #715 hourly %s was=%lu now=%lu
INFO #716 runtime %s was=%lu now=%lu
Logging of change in high water marks. See STAT command.
INFO #880 hourly %s was=%lu now=%lu
INFO #881 runtime %s was=%lu now=%lu
Not used at this time.
INFO #717 sender %s tid=%s f="%s" spf-mail=%s spf-helo=%s x="%s"
The start of a message transaction. This line gives a summary of sender highlights. It cannot be suppressed. The fields are: f= flags, spf-mail= SPF result for the MAIL FROM: argument, spf-helo= SPF result for the HELO argument, and x= SMTP response.
INFO #718 recipient %s tid=%s f="%s" x="%s"
This line gives a summary of recipient highlights. It cannot be suppressed. The fields are: f= flags and x= SMTP response.
INFO #719 data tid=%s f="%s" x="%s"
The start of message content. It cannot be suppressed. The fields are: x= SMTP response.
WARN #851 removed previous instance of header "%s"
INFO #720 message tid=%s f="%s" b=%lu r=%u/%u m=%s R=%d %sx="%s"",
The end of a message transaction. This line gives a summary of message highlights. It cannot be suppressed. The fields are: f= flags, b= bytes sent for the message, r= RCPT TO: count, m= smtpf message-id, s= the subject header, and x= SMTP response.
INFO #721 end i=%s p="%s" f="%s" h="%s" m=%u/%u b=%lu R=%d t=%lu l="%s"%s
The end of a connected client's session. This line gives a summary of client information. It cannot be suppressed. The fields are: i= connected client IP, p= client PTR name, f= session flags, h= HELO argument, m= total foward / message count, b= total bytes sent, R= total reject count, t= session time in seconds, l= last reject or temp. fail reply sent to client, and p0f= p0f information if available.
ERR #1028 no CN match: %s
ERR #1021 TLS negotiation %s
INFO #1023 started %s
INFO #1024 issuer=%s
INFO #1025 subject=%s
ERR #726 sigaltstack() failed, size=%lu: %s (%d)
A fatal initialisation error occured while setting up signal handlers.
ERR #731 unlink("%s"): %s (%d)
During process termination, the process pid file could not be removed. See run-pid-file option.
ERR #733 no previous instance running: %s (%d)
Generated when restart-if action was issued and no previous instance could be found to restart, in which case the process will not start.
ERR #968 waiting for pid=%d
ERR #969 force kill of pid=%d
ERR #970 previous instance pid=%d
ERR #735 fork failed: %s (%d)
ERR #736 set process group ID failed: %s (%d)
A fatal initialisation error while trying to become a daemon (background) process by detatching from the controlling terminal. The -daemon option can be used to run smtpf as a foreground application.
WARN #738 %s increased to %ld
See run-open-file-limit option.
INFO #764 URI %s %s
See the access-map concerning the Body: tag.
ERR #785 discarded: %s
See uri-bl-policy option.
ERR #795 verbose word list too long
INFO #802 terminated
Windows binary termination.
ERR #807 %s quit error %d
Windows binary had a problem with ±quit command.