I'm trying to forward mail from my server (lets call it tacobell.com) to an external GMail account using postfix. I was following this tutorial.

The problem is when I send mail using another GMail or yahoo account to monkey@tacobell.com, and I check var/log/mail.info, nothing shows up.

However when I use sendmail in the terminal and send to the same address I get the following written into the log as well as the mail actually sending and ending up in my inbox:

Jan  4 00:02:48 Machine postfix/local[6520]: 6C82DB80C4A: to=<root@tacobell.com>, relay=local, delay=0.01, delays=0/0/0/0.01, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
Jan  4 00:02:48 Machine postfix/qmgr[6497]: 6C82DB80C4A: removed
Jan  4 00:09:58 Machine postfix/pickup[6496]: B206CB80C46: uid=0 from=<root>
Jan  4 00:09:58 Machine postfix/cleanup[6540]: B206CB80C46: message-id=<20140104050958.B206CB80C46@Machine>
Jan  4 00:09:58 Machine postfix/qmgr[6497]: B206CB80C46: from=<root@tacobell.com>, size=265, nrcpt=1 (queue active)
Jan  4 00:09:59 nightMachine postfix/smtp[6542]: B206CB80C46: to=<destemail@gmail.com>, orig_to=<monkey@tacobell.com>, relay=gmail-smtp-in.l.google.com[]:25, delay=14, delays=13/0/0.22/0.69, dsn=2.0.0, status=sent (250 2.0.0 OK 1388812199 qd7si6471164igb.62 - gsmtp)
Jan  4 00:09:59 Machine postfix/qmgr[6497]: B206CB80C46: removed

Is there a reason for this? How would I fix it?


monkey@tacobell.com destemail@gmail.com


# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = Machine
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = tacobell.com, Machine, localhost.localdomain, localhost
relayhost = 
mynetworks = [::ffff:]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
home_mailbox = mail/

#added the following for mail server :O!!
virtual_alias_domains = tacobell.com 
virtual_alias_maps = hash:/etc/postfix/virtual

Result when I do a dig tacobell.com mx query in terminal:

tacobell.com.        21600   IN      MX      10 mail.tacobell.com.

telnet tacobell.com 25

Connected to tacobell.com.
Escape character is '^]'.
220 Machine ESMTP Postfix (Ubuntu)
  • I'm not following your question.. what are you using instead of sendmail? – psusi Jan 4 '14 at 5:35
  • sorry for not clarifying, I used another gmail account and yahoo account, both did not seem to register into the log file. – bnynn Jan 4 '14 at 6:03
  • And did you get a reply saying the message could not be delivered? Did you set up the MX record for tacobell.com so that the rest of the world can find your mail server? – psusi Jan 4 '14 at 6:37
  • I would assume so. After querying dig tacobell.com mx I recieved one answer with the record mail.tacobell.com – bnynn Jan 4 '14 at 7:34
  • @bnynn sendmail from the Terminal bypasses Postfix completely, which would partly explain why that method works. We might have to see your Postfix main.cf file to sort out what's going on. Is your intention really to have all emails to addresses on your server sent to one Gmail account? – douggro Jan 4 '14 at 8:09

Gah! Terribly sorry for wasting everyone's time. The problem was a very simple error I made because of my ignorance. From the same question on another Stack Exchange site:

You've set your MX record to "mail.example.com". That means that when any mailserver tries to send mail to you, they will do a DNS lookup to find mail.example.com. Since that doesn't exist, the sending system doesn't know where to send the email. To fix this, do either of the following two things:

  1. Remove your MX record entirely. As long as you don't have an MX record, the sending system will instead do a DNS lookup for example.com, and since that does resolve to the server running your mailserver, that will work.
  2. In addition to the MX record, create an A or CNAME record for mail.example.com.

It should look like his for an A record:

mail     A

(except, of course, the IP address should be the actual IP of the server, not the loopback address)

and like this for a CNAME:

mail     CNAME example.com.
  • also, you can't use tacobell.com, you need to register your own domain, or even a sub-domain. no-ip.com will give you a subdomain for free, and will even let you enter the mx record on their site. – Thufir Jan 5 '14 at 17:16

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.