Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

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


  1. We have a handful of hosts (running sendmail) acting as the MXs for a few domains each.
  2. Each domain is handled via the sendmail/cf /etc/mail/virtusertable, with a set of known recipients and a catch-all reject rule.
  3. Mail to postmaster on each host is aliased to root, and root is aliased to root+<host>
  4. The MX for is Google Apps, and is a simple group that forwards to the admins.
  5. Google Apps will reject some emails at the SMTP stage, usually because of illegal attachments (instead of accepting them and filing them as spam).


Given a particular spam email sent to a domain in a virtusertable entry:

  1. If the recipient address rejects the mail, then sendmail will try and send a DSN to the sender.
  2. If that sender also rejects the mail (because it's a falsified sender, and the MX for the sender rejects the mail as spam), then sendmail sends a DSN to the postmaster.
  3. The routing detailed above takes place, and...Google Apps rejects the mail as well.
  4. sendmail now gives up with a "savemail panic", and leaves the mail in the queue forever.
  5. Our mail queue fills up with garbage

Is there any way I can get sendmail to discard messages that have been rejected by the next virtusertable hop (i.e. after step 1 in the Problem description)? Or does anyone have any other solutions to this?

share|improve this question
up vote 0 down vote accepted

In the end we gave up on fixing this at the sendmail end, bit the bullet, opened our wallets and paid for Google Apps Premium which allowed us to tell GA to accept all emails from the servers acting as MXs.

share|improve this answer

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.