aboutsummaryrefslogtreecommitdiffstats
path: root/doc/mailman-install/node26.html
blob: 74a675567445ecab36b2214397f06fbaf4d21b36 (plain) (blame)
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="mailman-install.css" type='text/css' />
<link rel="first" href="mailman-install.html" title='GNU mailman - installation Manual' />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="node27.html" />
<link rel="prev" href="node25.html" />
<link rel="parent" href="node16.html" />
<link rel="next" href="node27.html" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name='aesop' content='information' />
<title>6.2.10 SMTP Callback</title>
</head>
<body>
<div class="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="6.2.9 receiver Verification"
  href="node25.html"><img src='previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="6.2 using the Exim"
  href="node16.html"><img src='up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="6.2.11 doing VERP with"
  href="node27.html"><img src='next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">GNU Mailman - Installation Manual</td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="node25.html">6.2.9 Receiver Verification</a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="node27.html">6.2.11 Doing VERP with</a>
</div>
<hr /></div>
</div>
<!--End of Navigation Panel-->

<h3><a name="SECTION0016210000000000000000">
6.2.10 SMTP Callback</a>
</h3>

<p>
Exim's SMTP callback feature is an even more powerful way to detect bogus
sender addresses than normal sender verification.  Unfortunately, lots of
servers send bounce messages with a bogus address in the header, and there are
plenty that send bounces with bogus envelope senders (even though they're
supposed to just use an empty envelope sender for bounces).

<p>
In order to ensure that Mailman can disable/remove bouncing addresses, you
generally want to receive bounces for Mailman lists, even if those bounces are
themselves not bounceable.  Thus, you might want to disable SMTP callback on
bounce messages.

<p>
With Exim 4, you can accomplish this using something like the following in
your <code>RCPT TO</code> ACL:

<p>
<div class="verbatim"><pre>
  # Accept bounces to lists even if callbacks or other checks would fail
  warn     message      = X-WhitelistedRCPT-nohdrfromcallback: Yes
           condition    = \
           ${if and {{match{$local_part}{(.*)-bounces\+.*}} \
                     {exists {MAILMAN_HOME/lists/$1/config.pck}}} \
                {yes}{no}}

  accept   condition    = \
           ${if and {{match{$local_part}{(.*)-bounces\+.*}} \
                     {exists {MAILMAN_HOME/lists/$1/config.pck}}} \
                {yes}{no}}

  # Now, check sender address with SMTP callback.
  deny   !verify = sender/callout=90s
</pre></div>

<p>
If you also do SMTP callbacks on header addresses, you'll want something like
this in your <code>DATA</code> ACL:

<p>
<div class="verbatim"><pre>
  deny   !condition = $header_X-WhitelistedRCPT-nohdrfromcallback:
         !verify = header_sender/callout=90s
</pre></div>
<p>

<div class="navigation">
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="6.2.9 receiver Verification"
  href="node25.html"><img src='previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="6.2 using the Exim"
  href="node16.html"><img src='up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="6.2.11 doing VERP with"
  href="node27.html"><img src='next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">GNU Mailman - Installation Manual</td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
<td class='online-navigation'><img src='blank.png'
  border='0' height='32'  alt='' width='32' /></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="node25.html">6.2.9 Receiver Verification</a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="node16.html">6.2 Using the Exim</a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="node27.html">6.2.11 Doing VERP with</a>
</div>
</div>
<hr />
<span class="release-info">Release 2.1, documentation updated on April 14, 2016.</span>
</div>
<!--End of Navigation Panel-->

</body>
</html>