Re: [Exim] Exim ain't delivering maildirs

Top Page
Delete this message
Reply to this message
Author: Nathan
Date:  
To: exim-users
Old-Topics: Re: [Exim] Exim ain't receiving
Subject: Re: [Exim] Exim ain't delivering maildirs
Hello,

I'm the one that's having trouble getting exim to
deliver to maildirs. Sorry for not giving enough
details the first time.

Exim mainlog extract:
== nate@??? T=maildir_delivery defer (13):
Permission denied: cannot create
/var/mail/mylinuxbox.com//tmp
<= <> R=15nTIg-0000D1-00 U=mail P=local S=617
Frozen

Here's my current exim.conf starting with the
transports section. I'm wondering if there's a
missing "recipient" variable in the directory line,
but I don't know what the syntax would be. There are
probably a few other problems with this file as well.

Thanks for being willing to help me.

Nathan

####################################################### 
###############
#                      TRANSPORTS 
CONFIGURATION                      #
####################################################### 
###############
#                       ORDER DOES NOT 
MATTER                        #
#     Only one appropriate transport is called for 
each delivery.    #
####################################################### 
###############


maildir_delivery:
driver = appendfile
no_from_hack
prefix = ""
suffix = ""
maildir_format
directory = /var/mail/mylinuxbox.org/
create_directory

# This transport is used for local delivery to user
mailboxes. On debian
# systems group mail is used so we can write to the
/var/spool/mail
# directory. (The alternative, which most other unixes
use, is to deliver
# as the user's own group, into a sticky-bitted directory)

local_delivery:
driver = appendfile
group = mail
mode = 0660
mode_fail_narrower = false
envelope_to_add = true
file = /var/spool/mail/${local_part}

# This transport is used for handling pipe addresses
generated by
# alias or .forward files. If the pipe generates any
standard output,
# it is returned to the sender of the message as a
delivery error. Set
# return_fail_output instead if you want this to
happen only when the
# pipe fails to complete normally.

address_pipe:
driver = pipe
return_output

# This transport is used for handling file addresses
generated by alias
# or .forward files.

address_file:
driver = appendfile

# This transport is used for handling file addresses
generated by alias
# or .forward files if the path ends in "/", which
causes it to be treated
# as a directory name rather than a file name. Each
message is then delivered
# to a unique file in the directory. If instead you
want all such deliveries to
# be in the "maildir" format that is used by some
other mail software,
# uncomment the final option below. If this is done,
the directory specified
# in the .forward or alias file is the base maildir
directory.
#
# Should you want to be able to specify either maildir
or non-maildir
# directory-style deliveries, then you must set up yet
another transport,
# called address_directory2. This is used if the path
ends in "//" so should
# be the one used for maildir, as the double slash
suggests another level
# of directory. In the absence of address_directory2,
paths ending in //
# are passed to address_directory.

address_directory:
driver = appendfile
no_from_hack
prefix = ""
suffix = ""
# maildir_format

# This transport is used for handling autoreplies
generated by the filtering
# option of the forwardfile director.

address_reply:
driver = autoreply

# This transport is used for procmail

procmail_pipe:
driver = pipe
command = "/usr/bin/procmail -d ${local_part}"
return_path_add
delivery_date_add
envelope_to_add
check_string = "From "
escape_string = ">From "
user = $local_part
group = mail


# This transport is used for delivering messages over
SMTP connections.

remote_smtp:
driver = smtp

end


####################################################### 
###############
#                      DIRECTORS 
CONFIGURATION                       #
#             Specifies how local addresses are 
handled              #
####################################################### 
###############
#                          ORDER DOES 
MATTER                         #
#   A local address is passed to each in turn until it 
is accepted.  #
####################################################### 
###############


# This allows local delivery to be forced, avoiding
alias files and
# forwarding.

real_local:
prefix = real-
driver = localuser
transport = maildir_delivery
# transport = local_delivery

