Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have a LAMP webserver configured to serve multiple websites. Each virtual host has various PHP applications, mainly Wordpress.

When users sign up to the Wordpress sites, email is sent by PHP through to postfix, and then on to the receiver. The problem is that postfix is identifying itself to the remote server with the contents of /etc/hostname, which is not a fully qualified domain name. Some mail servers reject this and the mail bounces.

Additionally, the return path is being set to one of the vitual host domains, seemingly at random.

I could set /etc/hostname to one of the website domain names, but then the emails from the other websites would have a wrong server in the headers, and this would not fix the return-path issue.

Possibly related, apache2 says "could not determine the server's fully qualified domain name" on startup.

How do I fix this so that each website can send email without revealing the other websites hosted on the server?

Example error:

Oct 15 20:29:32 Ubuntu-1204-precise-64-minimal postfix/smtp[17214]: CD087E00DF6: to=<*****@*******.**>, relay=spool.mail.gandi.net[217.70.184.6]:25, delay=0.29, delays=0.12/0/0.09/0.07, dsn=5.5.2, status=bounced (host spool.mail.gandi.net[217.70.184.6] said: 504 5.5.2 <Ubuntu-1204-precise-64-minimal>: Helo command rejected: need fully-qualified hostname (in reply to RCPT TO command))

I have now set the FQDN in /etc/hosts and /etc/hostname, and restarted apache2 and postfix, and it still gives this same error. I don't even know where it is still getting the old hostname from as it is no longer stored anywhere on disk.

share|improve this question

2 Answers 2

up vote 1 down vote accepted

The FQDN should ideally match the reverse DNS entry for your MTA's public IP address.

main.cf:

myhostname = fully.qualified.domain.name
myorigin = /etc/mailname

Make sure /etc/mailname also has the domain name.

# cat /etc/mailname
fully.qualified.domain.name

Then:

postfix reload
postconf -n # to show currently running configuration
share|improve this answer

The accepted answer got me half way, thanks. In order to make each vhost send email with the correct return path I had to add sections like this in the apache2 vhost configurations:

<IfModule mod_php5.c>
    php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@domain.name"
</IfModule>
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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