14

Setting up Postfix and Apache/PHP on an Ubuntu server. Mail's now going out ok with the proper domain name, but the local part display name is always "www-data" as I'm assuming Postfix uses the name of the user by default.

In the php.ini file, I was able to change the sendmail_path to sendmail_path = "/usr/sbin/sendmail -t -i -f support@example.com" but the email display name still appears as www-data . I tried specifying the display name a few different ways but that was ignored and the mail still went out as www-data.

What I'd like to be able to do is by default, have any mail with missing from, return-path, etc. headers go out as "Example Support" <support@example.com>, but I'm not sure if that's possible.

WuckaChucka
  • 375
  • 3
  • 8
  • 23

4 Answers4

14

Add in your main.cf

smtp_generic_maps = hash:/etc/postfix/generic

And create a file named /etc/postfix/generic with :

www-data support@example.com

run postmap /etc/postfix/generic to compile and reload postfix. Your send name is now support@example.com

Dom
  • 6,743
  • 1
  • 20
  • 24
7

As I understand the question, you're trying to set the full name of the sender, not the address (or, in addition to the address). In general, Postfix doesn't care what that is, and you set it when your MUA (in this case, some php script) generates the message headers. I'm not familiar with coding in php, but it looks like this is explained in the documentation for the PHP mail() function.

But if you're calling out to postfix's sendmail binary to send the message, you can use -F "Support System" to do what you want. Maybe this will have to be in the mail.force_extra_parameters setting — I'm not so clear on how php works here. (Mostly, that's the wrong thing to do anyways.)

mattdm
  • 6,600
  • 1
  • 26
  • 48
  • 1
    This works well, thank you. I usually set the headers properly when sending out through PHP mail(), etc. but wanted to set something as the default in case the headers were incorrect, etc. – WuckaChucka Dec 06 '10 at 21:12
  • 1
    Note you can use BOTH the -f and -F options to set display name and address. For example: -F "Support System" -f "support@example.com" – Liam Feb 21 '12 at 16:53
5

You should do one last thing to complete process which is @Dom has forgetten. Run the following command :

$ postmap /etc/postfix/generic

This command will be create generic.db file inside the /postfix directory.

If you don't do this, you can face of the following error output :

fatal: open database /etc/postfix/generic.db: No such file or directory

  • Does this also work for setting the return-path when the MUA is PHPmailer and PHPmailer is using `mail()`? – Gaia Oct 28 '12 at 20:05
-1

try this

/etc/apache2/envvars

User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP}

IT-Log
  • 1
  • How is that supposed to fix anything? – womble Aug 09 '18 at 06:57
  • oh sorry this part was missing.. on the envars file lookfor this export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data and change it to this export APACHE_RUN_USER=info export APACHE_RUN_GROUP=www-data – IT-Log Aug 10 '18 at 08:49