summaryrefslogtreecommitdiff
path: root/gnu/usr.sbin/sendmail/libmilter/docs/smfi_setreply.html
blob: d5b0e2453306a29941c278beda0af3fb31c1e1f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<html>
<head><title>smfi_setreply</title></head>
<body>
<h1>smfi_setreply</h1>

<table border="0" cellspacing=4 cellpadding=4>
<!---------- Synopsis ----------->
<tr><th valign="top" align=left width=150>SYNOPSIS</th><td>
<pre>
#include &lt;libmilter/mfapi.h&gt;
int smfi_setreply(
	SMFICTX *ctx,
	char *rcode,
	char *xcode,
	char *message
);
</pre>
Set the default SMTP error reply code.  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_setreply 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.  This code 
will be used on subsequent error replies resulting from actions taken by 
this filter.</td>
</tr>
</table>

<!----------- 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>message</td>
	<td>The text part of the SMTP reply.  If message is NULL, an empty message is used.
	</td></tr>
    </table>
</td></tr>

<!----------- Return values ---------->
<tr>
<th valign="top" align=left>RETURN VALUES</th> 

<td>smfi_setreply will fail and return MI_FAILURE if:
<ul>
    <li>The rcode or xcode argument is invalid.
    <li>A memory-allocation failure occurs.
</ul>
Otherwise, it return MI_SUCCESS.
</td>
</tr>

<!----------- Notes ---------->
<tr align="left" valign=top>
<th>NOTES</th> 
<td>
<ul>
<li>Values passed to smfi_setreply 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.
</ul>
</td>
</tr>

</table>

<hr size="1">
<font size="-1">
Copyright (c) 2000, 2002-2003 Sendmail, 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>