Set the default SMTP error reply code. Only 4XX and 5XX replies are accepted.
||smfi_setreply may be called from any of the xxfi_ callbacks
other than xxfi_connect.
||Directly set the SMTP error reply code for this connection. This code
will be used on subsequent error replies resulting from actions taken by
||Opaque context structure.
||The three-digit (RFC 821/2821) SMTP reply code, as a
null-terminated string. rcode cannot be NULL, and must be a valid
4XX or 5XX reply code.
||The extended (RFC 1893/2034) reply code. If xcode is NULL, no
extended code is used. Otherwise, xcode must conform to RFC 1893/2034.
||The text part of the SMTP reply. If message is NULL, an empty message is used.
||smfi_setreply will fail and return MI_FAILURE if:
Otherwise, it return MI_SUCCESS.
- The rcode or xcode argument is invalid.
- A memory-allocation failure occurs.
- Values passed to smfi_setreply are not checked for standards compliance.
- The message parameter should contain only printable characters,
other characters may lead to undefined behavior.
For example, CR or LF will cause the call to fail,
single '%' characters will cause the text to be ignored
(if there really should be a '%' in the string,
use '%%' just like for printf(3)).
- For details about reply codes and their meanings, please see RFC's
- If the reply code (rcode) given is a '4XX' code but SMFI_REJECT is used
for the message, the custom reply is not used.
- Similarly, if the reply code (rcode) given is a '5XX' code but
SMFI_TEMPFAIL is used for the message, the custom reply is not used.
Note: in neither of the last two cases an error is returned to the milter,
libmilter silently ignores the reply code.
- If the milter returns SMFI_TEMPFAIL and sets the reply code to '421',
then the SMTP server will terminate the SMTP session with a 421 error code.