Includes build infrastructure & config updates required for changes in 8.16.1 MFC after: 5 days
147 lines
4.5 KiB
HTML
147 lines
4.5 KiB
HTML
<HTML>
|
|
<HEAD><TITLE>smfi_setmlreply</TITLE></HEAD>
|
|
<BODY>
|
|
<!--
|
|
$Id: smfi_setmlreply.html,v 1.5 2013-11-22 20:51:39 ca Exp $
|
|
-->
|
|
<H1>smfi_setmlreply</H1>
|
|
|
|
<TABLE border="0" cellspacing=4 cellpadding=4>
|
|
<!---------- Synopsis ----------->
|
|
<TR><TH valign="top" align=left width=100>SYNOPSIS</TH><TD>
|
|
<PRE>
|
|
#include <libmilter/mfapi.h>
|
|
int smfi_setmlreply(
|
|
SMFICTX *ctx,
|
|
char *rcode,
|
|
char *xcode,
|
|
...
|
|
);
|
|
</PRE>
|
|
Set the default SMTP error reply code to a multi-line response. Only 4XX
|
|
and 5XX replies are accepted.
|
|
</TD></TR>
|
|
|
|
<!----------- Description ---------->
|
|
<TR><TH valign="top" align=left>DESCRIPTION</TH><TD>
|
|
<TABLE border="1" cellspacing=1 cellpadding=4>
|
|
<TR align="left" valign=top>
|
|
<TH width="80">Called When</TH>
|
|
<TD>smfi_setmlreply may be called from any of the xxfi_ callbacks
|
|
other than xxfi_connect.</TD>
|
|
</TR>
|
|
<TR align="left" valign=top>
|
|
<TH width="80">Effects</TH>
|
|
<TD>Directly set the SMTP error reply code for this connection to the given
|
|
lines after the xcode. The list of arguments must be NULL terminated.
|
|
This code will be used on subsequent error replies resulting from actions
|
|
taken by this filter.</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</TD></TR>
|
|
|
|
<!----------- Arguments ---------->
|
|
<TR><TH valign="top" align=left>ARGUMENTS</TH><TD>
|
|
<TABLE border="1" cellspacing=0>
|
|
<TR bgcolor="#dddddd"><TH>Argument</TH><TH>Description</TH></TR>
|
|
<TR valign="top"><TD>ctx</TD>
|
|
<TD>Opaque context structure.
|
|
</TD></TR>
|
|
<TR valign="top"><TD>rcode</TD>
|
|
<TD>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.
|
|
</TD></TR>
|
|
<TR valign="top"><TD>xcode</TD>
|
|
<TD>The extended (RFC 1893/2034) reply code. If xcode is NULL, no
|
|
extended code is used. Otherwise, xcode must conform to RFC 1893/2034.
|
|
</TD></TR>
|
|
<TR valign="top"><TD>...</TD>
|
|
<TD>The remainder of the arguments are single lines of text, up to
|
|
32 arguments, which will be used as the text part of the SMTP
|
|
reply. The list must be NULL terminated.
|
|
</TD></TR>
|
|
</TABLE>
|
|
</TD></TR>
|
|
|
|
<!----------- Example ---------->
|
|
<TR>
|
|
<TH valign="top" align=left>RETURN VALUES</TH>
|
|
<TD>
|
|
For example, the code:<BR>
|
|
<PRE>
|
|
ret = smfi_setmlreply(ctx, "550", "5.7.0",
|
|
"Spammer access rejected",
|
|
"Please see our policy at:",
|
|
"http://www.example.com/spampolicy.html",
|
|
NULL);
|
|
</PRE>
|
|
<BR>would give the SMTP response:<BR>
|
|
<PRE>
|
|
550-5.7.0 Spammer access rejected
|
|
550-5.7.0 Please see our policy at:
|
|
550 5.7.0 http://www.example.com/spampolicy.html
|
|
</PRE>
|
|
</TD>
|
|
</TR>
|
|
|
|
<!----------- Return values ---------->
|
|
<TR>
|
|
<TH valign="top" align=left>RETURN VALUES</TH>
|
|
|
|
<TD>smfi_setmlreply will fail and return MI_FAILURE if:
|
|
<UL>
|
|
<LI>The rcode or xcode argument is invalid.
|
|
<LI>A memory-allocation failure occurs.
|
|
<LI>If any text line contains a carriage return or line feed.
|
|
<LI>The length of any text line is more than MAXREPLYLEN (980).
|
|
<LI>More than 32 lines of text replies are given.
|
|
</UL>
|
|
Otherwise, it return MI_SUCCESS.
|
|
</TD>
|
|
</TR>
|
|
|
|
<!----------- Notes ---------->
|
|
<TR align="left" valign=top>
|
|
<TH>NOTES</TH>
|
|
<TD>
|
|
<UL>
|
|
<LI>Values passed to smfi_setmlreply are not checked for standards compliance.
|
|
<LI>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 <TT>printf(3)</TT>).
|
|
<LI>For details about reply codes and their meanings, please see RFC's
|
|
<A href="http://www.rfc-editor.org/rfc/rfc821.txt">821</A>/
|
|
<A href="http://www.rfc-editor.org/rfc/rfc2821.txt">2821</A>
|
|
and
|
|
<A href="http://www.rfc-editor.org/rfc/rfc1893.txt">1893</A>/
|
|
<A href="http://www.rfc-editor.org/rfc/rfc2034.txt">2034</A>.
|
|
<LI>If the reply code (rcode) given is a '4XX' code but SMFI_REJECT is used
|
|
for the message, the custom reply is not used.
|
|
<LI>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.
|
|
<BR>
|
|
Note: in neither of the last two cases an error is returned to the milter,
|
|
libmilter silently ignores the reply code.
|
|
<LI>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.
|
|
</UL>
|
|
</TD>
|
|
</TR>
|
|
|
|
</TABLE>
|
|
|
|
<HR size="1">
|
|
<FONT size="-1">
|
|
Copyright (c) 2000, 2002-2003 Proofpoint, Inc. and its suppliers.
|
|
All rights reserved.
|
|
<BR>
|
|
By using this file, you agree to the terms and conditions set
|
|
forth in the LICENSE.
|
|
</FONT>
|
|
</BODY>
|
|
</HTML>
|