2

I have the following scenario:

  • serverA = RHEL5 using Sendmail
  • serverB = RHEL6 using Postfix
  • serverC = RHEL6 using Postfix
  • gwsmtp = relayhost
  • example.com = domain name

As we are migrating from sendmail to postfix we get some unable to relay errors.

To explain in detail:

  • From serverA to serverB I can send an email with no problem
  • From serverA to serverC I can send an email with no problem
  • From serverB to ServerA I can not send an email
  • From serverB to serverC I can not send an email

Sending an email from serverB to serverA I get the following bounce message

From MAILER-DAEMON  Tue Jul 22 10:45:24 2014
Return-Path: <>
X-Original-To: root@serverB.example.com
Delivered-To: root@serverB.example.com
Date: Tue, 22 Jul 2014 10:45:24 +0200 (CEST)
From: MAILER-DAEMON@serverB.example.com (Mail Delivery System)
Subject: Undelivered Mail Returned to Sender
To: root@serverB.example.com
Auto-Submitted: auto-replied
Content-Type: multipart/report; report-type=delivery-status;
        boundary="AF55F20DAA.1406018724/serverB"
Status: R

Part 1:
Content-Description: Notification
Content-Type: text/plain; charset=us-ascii

This is the mail system at host serverB.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                   The mail system

<ch002854@serverA.example.com>: host gwsmtp.example.com[10.39.40.164] said: 550
    5.7.1 Unable to relay (in reply to RCPT TO command)

Part 2:
Content-Description: Delivery report
Content-Type: message/delivery-status


Part 3:
Content-Description: Undelivered Message
Content-Type: message/rfc822

From root@serverB.example.com Tue Jul 22 10:45:09 2014
Return-Path: <root@serverB.example.com>
Date: Tue, 22 Jul 2014 10:45:09 +0200
To: ch002854@serverA.example.com
Subject: test
User-Agent: Heirloom mailx 12.4 7/29/08
Content-Type: text/plain; charset=us-ascii
From: root@serverB.example.com (root)

I have the following main.cf config in use on serverB

mydomain = example.com
myhostname = serverB
myorigin = $myhostname
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $myhostname.$mydomain, hpmedtsa, hpmedtsa.$mydomain
relayhost = gwsmtp.$mydomain
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
inet_protocols = all
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6.6/samples
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
transport_maps = hash:/etc/postfix/transport

And this is our sendmail makro on serverA

divert(-1)dnl
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for Red Hat Linux')dnl
OSTYPE(`linux')dnl
define(`SMART_HOST',`gwsmtp.example.com')dnl
LOCAL_NET_CONFIG
R$* < @ $* .$m. > $*    $#smtp $@ $2.$m. $: $1 < @ $2.$m. > $3
define(`confDEF_USER_ID',``8:12'')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`confDONT_PROBE_INTERFACES',true)dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
define(`confTO_IDENT', `0')dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
FEATURE(`accept_unresolvable_domains')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl

We try to have the same configuration in postfix as we have in sendmail. Any help would be greatly appreciated.

  • I just solved it to only use relay host for certain domains and directly send the email for internal hostnames. – Chris Jul 22 '14 at 9:15
1

You should migrate sendmail's "direct delivery for other host in the same domain" hack to postfix. [You reported use of smart host in both configurations]


sendmail

sendmail.mc

LOCAL_NET_CONFIG
R$* < @ $* .$m. > $*    $#smtp $@ $2.$m. $: $1 < @ $2.$m. > $3

postfix

master.cf

transport_maps = hash:/etc/postfix/transport

/etc/postfix/transport (requires compilation with postmap /etc/postfix/transport)

my.domain    :

http://www.postfix.org/postconf.5.html#transport_maps
http://www.postfix.org/transport.5.html

  • Thanks. I removed relayhost from the main.cfg and added an entry to the transport map. Everything should send directly except for the specified domain it should relay. That works perfectly. I will accept your answer. – Chris Jul 25 '14 at 14:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.