Delivering to user@domain versus user@host.domain

Don Doumakes doumakes at loganet.net
Fri May 23 23:56:48 EDT 2003


On 2003.05.23 20:27:36 -0500 Christian Schulte wrote:
> Don Doumakes wrote:
> 
>> 
>> On 2003.05.22 23:50:43 -0500 Christian Schulte wrote:
>> 
>>> How does sendmail get its local name ? What happens if you put
>>> 
>>> LOCAL_CONFIG
>>> Cwcannibals.org
>>> 
>>> in your sendmail.mc file ? Does that change anything ?
>> 
>> 
>> My sendmail gets the local name from /etc/mail/local-host-names, 
>> which contains "donner.cannibals.org" and "cannibals.org."  I get 
>> the same result if I delete the "donner.cannibals.org" line from 
>> local-host-names, and if I use "Cwcannibals.org."
>> 
>> So I rebuilt sendmail.cf from scratch.  My sendmail.mc file is:
>> 
>> 
>> # $Id: cyrusv2.mc,v 1.4 2001/08/23 23:26:56 leg Exp $
>> 
>> divert(0)dnl
>> VERSIONID(`cyrus v2 sample configuartion')
>> 
>> OSTYPE(linux)
>> define(`confBIND_OPTS',`-DNSRCH -DEFNAMES')
>> define(`confTO_IDENT',`0')
>> 
>> dnl setting cyrus as the trusted user will make it easier to pass
>> dnl Sendmail's safefile checks.  however, it means that someone with 
>> the
>> dnl "cyrus" password could easily become root.
>> dnl define(`confTRUSTED_USER', `cyrus')
>> 
>> define(`confLOCAL_MAILER', `cyrusv2')
>> 
>> dnl if you aren't using Sendmail 8.12, you might need to remove
>> dnl the following feature.
>> FEATURE(`preserve_local_plus_detail')
>> FEATURE(`nocanonify')
>> FEATURE(`always_add_domain')
>> MAILER(`cyrusv2')
>> MAILER(`local')
>> MAILER(`smtp')
>> 
>> MAILER_DEFINITIONS
>> Mcyrusv2,    P=[IPC], F=lsDFMnqA@/:|SmXz, E=\r\n,
>>     S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, 
>> T=DNS/RFC822/X-Unix,      A=FILE /var/imap/socket/lmtp
>> 
>> LOCAL_RULE_0
>> Rbb + $+ < @ $=w . >    $#cyrusv2 $: + $1
>> 
>> 
>> Among the several variations of the above that also don't work, was 
>> one in which I used FEATURE(`use_cw_file').
>> 
>> After sending email to testuser at cannibals.org, /var/log/maillog says:
>> 
>> May 23 18:49:42 donner sendmail[4424]: h4NNngTj004424: from=root, 
>> size=97, class=0, nrcpts=1, 
>> msgid=<200305232349.h4NNngTj004424 at donner.cannibals.org>, 
>> relay=root at localhost
>> May 23 18:49:43 donner sendmail[4426]: h4NNnhrI004426: 
>> from=<root at donner.cannibals.org>, size=330, class=0, nrcpts=1, 
>> msgid=<200305232349.h4NNngTj004424 at donner.cannibals.org>, 
>> proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
>> May 23 18:49:43 donner sendmail[4424]: h4NNngTj004424: 
>> to=testuser at cannibals.org, ctladdr=root (0/0), delay=00:00:01, 
>> xdelay=00:00:01, mailer=relay, pri=30069, relay=[127.0.0.1] 
>> [127.0.0.1], dsn=2.0.0, stat=Sent (h4NNnhrI004426 Message accepted 
>> for delivery)
>> May 23 18:49:43 donner sendmail[4428]: h4NNnhrI004426: 
>> to=<testuser at cannibals.org>, delay=00:00:00, xdelay=00:00:00, 
>> mailer=cyrusv2, pri=30302, relay=localhost, dsn=5.1.1, stat=User 
>> unknown
>> May 23 18:49:43 donner sendmail[4428]: h4NNnhrI004426: 
>> h4NNnhrI004428: DSN: User unknown
>> May 23 18:49:43 donner sendmail[4428]: h4NNnhrI004428: 
>> to=<root at donner.cannibals.org>, delay=00:00:00, xdelay=00:00:00, 
>> mailer=cyrusv2, pri=31354, relay=localhost [[UNIX: 
>> /var/imap/socket/lmtp]], dsn=5.1.1, stat=User unknown
>> May 23 18:49:43 donner sendmail[4428]: h4NNnhrI004428: 
>> h4NNnhrJ004428: return to sender: User unknown
>> May 23 18:49:43 donner sendmail[4428]: h4NNnhrJ004428: to=root, 
>> delay=00:00:00, xdelay=00:00:00, mailer=cyrusv2, pri=32378, 
>> relay=localhost [[UNIX: /var/imap/socket/lmtp]], dsn=5.1.1, 
>> stat=User unknown
>> May 23 18:49:43 donner sendmail[4428]: h4NNnhrI004428: Losing 
>> ./qfh4NNnhrI004428: savemail panic
>> May 23 18:49:43 donner sendmail[4428]: h4NNnhrI004428: SYSERR(root): 
>> savemail: cannot save rejected email anywhere
>> 
>> 
>> ...and /var/log/imapd.log says:
>> 
>> May 23 18:49:43 donner lmtpunix[4429]: lmtp connection preauth'd as 
>> postman
>> May 23 18:49:43 donner lmtpunix[4429]: append_check() of 
>> 'donner.cannibals.org!user.testuser' failed May 23 18:49:43 donner 
>> lmtpunix[4429]: append_check() of 'donner.cannibals.org!user.root' 
>> failed May 23 18:49:43 donner lmtpunix[4429]: append_check() of 
>> 'donner.cannibals.org!user.root' failed
> 
> So the problem is sendmail appending donner.cannibals.org to all 
> local names instead of just cannibals.org. The behaviour sendmail 
> appending the fqdn of the host which it is running on is normal!  
> There are different solutions for your problem depending on your 
> needs.  What setup are you planning exactly ? Do you want to have 
> user logins like user at cannibals.org and cannibals.org be your _only_ 
> domain or are you planning to setup user logins like 
> user at cannibals.org,user at other-domain.org, 
> user at just-another-domain.org ?

Definitely want to have user1 at domain1.org, user1 at domain2.org, etc., 
i.e. virtual domains.  I'm currently hosting web sites for multiple 
domains, and without virtual domain support I have to hand-sort email 
to webmaster at thisdomain from email to webmaster at thatdomain.

> I have sendmail-8.12.9 running with cyrus-2.2 and do local delivery 
> by confLOCAL_MAILER(cyrusv2) and everything works but that was only 
> possible by patching cf/m4/proto.m4 to make sendmail recognize 
> user at domain as regular local name. [snip]

Sounds like exactly what I need.  Would you share the patched version 
of proto.m4?

> >With this configuration, I'm able to create a mailbox named 
> user.don at donner.cannibals.org.  I can log in to that account, and 
> deliver to the mailbox.
> 
> That is because sendmail appends  donner.cannibals.org to all 
> unqualified local names
> 
> >I then modify /etc/imapd.conf so the "admins" and "loginrealms" 
> entries are no longer donner.cannibals.org but rather cannibals.org.  
> (Of course I clean up from the first experiment, restart imapd and 
> all that.)
> >Now I can create a mailbox named user.don at cannibals.org.
> 
> Can you setup a global admin (that is an admin without @domain in the 
> imapd.conf admins line) and create both mailboxes ?

Nope.  Tried this several ways, but can't do it.  Which isn't 
necessarily a problem:  I can live with the inconvenience of having 
several domain-level admin accounts.

> >I can log in, but if I attempt to deliver mail to don at cannibals.org 
> I get a "User unknown" error.
> 
> You deleted the @donner.cannbials.org mailbox before ? So delivery 
> did not stop working and would work correctly if you would create the 
> mailbox @donner.cannibals.org ?

Precisely.

> Another guess I cannot try here myself  but which should work:
> 
> Set defaultdomain in imapd.conf to cannibals.org. Now every user who 
> logs in @cannibals.org gets to the mailbox on the defaultdomain and 
> sendmail does not need to append @cannibals.org while talking LMTP to 
> cyrus to deliver to that domain. (That only works if you do not need 
> more than one domain supported of course)
> [snip]

-- 
Don Doumakes




More information about the Info-cyrus mailing list