Why You Should Use A Default :fail: Address
The default email address will "catch" any mail that is sent to an invalid email address for your domain. All mail that is sent to an address that does not exist will go to the default email address. We encourage our clients to simply use :fail: as your default email address. Here is why.
Generally, the two different methods to deny email not addressed to a valid email account work a little differently.
- When using :blackhole: the email is accepted and delivered in it's entirety, then processed fully by the server (including checking against blackhole lists, checking the sender address for validity and scanning for spam or virii) before eventually being dropped.
- This wastes server bandwidth as the email data, or body, of the email is actually accepted and read into the memory of the server.
- This wastes server resources (CPU, memory and disk I/O) as the email is fully processed by the server before being finally written to /dev/null (which acutally deletes the email instead of saving it).
- Because the blackholed email is still processed as a whole by the server before it is finally deleted, if any of the usual checks and routing that any email goes through fails, such email can be placed in the server's mail queue for later re-processing. This can lead to tens of thousands of blackholed emails accumulating in the server's mail queue which in turn can cause a range of serious server performance and resource problems and will affect the normal and timely delivery of email.
- This actually breaks the SMTP RFC's because you're not notifying the sending SMTP server that the email is undelivered, which is actually a requirement.
- This causes emails that will never be delivered to become "stuck" in the server's mail queue because checks such as sender verification are still carried out when processing such emails and if they cannot complete the mail will stay saved in the server's queue and repeatedly re-processed until finally being discarded (usually 4+ days later). This can cause very large mail queues full of spam which is repeatedly processed causing severe server performance degradation.
- When using :fail: the email is never actually accepted into the server. During the initial SMTP negotiation when the sender's SMTP server connects to our SMTP server, the sending SMTP server issues a RCPT command notifying our server of the intended To: email address. Our server then checks whether the recipient email actually exists on your domain (a POP3 account, an alias or a catchall alias) and if it does not, it issues an SMTP DENY which terminates the attempt to deliver the email.
- This saves bandwidth as the email data is never received into our server
- This saves server resources as the email never has to be processed
- This complies with the SMTP RFC's because the sending SMTP server receives the DENY command
- Our server does not send a bounce message (just the DENY command)
- Our server does not send anything to the sender of the email (i.e. the address in the From: line)
- The sending SMTP server is responsible for notifying the original sender
Here is a simple explanation of what happens during the SMTP conversation
- Some other SMTP server connects to our server on port 25 and initiates an SMTP connection (EHLO command)
- Other server then sends a message saying who they're delivering a message for (MAIL FROM command)
- Other server then sends who the message is for on our server (RCPT command)
- At this point our server then checks whether the email address in the RCPT command can actually be delivered on our server. If you do not have a catchall alias configured to point to an email address (Default Address) and you have it set to :fail: the following happens:
- Our server sends back along the same connection to the sending server "Go away, no-one here" (the DENY command)
- The sender server would then normally tell their user that the attempt to email our server failed. our server does not send a "bounce" message. As far as our server is concerned, all that has happened is a little SMTP chatter and no email has been received and no bounce sent
Additionally, this is what our Exim Deny ACL does:
- If the sender server tries four email addresses that don't exist on our server the ACL disconnects the session with the sender server (DROP) and puts the IP address of the sender server into /etc/exim_deny
- If the sender server connects again, the ACL first checks /etc/exim_deny and if it finds the senders IP address there the session is immediately disconnected
How To Set Your Default To :fail:
- Point your browser to www.yourdomain.com/cpanel.
- If any security certificate alerts pop up, you can safely accept these. Our servers use a self-generated security certificate which keeps the data from the control panel secure when you visit it.
- Login to the control panel using your username and password supplied to you at sign up.
- Click the 'Mail' option, which is the very first icon.
- Next click the 'Default Address' link.
- Click the 'Set Default Address' link at the bottom of the page.
- Select the domain you wish to change the entry for from the drop box.
- Enter ':fail:' as the "To:" for unrouted mail. Don't forget the colons (:).
- Click Change.