2 * Citadel and your Systems Mail Transport Agent
4 The easy way to get citadel doing inbound Mail is
5 to install the "citadel-mta" package.
7 You however can use your default MTA to deliver mails
8 to citadel using a feature called LMTP (Local Mail
9 Transport) which is supported by Postfix, Exim and
12 Citadel will open its lmtp Unix Domain Socket in
13 /var/run/citadel/lmtp.socket
14 This is where you need to point your other MTA at.
20 Exim is able to do this; however, the Author of this
21 writing doesn't use it, and thus provides you just with
22 this Link to the exim documentation:
24 http://exim.inode.at/exim-html-3.20/doc/html/spec_17.html
26 (If you know more, input is welcome)
32 Postfix offers more than just LMTP. Postfix also enables
33 you to use DICT-TCP in order to verify whether an email
34 will be deliverable rigt after the other mailserver told
35 yours whom it wants to send mail to.
36 Have a look at this sample main.cf for postfix:
38 # See /usr/share/postfix/main.cf.dist for a commented, more complete version
39 smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
42 # appending .domain is the MUA's job.
43 append_dot_mydomain = no
45 # Uncomment the next line to generate "delayed mail" warnings
46 #delay_warning_time = 4h
47 myhostname = sample.citadel.org
48 #alias_maps = hash:/etc/aliases
49 #alias_database = hash:/etc/aliases
50 myorigin = /etc/mailname
51 mydestination = mail.sample.citadel.org, sample.citadel.org
52 #relayhost = mynetworks = 127.0.0.0/8
53 mailbox_size_limit = 0
54 recipient_delimiter = +
56 # ------------------------------------------------
58 # get rid of anything useless as early as possible.
59 # * stage one: check if the user is there.
60 # * stage two: check the source. is its helo valid? else buye.
61 # * stage three: check the sender etc.
62 # * stage four: check the open relay Database. hosts registered here won't be accepted.
63 # * stage five: check the content by regex. won't accept Windows executables of any kind.
64 # * stage six: Do virus checking. reject some more extensions.
65 # * stage seven: deliver it to citadel via local transport
66 # make it bite harder if wanted. unknown_local_recipient_reject_code = 550
67 #unknown_address_reject_code = 550
68 #unknown_client_reject_code = 550
69 #unknown_relay_recipient_reject_code = 550
70 #unknown_virtual_alias_reject_code = 550
71 #unknown_virtual_mailbox_reject_code = 550
72 #unknown_address_reject_code = 550
73 #unknown_client_reject_code = 550
74 #unknown_hostname_reject_code = 550
75 #unverified_recipient_reject_code = 550
76 #unverified_sender_reject_code = 550
77 #unverified_recipient_reject_code = 550
79 # nope. don't wanna know.
80 bounce_notice_recipient =
81 # replace 127.0.0.1 with the ip of your citadel server, and 777 with the port you made it open its dict-tcp server
82 # in doubt check with netstat -lnp
85 smtpd_recipient_restrictions =
87 reject_unauth_destination,
88 reject_unauth_pipelining,
89 reject_non_fqdn_sender,
90 reject_non_fqdn_hostname,
91 reject_invalid_hostname,
92 reject_unknown_recipient_domain,
93 reject_unknown_sender_domain,
94 reject_unknown_hostname,
95 reject_rbl_client list.dsbl.org,
96 reject_rbl_client sbl-xbl.spamhaus.org,
97 reject_rbl_client bl.spamcop.net,
98 reject_rbl_client dnsbl.njabl.org,
99 reject_rbl_client dnsbl.sorbs.net,
100 reject_rbl_client l2.spews.dnsbl.sorbs.net,
101 reject_rhsbl_client rhsbl.sorbs.net,
102 reject_rhsbl_client bogusmx.rfc-ignorant.org,
103 reject_rhsbl_sender rhsbl.sorbs.net,
104 reject_rhsbl_sender bogusmx.rfc-ignorant.org,
105 reject_rhsbl_sender dsn.rfc-ignorant.org
107 #if we deliver to citadel via lmtp, do it for example like that:
108 local_transport = lmtp:unix:/var/run/citadel/lmtp.socket
109 # check the output of netstat -lnp for your lmtp.sock location.
112 More informations on this issue can be found at:
113 http://www.citadel.org/doku.php/faq:installation:configuring_postfix_to_validate_email_addresses_against_a_citadel_server
116 -- Wilfried Goesgens <w.goesgens@outgesourced.org>, Thu, 17 May 2007 19:10:39 +0200