# This director handles aliasing using a traditional
/etc/aliases file.
# If any of your aliases expand to pipes or files, you
will need to set
# up a user and a group for these deliveries to run
under. You can do
# this by uncommenting the "user" option below
(changing the user name
# as appropriate) and adding a "group" option if necessary.

system_aliases:
driver = aliasfile
file_transport = address_file
pipe_transport = address_pipe
file = /etc/aliases
search_type = lsearch
# user = list
# Uncomment the above line if you are running smartlist


# This director runs procmail for users who have a
.procmailrc file

procmail:
driver = localuser
transport = procmail_pipe
require_files =
${local_part}:+${home}:+${home}/.procmailrc:+/usr/bin/p
rocmail
no_verify

# This director handles forwarding using traditional
.forward files.
# It also allows mail filtering when a forward file
starts with the
# string "# Exim filter": to disable filtering,
uncomment the "filter"
# option. The check_ancestor option means that if the
forward file
# generates an address that is an ancestor of the
current one, the
# current one gets passed on instead. This covers the
case where A is
# aliased to B and B has a .forward file pointing to A.

# For standard debian setup of one group per user, it
is acceptable---normal
# even---for .forward to be group writable. If you
have everyone in one
# group, you should comment out the "modemask" line.
Without it, the exim
# default of 022 will apply, which is probably what
you want.

userforward:
driver = forwardfile
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply
no_verify
check_ancestor
file = .forward
modemask = 002
filter

# This director matches local user mailboxes.

localuser:
driver = localuser
transport = maildir_delivery
# transport = local_delivery

end


####################################################### 
###############
#                      ROUTERS 
CONFIGURATION                         #
#            Specifies how remote addresses are 
handled              #
####################################################### 
###############
#                          ORDER DOES 
MATTER                         #
#  A remote address is passed to each in turn until it 
is accepted.  #
####################################################### 
###############


# Remote addresses are those with a domain that does
not match any item
# in the "local_domains" setting above.

# This router routes to remote hosts over SMTP using a
DNS lookup with
# default options.

lookuphost:
driver = lookuphost
transport = remote_smtp

# This router routes to remote hosts over SMTP by
explicit IP address,
# given as a "domain literal" in the form
[nnn.nnn.nnn.nnn]. The RFCs
# require this facility, which is why it is enabled by
default in Exim.
# If you want to lock it out, set
forbid_domain_literals in the main
# configuration section above.

literal:
driver = ipliteral
transport = remote_smtp

end


####################################################### 
###############
#                      RETRY 
CONFIGURATION                           #
####################################################### 
###############


# This single retry rule applies to all domains and
all errors. It specifies
# retries every 15 minutes for 2 hours, then
increasing retry intervals,
# starting at 2 hours and increasing each time by a
factor of 1.5, up to 16
# hours, then retries every 8 hours until 4 days have
passed since the first
# failed delivery.

# Domain               Error       Retries
# ------               -----       -------


*                      *           F,2h,15m; 
G,16h,2h,1.5; F,4d,8h


end


####################################################### 
###############
#                      REWRITE 
CONFIGURATION                         #
####################################################### 
###############



# There are no rewriting specifications in this
default configuration file.


# This rewriting rule is particularly useful for
dialup users who
# don't have their own domain, but could be useful for
anyone.
# It looks up the real address of all local users in a file

*@mylinuxbox.org 
${lookup{$1}lsearch{/etc/email-addresses}\
                                                 {$valu 
{$value}fail} bcfrF


# End of Exim configuration file

At 02:03 AM 10/1/01 +0100, you wrote:

>On Sun, Sep 30, 2001 at 06:06:24PM -0600, Nathan wrote:
> > Hello,
> >
> > I've got Exim relaying messages from localhost, and
> > from Eudora (on my Win98box). However, it isn't
> > receiving mail properly. Eventually I'll be using
> > maildirs, but right now I don't care. I just want the
> > mail to get delivered somewhere. Here's an excerpt
> > from the Exim mainlog:
> >
> > == nate@??? T=maildir_delivery defer (13):
> > Permission denied: cannot create
> > /var/mail/mylinuxbox.com//tmp
> > <= <> R=15nTIg-0000D1-00 U=mail P=local S=617
> > Frozen
> >
> > It seems like /var/mail/mylinuxbox.com//tmp should be
> > something more along the lines of
> > /var/mail/mylinuxbox.com/nate/tmp
>
>Can you show us the contents of your maildir_delivery
>transport?
>
>If we see that we should be able to help.
>
>Ollie
>
>--
>Oliver Cook    Systems Administrator, ClaraNET
>ollie@???               020 7903 3065

>
>--
>## List details at
>http://www.exim.org/mailman/listinfo/exim-users Exim
>details at http://www.exim.org/ ##