Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I needed to let PHP send mails from my webserver to my web app users. So I installed qmail on my Debian server:

sudo apt-get install qmail

I also updated files in /etc/qmail specifing my domain name, and then I run sudo qmailctl reload and sudo qmailctl restart:

/etc/qmail/defaultdomain # Contains ''
/etc/qmail/defaulthost   # Contains ''
/etc/qmail/me            # Contains ''
/etc/qmail/rcpthosts     # Contains ''
/etc/qmail/locals        # Contains ''

Emails are sent without any problem from my PHP script to any email address, using the standard mail PHP library.

Now the problem is that if I send mail from my PHP using as sender address, I want that customer can reply to that address! And possibly, I want all mails sent to this address should be forwarded to my personal Gmail address.

At the moment qmail seems to not accept any incoming mail because of "invalid mailbox name". Here is a complete SMTP session I established with my server:

me@MYPC:~$ nc 25

250 ok
250 ok
554 sorry, invalid mailbox name(s). (#5.1.1)

I'm sure I missing something related to mailbox or alias creation, in fact I did nothing to define mailbox anywhere. But I tried to search something on the net and on the numerous qmail man pages, bot I found nothing.

share|improve this question
Is there a reason why you don't have PHP send directly to Gmail and leave qmail out of it? – John Gardeniers Sep 13 '12 at 12:37
@JohnGardeniers Yes. Read my question well. I want my email to be sent by server itself using an address that contains my web app domain. And I want my customer to write theirs to that same email address (that contains my web app domain, again). – lorenzo-s Sep 13 '12 at 13:27
up vote 2 down vote accepted

There are two basic ways for qmail to figure out how to handle the localpart of the email address. The first is to check whether there's an actual account for that name - so if you had a user called info on your server, that user would get the mail. The second way is to look for an alias file. That's a file that's called .qmail-localpart and when the server only handles one domain, that file should be in /var/qmail/alias (or /etc/qmail/alias or /var/lib/qmail/alias).

So, what you need to do is:

  • create a file called /etc/qmail/aliases/.qmail-info (or maybe /var/qmail/aliases/.qmail-info, depending on your setup)
  • that file should contain the text &

That should be all! For more information on qmail, I recommend Dave Sill's Life with qmail. There's also a qmail mailinglist, though I'm not sure how active it is - it's been a few years since I was an email sysadmin so I've left the list.

share|improve this answer
Cool. I tested a manual SMTP connection sending an email to (where lorenzo is my actual user on that server) and email has been accepted (in the log: delivery 2: success: did_0+0+1/). I have no idea where that email has been stored, btw! Now I try to set up an alias. – lorenzo-s Sep 13 '12 at 9:28
Great! It works. I edited your answer because I found aliases definition in another place. My only question now is... When not forwarded, where messages to are stored? – lorenzo-s Sep 13 '12 at 9:51
I found them in /var/mail. Cool. Thank you very much @JennyD ! – lorenzo-s Sep 13 '12 at 10:23
Glad it worked! I feel almost sentimental answering questions about the mail system I used to work with some years ago :-) – Jenny D Sep 13 '12 at 10:25

Your Answer


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.