aboutsummaryrefslogtreecommitdiff
path: root/contrib/sendmail/libmilter/docs/smfi_setmlreply.html
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/sendmail/libmilter/docs/smfi_setmlreply.html')
-rw-r--r--contrib/sendmail/libmilter/docs/smfi_setmlreply.html150
1 files changed, 150 insertions, 0 deletions
diff --git a/contrib/sendmail/libmilter/docs/smfi_setmlreply.html b/contrib/sendmail/libmilter/docs/smfi_setmlreply.html
new file mode 100644
index 000000000000..35ed16b4b891
--- /dev/null
+++ b/contrib/sendmail/libmilter/docs/smfi_setmlreply.html
@@ -0,0 +1,150 @@
+<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 &lt;libmilter/mfapi.h&gt;
+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, a generic X.0.0 code is used,
+ where X is the first digit of rcode.
+ 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>EXAMPLE</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>