[exim] exim changes envelope-sender to root@...

Top Page
Delete this message
Reply to this message
Author: Brenda J. Butler
Date:  
To: exim-users
Subject: [exim] exim changes envelope-sender to root@...



I have a home hobby system, with exim running on an internal
machine (tazmaniandevil.stuffed.animals) and on an externally
visible machine (gw.stuffed.animals aka ns1.linuxbutler.ca).
Well, externally visible in that it has an ip address and
a dns name. It doesn't receive mail directly from the internet.
Both machines are running Debian stable, with exim 3.35.
tazmaniandevil (the inside machine) is an ultra sparc 1 and
gw (the gateway machine) is an Intel Frankenbox made up of
old parts - "Pentium 75 - 200", cpu is ~100 MHz. gw is running
Linux 2.4.19, taz is running Linux 2.2.22.

When I generate mail on taz as bjb using mutt, the mail is given
to exim with an envelope-sender of bjb, and I've seen that
in the mail spool file (xxxxxx-xxxxxx-00-H, by the command
exim -bvl xxxxxx-xxxxxx-00 and/or exim -bvh xxxxxx-xxxxxx-00)

However, when the taz exim hands the mail to the gw exim, then
it says the envelope-sender is root@???.
I saw this using ethereal - the packet has in it that the
envelope-sender is root. It is stored in the exim mail
area (/var/spool/exim/input) with an envelope-sender of
root@???.

My question is, what could be causing that? I'd like the
taz exim to leave the envelope-sender untouched (as bjb@taz...)

It is a problem because when the gw exim forwards the message
on to the isp's smarthost, the isp's MTA refuses it because
stuffed.animals does not resolve.

For the moment, I am rewriting the sender (and some other)
address if it is bjb or root, to bjb at my.isp as it
leaves gw and goes to the isp. This won't do for other
users on my system, their sender will also be changed to
bjb at my.isp (if it had been changed to root). Fortunately,
there aren't too many of them and they don't use the system
very often.

I have messed with the configuration a bit, before I knew
what I was doing (not that I know what I'm doing now), so
anything could be wrong with it. Please do ask me to check
the basics before assuming it is some exotic scenario.
I've only recently seen the advice to home users using their
isp as smarthost, to put their (internet-invisible) actual
domain name (like stuffed.animals) as "qualify-domain",
and rely on address rewriting to prevent it from escaping
into the real world. Before, I was trying to set qualify-domain
to my isp's domain (thus preventing me from ever emailing
support at my.isp), and then fix up the results with other
configurations (mostly rewrites, but who knows what else
I messed up? I've been playing with it for a while, off and
on).

Thanks for whatever help you can send. I've been going
through the spec.txt.gz but I don't see the answer yet.
Any hints as to which part to look at would be appreciated :-)
I'm guessing it has to do with directors or transports as those
are the things that deal with outgoing messages.

I have appended the results of the following command to this mail,
in case you want to see my exim config.  This is the config
on tazmaniandevil:
    grep -v '^$' /etc/exim/exim.conf | grep -v '^#'


Please let me know if you need any more info.

-- 
bjb at istop dot com
Open Source Weekend       http://www.osw.ca
5F82 9855 E247 1F8A 49CD  053E FB03 E77F 2A19 D707





tazmaniandevil:/etc/exim# grep -v '^#' exim.conf | grep -v '^$'
local_domains = localhost:stuffed.animals:bjb.ott.istop.com:tazmaniandevil.stuffed.animals
local_domains_include_host = true
local_domains_include_host_literals = true
relay_domains =
host_lookup = *
host_accept_relay = 127.0.0.1
trusted_users = mail
trusted_groups = mail
smtp_verify = false
gecos_pattern = ^([^,:]*)
gecos_name = $1
smtp_accept_queue_per_connection = 100
freeze_tell_mailmaster = true
received_header_text = "Received: \
         ${if def:sender_rcvhost {from ${sender_rcvhost}\n\t}\
         {${if def:sender_ident {from ${sender_ident} }}\
         ${if def:sender_helo_name {(helo=${sender_helo_name})\n\t}}}}\
         by ${primary_hostname} \
         ${if def:received_protocol {with ${received_protocol}}} \
         (Exim ${version_number} #${compile_number} (Debian))\n\t\
         id ${message_id}\
         ${if def:received_for {\n\tfor <$received_for>}}"
receiver_try_verify = true
local_interfaces = 127.0.0.1
end
local_delivery:
  driver = appendfile
  group = mail
  mode = 0660
  mode_fail_narrower = false
  envelope_to_add = true
  return_path_add = true
  file = /var/spool/mail/${local_part}
address_pipe:
  driver = pipe
  path = /usr/bin:/bin:/usr/local/bin
  return_output
address_file:
  driver = appendfile
  envelope_to_add = true
  return_path_add = true
address_reply:
  driver = autoreply
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
  suffix = ""
remote_smtp:
  driver = smtp
end
real_local:
  prefix = real-
  driver = localuser
  transport = local_delivery
system_aliases:
  driver = aliasfile
  file_transport = address_file
  pipe_transport = address_pipe
  file = /etc/aliases
  search_type = lsearch
userforward:
  driver = forwardfile
  file_transport = address_file
  pipe_transport = address_pipe
  reply_transport = address_reply
  no_verify
  check_ancestor
  check_local_user
  file = .forward
  modemask = 002
  filter
procmail:
  driver = localuser
  transport = procmail_pipe
  require_files = ${local_part}:+${home}:+${home}/.procmailrc:+/usr/bin/procmail  no_verify


localuser:
  driver = localuser
  transport = local_delivery
end
smarthost:
  driver = domainlist
  transport = remote_smtp
  route_list = "* gw.stuffed.animals byname"
  errors_to = "root"
end
*                      *           F,2h,15m; G,16h,2h,1.5; F,4d,8h
end
end
tazmaniandevil:/etc/exim#