| SYNOPSIS | 
#include <libmilter/mfapi.h>
int smfi_setreply(
	SMFICTX *ctx,
	char *rcode,
	char *xcode,
	char *message
);
Set the default SMTP error reply code.  Only 4XX and 5XX replies are accepted. | 
|---|
| DESCRIPTION | 
| Called When | smfi_setreply may be called from any of the xxfi_ callbacks
other than xxfi_connect. |  
| Effects | Directly set the SMTP error reply code for this connection.  This code 
will be used on subsequent error replies resulting from actions taken by 
this filter. |  | 
|---|
| ARGUMENTS | 
    | Argument | Description | 
|---|
 | ctx | Opaque context structure. |  | rcode | 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. |  | xcode | The extended (RFC 1893/2034) reply code.  If xcode is NULL, no
	extended code is used.  Otherwise, xcode must conform to RFC 1893/2034. |  | message | The text part of the SMTP reply.  If message is NULL, an empty message is used. |  | 
|---|
| RETURN VALUES | 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.
 | 
| NOTES | 
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 
821/
2821
and
1893/
2034.
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.
 |