callout added clt2015
authorHeiko Schlittermann (JUMPER) <hs@schlittermann.de>
Fri, 20 Mar 2015 13:01:27 +0100
branchclt2015
changeset 31 855b60db0129
parent 30 ac1700753eea
child 32 9665201a64b5
callout added
.hgignore
Makefile
clt2015.tex
dia/callout.dia
frames/callforward.tex
out/callout-not-ok.tt
out/callout-ok.tt
--- a/.hgignore	Wed Mar 18 23:23:21 2015 +0100
+++ b/.hgignore	Fri Mar 20 13:01:27 2015 +0100
@@ -1,4 +1,5 @@
 syntax:glob
+*.eps
 *.aux
 *.log
 *.nav
--- a/Makefile	Wed Mar 18 23:23:21 2015 +0100
+++ b/Makefile	Fri Mar 20 13:01:27 2015 +0100
@@ -6,7 +6,7 @@
 FRAMES = $(wildcard frames/*tex)
 OUT    = $(wildcard out/*)
 DIA    = $(wildcard dia/*.dia)
-IMAGES = $(notdir $(DIA:.dia=.pdf))
+IMAGES = $(notdir $(DIA:.dia=.pdf)) $(notdir $(DIA:.dia=.eps))
 
 .PHONY: clean
 
@@ -25,3 +25,6 @@
 
 %.pdf:	dia/%.dia
 	dia --export $@ $<
+
+%.eps:	dia/%.dia
+	dia --export $@ $<
--- a/clt2015.tex	Wed Mar 18 23:23:21 2015 +0100
+++ b/clt2015.tex	Fri Mar 20 13:01:27 2015 +0100
@@ -44,8 +44,13 @@
 % -- Transport
 \input{frames/transport.tex}
 
+\section{Beispiele}
+
+% -- Example CallForward/CutThrough
+% vielleicht gehört das nach die ACL geschoben, denn die braucht man, 
+% um das hier zu verstehen.
+\input{frames/callforward.tex}
 % -- Example Emig
-\section{Beispiele}
 \input{frames/emig.tex}
 % -- Example Smarthosts
 \input{frames/smart.tex}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dia/callout.dia	Fri Mar 20 13:01:27 2015 +0100
@@ -0,0 +1,495 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/">
+  <dia:diagramdata>
+    <dia:attribute name="background">
+      <dia:color val="#ffffff"/>
+    </dia:attribute>
+    <dia:attribute name="pagebreak">
+      <dia:color val="#000099"/>
+    </dia:attribute>
+    <dia:attribute name="paper">
+      <dia:composite type="paper">
+        <dia:attribute name="name">
+          <dia:string>#A4#</dia:string>
+        </dia:attribute>
+        <dia:attribute name="tmargin">
+          <dia:real val="2.8222000598907471"/>
+        </dia:attribute>
+        <dia:attribute name="bmargin">
+          <dia:real val="2.8222000598907471"/>
+        </dia:attribute>
+        <dia:attribute name="lmargin">
+          <dia:real val="2.8222000598907471"/>
+        </dia:attribute>
+        <dia:attribute name="rmargin">
+          <dia:real val="2.8222000598907471"/>
+        </dia:attribute>
+        <dia:attribute name="is_portrait">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+        <dia:attribute name="scaling">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="fitto">
+          <dia:boolean val="false"/>
+        </dia:attribute>
+      </dia:composite>
+    </dia:attribute>
+    <dia:attribute name="grid">
+      <dia:composite type="grid">
+        <dia:attribute name="width_x">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="width_y">
+          <dia:real val="1"/>
+        </dia:attribute>
+        <dia:attribute name="visible_x">
+          <dia:int val="1"/>
+        </dia:attribute>
+        <dia:attribute name="visible_y">
+          <dia:int val="1"/>
+        </dia:attribute>
+        <dia:composite type="color"/>
+      </dia:composite>
+    </dia:attribute>
+    <dia:attribute name="color">
+      <dia:color val="#d8e5e5"/>
+    </dia:attribute>
+    <dia:attribute name="guides">
+      <dia:composite type="guides">
+        <dia:attribute name="hguides"/>
+        <dia:attribute name="vguides"/>
+      </dia:composite>
+    </dia:attribute>
+  </dia:diagramdata>
+  <dia:layer name="Background" visible="true" active="true">
+    <dia:object type="Standard - Text" version="1" id="O0">
+      <dia:attribute name="obj_pos">
+        <dia:point val="2.1,1.33205"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="0.06,1.0033;4.14,1.6608"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#RCPT TO:&lt;...&gt;#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.70555552840232849"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="2.1,1.5283"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O1">
+      <dia:attribute name="obj_pos">
+        <dia:point val="8.68364,0.466026"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="8.68364,0.073526;12.4586,2.15353"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#EHLO ...
+MAIL FROM:&lt;...&gt; 
+RCPT TO:&lt;...&gt;
+QUIT#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.52916664630174637"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="8.68364,0.466026"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="0"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="3"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O2">
+      <dia:attribute name="obj_pos">
+        <dia:point val="8.61974,3.06"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="8.61974,2.81046;13.1,3.31364"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="8.61974,3.06"/>
+        <dia:point val="13.1,3.0641"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="start_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="start_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="start_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O3">
+      <dia:attribute name="obj_pos">
+        <dia:point val="1.1,3.06411"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="0.0625,2.73536;2.1375,3.39286"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#250 OK#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.70555552840232849"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="1.1,3.26036"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:group>
+      <dia:object type="Standard - Box" version="0" id="O4">
+        <dia:attribute name="obj_pos">
+          <dia:point val="5.6,2.19808"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="5.6,2.19808;8.1,3.93013"/>
+        </dia:attribute>
+        <dia:attribute name="elem_corner">
+          <dia:point val="5.6,2.19808"/>
+        </dia:attribute>
+        <dia:attribute name="elem_width">
+          <dia:real val="2.5"/>
+        </dia:attribute>
+        <dia:attribute name="elem_height">
+          <dia:real val="1.7320508075688772"/>
+        </dia:attribute>
+        <dia:attribute name="border_width">
+          <dia:real val="0"/>
+        </dia:attribute>
+        <dia:attribute name="border_color">
+          <dia:color val="#1a1a1a"/>
+        </dia:attribute>
+        <dia:attribute name="show_background">
+          <dia:boolean val="true"/>
+        </dia:attribute>
+      </dia:object>
+      <dia:object type="Standard - Text" version="1" id="O5">
+        <dia:attribute name="obj_pos">
+          <dia:point val="6.85,3.06411"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="6.4125,2.73536;7.2875,3.39286"/>
+        </dia:attribute>
+        <dia:attribute name="text">
+          <dia:composite type="text">
+            <dia:attribute name="string">
+              <dia:string>#MX#</dia:string>
+            </dia:attribute>
+            <dia:attribute name="font">
+              <dia:font family="sans" style="0" name="Helvetica"/>
+            </dia:attribute>
+            <dia:attribute name="height">
+              <dia:real val="0.70555552840232849"/>
+            </dia:attribute>
+            <dia:attribute name="pos">
+              <dia:point val="6.85,3.26036"/>
+            </dia:attribute>
+            <dia:attribute name="color">
+              <dia:color val="#000000"/>
+            </dia:attribute>
+            <dia:attribute name="alignment">
+              <dia:enum val="1"/>
+            </dia:attribute>
+          </dia:composite>
+        </dia:attribute>
+        <dia:attribute name="valign">
+          <dia:enum val="2"/>
+        </dia:attribute>
+        <dia:connections>
+          <dia:connection handle="0" to="O4" connection="8"/>
+        </dia:connections>
+      </dia:object>
+    </dia:group>
+    <dia:object type="Standard - Line" version="0" id="O6">
+      <dia:attribute name="obj_pos">
+        <dia:point val="0.6,2.19808"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="0.6,1.94808;4.6,2.44808"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="0.6,2.19808"/>
+        <dia:point val="4.6,2.19808"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Line" version="0" id="O7">
+      <dia:attribute name="obj_pos">
+        <dia:point val="4.6,3.93013"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="0.63227,3.68013;4.6,4.18013"/>
+      </dia:attribute>
+      <dia:attribute name="conn_endpoints">
+        <dia:point val="4.6,3.93013"/>
+        <dia:point val="0.63227,3.93013"/>
+      </dia:attribute>
+      <dia:attribute name="numcp">
+        <dia:int val="1"/>
+      </dia:attribute>
+      <dia:attribute name="line_color">
+        <dia:color val="#1a1a1a"/>
+      </dia:attribute>
+      <dia:attribute name="line_width">
+        <dia:real val="0"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow">
+        <dia:enum val="22"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_length">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+      <dia:attribute name="end_arrow_width">
+        <dia:real val="0.5"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O8">
+      <dia:attribute name="obj_pos">
+        <dia:point val="0.71329,1.9305"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="0.53329,1.60175;0.89329,2.25925"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#1#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.70555552840232849"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="0.71329,2.12675"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O9">
+      <dia:attribute name="obj_pos">
+        <dia:point val="10.8325,2.74101"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="10.6525,2.41226;11.0125,3.06976"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#2#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.70555552840232849"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="10.8325,2.93726"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:object type="Standard - Text" version="1" id="O10">
+      <dia:attribute name="obj_pos">
+        <dia:point val="4.1,3.61087"/>
+      </dia:attribute>
+      <dia:attribute name="obj_bb">
+        <dia:rectangle val="3.92,3.28212;4.28,3.93962"/>
+      </dia:attribute>
+      <dia:attribute name="text">
+        <dia:composite type="text">
+          <dia:attribute name="string">
+            <dia:string>#3#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="font">
+            <dia:font family="sans" style="0" name="Helvetica"/>
+          </dia:attribute>
+          <dia:attribute name="height">
+            <dia:real val="0.70555552840232849"/>
+          </dia:attribute>
+          <dia:attribute name="pos">
+            <dia:point val="4.1,3.80712"/>
+          </dia:attribute>
+          <dia:attribute name="color">
+            <dia:color val="#000000"/>
+          </dia:attribute>
+          <dia:attribute name="alignment">
+            <dia:enum val="1"/>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
+      <dia:attribute name="valign">
+        <dia:enum val="2"/>
+      </dia:attribute>
+    </dia:object>
+    <dia:group>
+      <dia:object type="Standard - Box" version="0" id="O11">
+        <dia:attribute name="obj_pos">
+          <dia:point val="13.6,2.19808"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="13.6,2.19808;16.4988,3.93013"/>
+        </dia:attribute>
+        <dia:attribute name="elem_corner">
+          <dia:point val="13.6,2.19808"/>
+        </dia:attribute>
+        <dia:attribute name="elem_width">
+          <dia:real val="2.8987850423728823"/>
+        </dia:attribute>
+        <dia:attribute name="elem_height">
+          <dia:real val="1.7320500000000001"/>
+        </dia:attribute>
+        <dia:attribute name="border_width">
+          <dia:real val="0"/>
+        </dia:attribute>
+        <dia:attribute name="border_color">
+          <dia:color val="#1a1a1a"/>
+        </dia:attribute>
+        <dia:attribute name="show_background">
+          <dia:boolean val="true"/>
+        </dia:attribute>
+      </dia:object>
+      <dia:object type="Standard - Text" version="1" id="O12">
+        <dia:attribute name="obj_pos">
+          <dia:point val="15.0494,3.06411"/>
+        </dia:attribute>
+        <dia:attribute name="obj_bb">
+          <dia:rectangle val="14.2169,2.73536;15.8819,3.39286"/>
+        </dia:attribute>
+        <dia:attribute name="text">
+          <dia:composite type="text">
+            <dia:attribute name="string">
+              <dia:string>#intern#</dia:string>
+            </dia:attribute>
+            <dia:attribute name="font">
+              <dia:font family="sans" style="0" name="Helvetica"/>
+            </dia:attribute>
+            <dia:attribute name="height">
+              <dia:real val="0.70555552840232849"/>
+            </dia:attribute>
+            <dia:attribute name="pos">
+              <dia:point val="15.0494,3.26036"/>
+            </dia:attribute>
+            <dia:attribute name="color">
+              <dia:color val="#000000"/>
+            </dia:attribute>
+            <dia:attribute name="alignment">
+              <dia:enum val="1"/>
+            </dia:attribute>
+          </dia:composite>
+        </dia:attribute>
+        <dia:attribute name="valign">
+          <dia:enum val="2"/>
+        </dia:attribute>
+        <dia:connections>
+          <dia:connection handle="0" to="O11" connection="8"/>
+        </dia:connections>
+      </dia:object>
+    </dia:group>
+  </dia:layer>
+</dia:diagram>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/frames/callforward.tex	Fri Mar 20 13:01:27 2015 +0100
@@ -0,0 +1,52 @@
+\subsection{EmiG}
+\begin{frame}[<+->][fragile]{Beispiel: Empfängerüberprüfung}{Callforward}
+\begin{block}{Aufgabenstellung}
+Exim sei MX und soll Nachrichten an einen internen Server weiterleiten,
+aber nur, wenn der Empfänger wirklich existiert.
+\end{block}
+\begin{block}{Lösung?}
+\begin{itemize}
+	\item Nutzerdatenbank duplizieren
+	\item Nutzerdatenbank (LDAP, AD, …) anzapfen? 
+	\item Also: die Entscheidung an den internen MTA zu delegieren.
+\end{itemize}
+\end{block}
+\begin{block}{Lösung!}
+Callforward - Überprüfung des Empfängers per SMTP
+\setbeamercovered{invisible}
+\pause
+\includegraphics[width=0.8\textwidth]{callout.eps}
+\end{block}
+\end{frame}
+
+\begin{frame}[<+->][fragile]{Beispiel: Empfängerüberprüfung}{Callforward}
+\begin{verbatim}
+begin acl
+
+  acl_check_recipient:
+
+    …
+
+    deny   domains = +internal_domains
+           !verify = recipient/callout=use_sender,defer_ok
+
+    accept
+
+\end{verbatim}
+\begin{block}{„Probleme“}
+\begin{itemize}
+  \item Exchange 2010(?): Unknown User erst nach DATA
+  \item Content-Scan auf dem internen Server
+\end{itemize}
+\end{block}
+\end{frame}
+
+\begin{frame}[<+->][fragile]{Test Callforward}{existierender Empfänger}
+\scriptsize
+\ttinput{out/callout-ok.tt}
+\end{frame}
+
+\begin{frame}[<+->][fragile]{Test Callforward}{nicht-existierender Empfänger}
+\scriptsize
+\ttinput{out/callout-not-ok.tt}
+\end{frame}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/out/callout-not-ok.tt	Fri Mar 20 13:01:27 2015 +0100
@@ -0,0 +1,31 @@
+$ swaks -f hans@example.com -t foo@schlittermann.de --pipe 'exim -bhc 8.8.4.4' -q rcpt
+=== Trying pipe to exim -bhc 8.8.4.4...
+<-  **** SMTP testing session as if from host 8.8.4.4
+<-  **** This is not for real!
+<-  220 hs12.schlittermann.de ESMTP Exim 4.85_RC1-53-a466d09-XX Fri, 20 Mar 2015 12:37:17 +0100
+…
+ -> RCPT TO:<foobar@schlittermann.de>
+>>> using ACL "acl_check_rcpt"
+>>> check !verify = recipient/callout=use_sender,defer_ok
+>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+>>> routing foobar@schlittermann.de
+>>> schlittermann.de in "! +local_domains"? yes (end of list)
+>>> calling dnslookup router
+…
+>>> routed by dnslookup router
+>>> Attempting full verification using callout
+>>> Connecting to ssl.schlittermann.de [212.80.235.130]:25 ... connected
+>>>   SMTP<< 220 ssl.schlittermann.de ESMTP Exim (mx) 4.80 Fri, 20 Mar 2015 12:37:20 +0100
+>>>   SMTP>> STARTTLS
+>>>   SMTP<< 220 TLS go ahead
+>>>   SMTP>> MAIL FROM:<hans@example.com>
+>>>   SMTP<< 250 OK
+>>>   SMTP>> RCPT TO:<foobar@schlittermann.de>
+>>>   SMTP<< 550-recipient verify failed
+>>>          550 Server time: Fri, 20 Mar 2015 12:37:20 +0100
+>>>   SMTP>> QUIT
+>>> ----------- end verify ------------
+<** 550-Callout verification failed:
+<** 550-550-recipient verify failed
+<** 550 550 Server time: Fri, 20 Mar 2015 12:37:20 +0100
+ -> QUIT
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/out/callout-ok.tt	Fri Mar 20 13:01:27 2015 +0100
@@ -0,0 +1,28 @@
+$ swaks -f hans@example.com -t hs@schlittermann.de --pipe 'exim -bhc 8.8.4.4' -q rcpt
+=== Trying pipe to exim -bhc 8.8.4.4...
+<-  **** SMTP testing session as if from host 8.8.4.4
+<-  **** This is not for real!
+<-  220 hs12.schlittermann.de ESMTP Exim 4.85_RC1-53-a466d09-XX Fri, 20 Mar 2015 12:33:18 +0100
+…
+ -> RCPT TO:<hs@schlittermann.de>
+>>> using ACL "acl_check_rcpt"
+>>> check !verify = recipient/callout=use_sender,defer_ok
+>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+>>> routing hs@schlittermann.de
+>>> schlittermann.de in "! +local_domains"? yes (end of list)
+>>> calling dnslookup router
+…
+>>> routed by dnslookup router
+>>> Attempting full verification using callout
+>>> Connecting to ssl.schlittermann.de [212.80.235.130]:25 ... connected
+>>>   SMTP<< 220 ssl.schlittermann.de ESMTP Exim (mx) 4.80 Fri, 20 Mar 2015 12:33:20 +0100
+>>>   SMTP>> STARTTLS
+>>>   SMTP<< 220 TLS go ahead
+>>>   SMTP>> MAIL FROM:<hans@example.com>
+>>>   SMTP<< 250 OK
+>>>   SMTP>> RCPT TO:<hs@schlittermann.de>
+>>>   SMTP<< 250 Accepted
+>>>   SMTP>> QUIT
+>>> ----------- end verify ------------
+<-  250 Accepted
+ -> QUIT