<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3517252440880462771</id><updated>2024-11-01T08:02:46.905-04:00</updated><category term="email"/><category term="DNS"/><category term="MX records"/><category term="RBL"/><category term="SPF record"/><category term="email routing"/><category term="smtp"/><category term="A records"/><category term="CNAME records"/><category term="DNS Issues"/><category term="DSN"/><category term="IP blacklist"/><category term="IPtables"/><category term="MX record"/><category term="NDR"/><category term="OSI model"/><category term="SOA records"/><category term="Sendmail"/><category term="antispam"/><category term="aol"/><category term="border MTA"/><category term="bounce message"/><category term="email forwarding"/><category term="exchange"/><category term="feedback report"/><category term="how to read an email bounce"/><category term="how to ready a NDR"/><category term="networking"/><category term="rants"/><category term="smtp proxy"/><category term="spam"/><category term="sub domain mx"/><category term="subdomain MX"/><category term="tcpdump"/><category term="too many hops"/><title type='text'>TheEmailAuthority</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-5632263476885321186</id><published>2012-12-18T16:42:00.002-05:00</published><updated>2012-12-18T16:42:39.260-05:00</updated><title type='text'>TTL in DNS part 3</title><content type='html'>When we last talked in part 2, we were discussing what TTL is not (it is not how long the name server takes to update) and what it is (it is how long a computer takes to update&lt;b&gt; it&#39;s own, local, cache&lt;/b&gt;).&lt;br /&gt;
&lt;br /&gt;
We ended with an object lesson where www.TheEmailAuthority.com has a 1 hour TTL on it&#39;s A record, and I change the A record and shut down the server at my old IP promptly at 3 PM.&lt;br /&gt;
&lt;br /&gt;
User1 was just reading my site at 2:30, so when they go to load another page anytime after 3 and before&lt;b&gt; their own, local, cached record expires&lt;/b&gt; at 3:30 they won&#39;t be able to load the page.&lt;br /&gt;
&lt;br /&gt;
However, User2 was lucky enough to request my A record at 3:10, so they&#39;ve got twenty full minutes of Email Authority goodness while User1 is still just reading an error screen.&lt;br /&gt;
&lt;br /&gt;
We&#39;ve now seen how two users each with their own cache and their own TTL respond to DNS changes.&amp;nbsp; This simple example only used one record type, and only one &quot;hop&quot; between the client and the server.&amp;nbsp; Let&#39;s take this to the next level and try a more complex, email related, change.&lt;br /&gt;
&lt;br /&gt;
Domain1.com is changing their email server, and their online ordering system sends them emails every time someone places an order.&amp;nbsp; Because of this, they cannot afford to have &lt;b&gt;any &lt;/b&gt;down time.&amp;nbsp; We&#39;ll presume that they&#39;re open 24/7/365 so late-night and weekend migrations are out of the question.&amp;nbsp; Take these three examples into consideration, presuming the following zone file:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;domain1.com.      86400    IN      NS      ns1.domain1s-ISP.com.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;domain1.com.      86400    IN      NS      ns2.domain1s-ISP.com.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;domain1.com.      14400    IN      MX      mail.domain1.com.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;mail.domain1.com.      3600&amp;nbsp;     IN      A&amp;nbsp; 10.11.12.13.&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
Example 1: Change the MX record&lt;br /&gt;
&lt;br /&gt;
Domain1.com&#39;s email administrator sets up mail2.domain1.com and places it into the MX records.&amp;nbsp; He sends a test email from his gmail account, and it routes correctly.&amp;nbsp; However, the online ordering emails are not coming through to mail2.domain1.com.&lt;br /&gt;
&lt;br /&gt;
This is because the online ordering server still has his old MX records cached, and is sending the order emails to the old server until it updates it&#39;s cache sometime in the next 4 hours.&amp;nbsp; It could be less than that depending on when the online ordering server last cached the records, but there is still an outage and the admin loses his job.&lt;br /&gt;
&lt;br /&gt;
Moral of this story: MX record changes aren&#39;t good enough.&lt;br /&gt;
&lt;br /&gt;
Example 2: Set the TTL to a low value and change the IP of the A record&lt;br /&gt;
&lt;br /&gt;
The next admin understands TTL, and logs in to his DNS interface to change the TTL in the morning before the migration that evening.&amp;nbsp; He sets the A record&#39;s TTL to 1 minute in the morning, and then changes the A record&#39;s IP address to point to the new server&lt;br /&gt;
&lt;br /&gt;
This way the cached MX records include the same A record, and the short TTL means that the connecting mail servers *should* update the IP every minute.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the owner&#39;s wife uses an AOL address, and they cache records for their own pre-set value (24+ hours), so since the owner&#39;s wife&#39;s email wasn&#39;t coming through the new admin got fired too.&amp;nbsp; He at least got a severance package...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;Example 3: Set the original server to relay mail to the new server&lt;br /&gt;
&lt;br /&gt;
The final admin understands that things don&#39;t always go according to plan, and leaves the old server online for several days after the migration.&amp;nbsp; He sets the old server to act as a mail relay though, so it&#39;s not delivering locally to any of the users (and thereby interrupting mail flow).&amp;nbsp; He waits until no legitimate email is seen in his logs for a day or so and then takes the server offline.&lt;br /&gt;
&lt;br /&gt;
This admin also could have used a mail relay service such as a hosted anti-spam service to act as the relay for extra points :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Well, that was a much longer look into TTL than anyone would ever want to know.&amp;nbsp; Hopefully you enjoyed it, and can now impress your friends (or put them to sleep) with your new-found TTL skills.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-TEA</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/5632263476885321186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2012/12/ttl-in-dns-part-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/5632263476885321186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/5632263476885321186'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2012/12/ttl-in-dns-part-3.html' title='TTL in DNS part 3'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-4794869868705013858</id><published>2012-12-07T14:18:00.000-05:00</published><updated>2012-12-07T14:19:11.806-05:00</updated><title type='text'>TTL in DNS part 2</title><content type='html'>In part 1 of this series, we discussed what TTL is, and provided a few exercises to help strengthen your understanding of TTL.&amp;nbsp; We&#39;ll pick up where we left off with our same DNS zone for domain1.com:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;domain1.com.      86400    IN      NS      ns1.domain1s-ISP.com.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;domain1.com.      86400    IN      NS      ns2.domain1s-ISP.com.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;domain1.com.      14400    IN      MX      mail.domain1.com.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;mail.domain1.com.      3600&amp;nbsp;     IN      A&amp;nbsp; 10.11.12.13. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
As we discussed, the NS records will expire 1 day after they were last cached, the MX records will expire 4 hours after they were last cached, and the A record will expire 60 minutes after it was last cached.&amp;nbsp; What does this mean for you and your planned migration?&lt;br /&gt;
&lt;br /&gt;
A common misconception about TTL is that it&#39;s the amount of time the Name Server requires to update the record.&amp;nbsp; &lt;i&gt;This is absolutely not the case&lt;/i&gt;.&amp;nbsp; Do you remember what RFC 1034 said a TTL is?&amp;nbsp; A TTL is:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;...primarily used &lt;b&gt;by resolvers&lt;/b&gt; when &lt;b&gt;they &lt;/b&gt;cache RRs.&amp;nbsp; The TTL describes &lt;b&gt;how long a RR can be cached&lt;/b&gt; before it &lt;u&gt;should be&lt;/u&gt;* discarded.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Where in there does it say that a TTL is how long a name server takes to update?&amp;nbsp; What does it say?&amp;nbsp; It says that a &lt;b&gt;DNS resolver&lt;/b&gt; (which is anything that &lt;b&gt;resolves DNS&lt;/b&gt;, your computer has a &lt;b&gt;DNS resolver&lt;/b&gt; in it) caches the records, and the TTL describes how long the &lt;b&gt;DNS resolver&lt;/b&gt; should cache the record before discarding it (and then re-requesting it).&lt;br /&gt;
&lt;br /&gt;
What this means is that (for the sake of simplicity) every computer connected to the internet has it&#39;s own local cache of websites it&#39;s visited, mail servers it&#39;s talked to, etc. and will not re-request those records until &lt;b&gt;it&#39;s own, local, cache&lt;/b&gt; expires.&amp;nbsp; TTL is how long it should* keep the records until it discards them and re-requests them.&lt;br /&gt;
&lt;br /&gt;
Object lesson time...&lt;br /&gt;
&lt;br /&gt;
UserPC1.ValuedReader.com visits www.TheEmailAuthority.com at 2:30 PM.&amp;nbsp; www.TheEmailAuthority.com has a 1 hour TTL for it&#39;s A record.&amp;nbsp; If I move the website at 3 PM, and the old IP stops serving the site, how long would it be until UserPC1.ValuedReader.com can read my site again?&lt;br /&gt;
&lt;br /&gt;
UserPC-2.ValuedReader.com visits www.TheEmailAuthority.com at 3:10 PM How long will it be until they can read the site?&lt;br /&gt;
&lt;br /&gt;
The answers and explanations will be in part three. &lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/4794869868705013858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2012/12/ttl-in-dns-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/4794869868705013858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/4794869868705013858'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2012/12/ttl-in-dns-part-2.html' title='TTL in DNS part 2'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-1451416703311432348</id><published>2012-12-07T13:44:00.001-05:00</published><updated>2012-12-07T13:44:16.009-05:00</updated><title type='text'>TTL in DNS part 1</title><content type='html'>TTL, or Time To Live, is a confusing subject for many people.  Due to DNS&#39;s distributed nature, there are many different scenarios to consider.  In this post we will explain what TTL is, and what it is not, using a real world example.&lt;br /&gt;
&lt;br /&gt;
First, I suppose we&#39;ll answer why TTL is important.  TTL can impact your email infrastructure any time you make changes to a Name Server that hosts your DNS, the A record that your mail server resolves to (for instance, when you change to a new hosting provider), or when you change your MX records (for a new hosting provider, or a new mail relay).  By no means is this a comprehensive list, but it will suffice for this example.&amp;nbsp; Since DNS records can be cached for days sometimes, it&#39;s important to understand how they work when planning a migration so you can account for several day&#39;s worth of traffic.&lt;br /&gt;
&lt;br /&gt;
How it works:&lt;br /&gt;
According to &lt;a href=&quot;http://www.ietf.org/rfc/rfc1034.txt&quot; target=&quot;_blank&quot;&gt;RFC 1034&lt;/a&gt;, &quot;DOMAIN NAMES - CONCEPTS AND FACILITIES&quot;, each DNS record (or &quot;Resource Record&quot;, &quot;RR&quot; for short) has a TTL or Time To Live. &amp;nbsp; It describes TTL as:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;TTL             which is the &lt;b&gt;time to live&lt;/b&gt; of the RR.  This field is a 32
                bit integer &lt;b&gt;in units of seconds&lt;/b&gt;, an is primarily used by
                resolvers &lt;b&gt;when they cache RRs&lt;/b&gt;.  The TTL describes &lt;b&gt;how
                long a RR can be cached&lt;/b&gt; before it &lt;u&gt;should be&lt;/u&gt;* &lt;b&gt;discarded&lt;/b&gt;.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
A &quot;Resolver&quot; is anything that resolves a DNS record.  This could be your ISP&#39;s name servers, or your local computer.  Anything that queries and &lt;b&gt;resolves DNS&lt;/b&gt; records is a &quot;&lt;b&gt;DNS Resolver&lt;/b&gt;&quot;.&lt;br /&gt;
&lt;br /&gt;
Let&#39;s take the below zone into consideration:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;domain1.com.      86400    IN      NS      ns1.domain1s-ISP.com.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;domain1.com.      86400    IN      NS      ns2.domain1s-ISP.com.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;domain1.com.      14400    IN      MX      mail.domain1.com.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;mail.domain1.com.      3600&amp;nbsp;     IN      A&amp;nbsp; 10.11.12.13.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
So, let&#39;s take our three examples above and do some &quot;real world&quot; exercises.&amp;nbsp; Remember, TTL is expressed in &lt;b&gt;seconds&lt;/b&gt;.&amp;nbsp; You might want to open your calculator app now ;-)&lt;br /&gt;
&lt;br /&gt;
If domain1.com wanted to switch their Name Server records to a different ISP, how many &lt;b&gt;days &lt;/b&gt;would it be until the NS TTL expired?&lt;br /&gt;
&lt;br /&gt;
If domain1.com wanted to add a hosted anti-spam service (which would require them to change the MX records), how many &lt;b&gt;hours &lt;/b&gt;would it take for the MX TTL to expire?&lt;br /&gt;
&lt;br /&gt;
If domain1.com wanted to upgrade their mail server and point the A record to a new IP, how many &lt;b&gt;minutes &lt;/b&gt;would it take for the A record&#39;s TTL to expire?&lt;br /&gt;
&lt;br /&gt;
Ok, so we&#39;ve gotten through the math portion of this post.&amp;nbsp; Pencils on the table please. Now we know that records can take DAYS to update depending on their TTL.&amp;nbsp; How does this impact our migration?&amp;nbsp; I&#39;ll answer in part two...&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/1451416703311432348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2012/12/ttl-in-dns-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/1451416703311432348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/1451416703311432348'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2012/12/ttl-in-dns-part-1.html' title='TTL in DNS part 1'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-4402312887486158183</id><published>2010-07-10T10:41:00.005-04:00</published><updated>2010-07-10T11:41:55.809-04:00</updated><title type='text'>Stopping spam</title><content type='html'>Albert Einstein said “We can&#39;t solve problems by using the same kind of thinking we used when we created them&quot;.  This is certainly true of spam.&lt;br /&gt;&lt;br /&gt;In the early days of email being widely adopted people were excited to use this new tool - and unaware of the threats that this new tool came with - so they handed out their email address willy-nilly.  Every site that asked them for it, they gave it.  If they wanted a personal response on a forum, they posted their email address for someone to respond to.  In order to communicate with customers, they&#39;d put their email address proudly on their &quot;Contact us&quot; page to show how &quot;tech savvy&quot; they were.&lt;br /&gt;&lt;br /&gt;Then the unthinkable happened.  People started emailing them.&lt;br /&gt;&lt;br /&gt;Not about the thing they downloaded, not in response to their forum post, or even any customers from their &quot;contact us&quot; page.  These emails were offers to buy prescription drugs or pornography.  The senders had the unfortunate duty of informing them of the death of a rich loved one in Africa somewhere, or had good news of their winning a lottery Microsoft was running right now.&lt;br /&gt;&lt;br /&gt;By the time they realized what was happening, their email address had already been abused, traded to other spammers, or sold in batches of &quot;opt in&quot; email addresses to the highest bidder.  Their new email &quot;toy&quot; rapidly became much less fun to play with.&lt;br /&gt;&lt;br /&gt;This is the &quot;kind of thinking&quot; that &quot;we used when we created (the problem)&quot;.  Email is a phenomenal tool, but it is a tool not a toy.  You wouldn&#39;t let someone who had never used a chainsaw play with yours, and you wouldn&#39;t use a bandsaw to hammer a nail.  Tools have purposes, and misuse can be dangerous.&lt;br /&gt;&lt;br /&gt;So, what do we do?  What&#39;s the &quot;right&quot; way of thinking we should start using?&lt;br /&gt;&lt;br /&gt;1. Protect the email addresses you have.&lt;br /&gt;&lt;br /&gt;Don&#39;t give it out to just anybody, and block unauthorized access to it.  Use a &lt;a href=&quot;http://www.spamstopshere.com/&quot;&gt;spam blocker&lt;/a&gt; with not just a high block rate, but that also won&#39;t block your real email.  This will save untold amounts of time (and therefore money) troubleshooting issues or even just searching through your junk looking for legit messages.&lt;br /&gt;&lt;br /&gt;2. Use a unique email address.&lt;br /&gt;&lt;br /&gt;This doesn&#39;t always mean creating new addresses every time you want to sign up for something.   If your email address is YourUsername@YourDomain.com, try sending email to YourUsername+Whatever@YourDomain.com.  If you receive it, you can do this when you sign up for things online and use something unique for each.&lt;br /&gt;&lt;br /&gt;For instance,  YourUsername+TheEmailAuthority@YourDomain.com if you sign up for a newsletter from me or YourUsername+TigerDirect@YourDomain.com if you sign up with Tiger Direct.&lt;br /&gt;&lt;br /&gt;This will allow you to see WHO has compromised your email address, and also set up filtering rules if one of your &quot;new addresses&quot; gets compromised.&lt;br /&gt;&lt;br /&gt;3. Use a &quot;disposable&quot; email address.&lt;br /&gt;&lt;br /&gt;Ugh.  We live in such a disposable culture.  Disposable razors, disposable diapers, disposable this, that and something else.  You mean to tell me there are disposable email addresses now too?!?!  Yes.  And they have a GREAT purpose.&lt;br /&gt;&lt;br /&gt;When you sign up for a service, or a newsletter, coupons, etc you WANT to continue to receive emails from them.  If you didn&#39;t, you wouldn&#39;t have signed up, right?  Well, what about all of the myriad of websites that you need to give them your email address just to sign up and then you never want to receive another email from them, EVER?  Use a disposable address, that&#39;s what.&lt;br /&gt;&lt;br /&gt;Keep in mind, password resets, changes in TOSes and other vital email will go to this address as well, so don&#39;t use it for everything, but it&#39;s a great addition to your privacy protecting arsenal.  Someone could guess to strip off everything after the &quot;+&quot; sign if you use the method above, but they&#39;ll never guess the real address associated to a completely fake address.&lt;br /&gt;&lt;br /&gt;There are several services out there.  I&#39;ve used several, and I like &lt;a href=&quot;http://www.mailinator.com/&quot;&gt;Mailinator,&lt;/a&gt; but you can find a ton with this &lt;a href=&quot;http://www.google.com/search?q=disposable+email+address&quot;&gt;Google search.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, here&#39;s the breakdown:&lt;br /&gt;&lt;br /&gt;Give your real email address to friends, family and business partners.&lt;br /&gt;Give your &quot;+&quot; address to sites you need to have ongoing communication with, but aren&#39;t in your immediate &quot;circle of friends&quot;.  Examples are stores, newsletters, blogs/websites, etc.&lt;br /&gt;Use a disposable address for anyone you only need to communicate with once.&lt;br /&gt;&lt;br /&gt;Using these simple steps will help keep your inbox clean and your privacy protected.  To help protect against everything else, you need a good &lt;a href=&quot;http://www.spamstopshere.com/&quot;&gt;antispam service&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://theemailauthority.com/&quot;&gt;-TEA&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/4402312887486158183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/07/stopping-spam.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/4402312887486158183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/4402312887486158183'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/07/stopping-spam.html' title='Stopping spam'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-5320175652926643666</id><published>2010-07-08T20:31:00.000-04:00</published><updated>2010-07-09T10:17:53.384-04:00</updated><title type='text'>Bounce message spam</title><content type='html'>There&#39;s a new spam in the wild claiming to be &lt;a href=&quot;http://theemailauthority.blogspot.com/2010/05/how-to-read-bounce-message.html&quot;&gt;bounce messages&lt;/a&gt; to messages that you&#39;ve sent, but that actually send you to a meds spammer&#39;s site.  They&#39;ve been mutating for several days, so the body and attachment change fairly rapidly, but here&#39;s what one looks like as of the date of this post:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--- begin spam ---&lt;br /&gt;&lt;br /&gt;Delivery Status Notification (Failure)   Note: Forwarded message is attached.&lt;br /&gt;&lt;br /&gt;This is an automatically generated Delivery Status Notification&lt;br /&gt;&lt;br /&gt;THIS IS A WARNING MESSAGE ONLY.&lt;br /&gt;&lt;br /&gt;Delivery to the following recipient has been delayed:&lt;br /&gt;&lt;br /&gt;    user@domain.com&lt;br /&gt;&lt;br /&gt;Message will be retried for 2 more day(s)&lt;br /&gt;&lt;br /&gt;---end spam---&lt;br /&gt;&lt;br /&gt;Then there is an HTML attachment which redirects to the spammer&#39;s web site.&lt;br /&gt;&lt;br /&gt;It&#39;s really quite ingenious really.  Who wouldn&#39;t open a bounce, even if they didn&#39;t remember sending the original email, or maybe&lt;span style=&quot;font-style: italic;&quot;&gt; especially &lt;/span&gt;if they didn&#39;t remember sending it?&lt;br /&gt;&lt;br /&gt;Another one, this time stating that it&#39;s from &quot;mailfilter@yourdomain.com&quot;:&lt;br /&gt;&lt;br /&gt;---another spam---&lt;br /&gt;&lt;br /&gt;Note: Forwarded message is attached.&lt;br /&gt;&lt;br /&gt;An email you sent could not be delivered.&lt;br /&gt;    Subject: Hello&lt;br /&gt;&lt;br /&gt;Delivery to the following address has failed...&lt;br /&gt;    user@RecipientDomain.com&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Technical information about this permanent failure:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- Transcript of session follows --&lt;br /&gt;&lt;br /&gt;While talking to [some.server.com] :&lt;br /&gt;&lt;br /&gt;&gt;&gt;&gt; rcpt to: user@RecipientDomain.com&lt;br /&gt;&lt;&lt;&lt;&gt;: Recipient address rejected: User unknown&lt;br /&gt;&lt;br /&gt;---end spam---&lt;br /&gt;&lt;br /&gt;Users are so accustomed to worrying thet they&#39;re &quot;infected&quot; every time the get a bounce (when in fact, often it&#39;s just &quot;spoofing&quot;) that these fake spam bounces must have a huge click through rate.&lt;br /&gt;&lt;br /&gt;Although it&#39;s difficult to block &quot;backscatter&quot;, I have to imagine that these are relatively easy to block.  All the HTML attachment includes is a refresh to their site, any content based scanner should pick them up pretty easily.&lt;br /&gt;&lt;br /&gt;As for the user&#39;s perspective, the old rules (slightly modified) still pertain here.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-style: italic; color: rgb(255, 0, 0);&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-style: italic; color: rgb(255, 0, 0);&quot;&gt;If you do not know the sender, do not open the attachment.  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;With these new &quot;bounce message&quot; spams, you can modify the above rule to:&lt;br /&gt;&lt;span style=&quot;font-weight: bold; font-style: italic; color: rgb(255, 0, 0);&quot;&gt;&lt;br /&gt;If you did not send the email, do not open any attachments.  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you DO know the sender, and it&#39;s not a file you requested, call them to see if they actually sent it.  Especially if it&#39;s in the following formats: .exe, .pif, .zip, .rar, .bat, .pdf, .htm, .html.&lt;br /&gt;&lt;br /&gt;Of course, these spam messages have .htm file attachments, so the above pertains to them as well.  Although these are a simple spam, websites can be infected and spread malware through your browser.  Always exercise &lt;span style=&quot;font-weight: bold;&quot;&gt;extreme&lt;/span&gt; caution when opening .htm files.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-&lt;a href=&quot;http://TheEmailAuthority.com&quot;&gt;TEA&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/5320175652926643666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/07/bounce-message-spam.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/5320175652926643666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/5320175652926643666'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/07/bounce-message-spam.html' title='Bounce message spam'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-5085051772587589639</id><published>2010-07-08T00:56:00.000-04:00</published><updated>2013-11-23T17:15:25.631-05:00</updated><title type='text'>Spoofing</title><content type='html'>&quot;Spoofing&quot; someone&#39;s email address is really hard, right? Only the most elite hackers can do it, right?  It&#39;s not something that I can try at home, right?&lt;br /&gt;&lt;br /&gt;no, no and no.&lt;br /&gt;&lt;br /&gt;In the post &quot;&lt;a href=&quot;http://theemailauthority.blogspot.com/2010/06/testing-smtp.html&quot;&gt;Testing SMTP&lt;/a&gt;&quot; we discussed all of the commands necessary to fully deliver an email.  Nothing special, no encryption, just a plain text email (without MIME-types, etc), but an email nonetheless.  Below is the list of commands again in case you missed that post:&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------&lt;br /&gt;HELO your hostname&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;your&gt;&lt;br /&gt;&lt;wait&gt;&lt;/wait&gt;&lt;/your&gt;&lt;wait&gt;&lt;br /&gt;&lt;your&gt;&lt;your&gt;&lt;wait&gt;MAIL FROM: &lt;your&gt;&lt;your@emailaddress.com&gt;&lt;br /&gt;&lt;wait&gt;&lt;/wait&gt;&lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/your&gt;&lt;/your&gt;&lt;wait&gt;&lt;br /&gt;&lt;your&gt;&lt;your&gt;&lt;wait&gt;&lt;your@emailaddress.com&gt;&lt;wait&gt;RCPT TO: &lt;/wait&gt;&lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/your&gt;&lt;/your&gt;&lt;recipient&#39;s&gt;&lt;br /&gt;&lt;wait&gt;&lt;br /&gt;&lt;your&gt;&lt;your&gt;&lt;wait&gt;&lt;your@emailaddress.com&gt;&lt;wait&gt;&lt;recipients@emailaddress.com&gt;&lt;wait&gt;DATA&lt;br /&gt;&lt;wait&gt;&lt;/wait&gt;&lt;/wait&gt;&lt;/recipients@emailaddress.com&gt;&lt;/wait&gt;&lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/your&gt;&lt;/your&gt;&lt;wait&gt;&lt;br /&gt;&lt;your&gt;&lt;your&gt;&lt;wait&gt;&lt;your@emailaddress.com&gt;&lt;wait&gt;&lt;recipients@emailaddress.com&gt;&lt;wait&gt;&lt;wait&gt;FROM: &lt;/wait&gt;&lt;/wait&gt;&lt;/recipients@emailaddress.com&gt;&lt;/wait&gt;&lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/your&gt;&lt;/your&gt;&lt;your&gt;&lt;br /&gt;&lt;your&gt;&lt;your&gt;&lt;wait&gt;&lt;your@emailaddress.com&gt;&lt;wait&gt;&lt;recipients@emailaddress.com&gt;&lt;wait&gt;&lt;wait&gt;&lt;your@emailaddress.com&gt;TO: &lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/wait&gt;&lt;/recipients@emailaddress.com&gt;&lt;/wait&gt;&lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/your&gt;&lt;/your&gt;&lt;recipient&#39;s&gt;&lt;br /&gt;SUBJECT: test&lt;br /&gt;&lt;br /&gt;this is a test.&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;----------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;You&#39;ll notice something is missing in there.  Something important for security.  Something you do to many websites, to view your email, and often the first thing when you turn on your computer.&lt;br /&gt;&lt;br /&gt;Don&#39;t scroll down, take a guess :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There&#39;s no login/password! &lt;br /&gt;&lt;br /&gt;You could send yourself an email from GeorgeWashington@whitehouse.gov, or Bill@Microsoft.com saying whatever you like.  Of course, you&#39;re still incredibly traceable, so don&#39;t get any bright ideas about sending an email &quot;from&quot; your boss giving yourself a raise or anything.&lt;br /&gt;&lt;br /&gt;This is one way though that spammers and viruses hide their tracks or create a false sense of trust from their victim.  &lt;a href=&quot;http://theemailauthority.blogspot.com/p/spfptrrbl.html&quot;&gt;SPF&lt;/a&gt; was implemented as a direct result of this flaw in SMTP&#39;s security.&lt;br /&gt;&lt;br /&gt;Many times, spammers will &quot;spoof&quot; other users in their database of email addresses.  Spam/virus filtering after the &quot;&lt;a href=&quot;http://theemailauthority.blogspot.com/2010/05/what-is-border-mta.html&quot;&gt;Border-MTA&lt;/a&gt;&quot; results then in backscatter, or bounces from email that was not sent by you.  This is of course different than the article earlier about &lt;a href=&quot;http://theemailauthority.blogspot.com/2010/07/bounce-message-spam.html&quot;&gt;fake bounce message spam&lt;/a&gt;.  Backscatter is legitimate bounces, but sent in response to an illegitimate use of the victim&#39;s email address.&lt;br /&gt;&lt;br /&gt;Sometimes backscatter can inundate an inbox so thoroughly that it&#39;s hard to get any work done.  In cases like this, ALL bounce messages should be blocked or moved to a folder keeping them out of the inbox.  A common way to do this is to make a rule for these senders:&lt;br /&gt;&lt;br /&gt;&lt;&gt;&lt;br /&gt;postmaster@&lt;br /&gt;mailer-daemon@&lt;br /&gt;&lt;br /&gt;And that includes the following phrases:&lt;br /&gt;&lt;br /&gt;&quot;hi, this is the qmail send program&quot;&lt;br /&gt;&quot;returned mail: see transcript for details&quot;&lt;br /&gt;&quot;undeliverable mail returned to sender&quot;&lt;br /&gt;&quot;delivery status notification (failure)&quot;&lt;br /&gt;&quot;delivery status notification (delay)&quot;&lt;br /&gt;&quot;out of office autoreply&quot;&lt;br /&gt;&lt;br /&gt;and any others that come in.&lt;br /&gt;&lt;br /&gt;One of the reasons to not use a challenge-response anti-spam service is that they accept all email for your domain, then deliver &quot;challenges&quot; to which the sender must &quot;respond&quot;.  Since they accept the email, many deliver challenges to innocent users who are simply being abused by a spammer.  Therefore you&#39;ll also want to include challenge response vendors in your filter.&lt;br /&gt;&lt;br /&gt;Unfortunately, the lack of security in SMTP has been abused to no end.  That&#39;s why it&#39;s imperative for your reputation, and a good &quot;good neighbor&quot; policy to implement SPF records.  Although they&#39;re a little hard to grasp at first, They&#39;re the best way to be sure that nobody is using your email address without your permission.  Unless you&#39;ve been hacked, but that&#39;s a whole other post....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-&lt;a href=&quot;http://www.theemailauthority.com/&quot;&gt;TEA&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/5085051772587589639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/07/spoofing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/5085051772587589639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/5085051772587589639'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/07/spoofing.html' title='Spoofing'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-254940367987444991</id><published>2010-07-04T11:34:00.003-04:00</published><updated>2010-07-04T12:01:10.955-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DNS"/><category scheme="http://www.blogger.com/atom/ns#" term="DNS Issues"/><category scheme="http://www.blogger.com/atom/ns#" term="email"/><category scheme="http://www.blogger.com/atom/ns#" term="IPtables"/><category scheme="http://www.blogger.com/atom/ns#" term="networking"/><category scheme="http://www.blogger.com/atom/ns#" term="OSI model"/><category scheme="http://www.blogger.com/atom/ns#" term="Sendmail"/><category scheme="http://www.blogger.com/atom/ns#" term="tcpdump"/><title type='text'>Email and the OSI model.</title><content type='html'>All People Seem To Need Data Processing, and when it comes to networking, understanding the OSI model is imperative.  However you remember this seven layer schema, it&#39;s vital when troubleshooting difficult issues to remember them.  Use these handy dandy mnemonics to help:&lt;br /&gt;&lt;br /&gt;Please Do Not Throw Sausage Pizza Away (layer 1-7)&lt;br /&gt;All People Seem To Need Data Processing (backwards, from layer 7-1)&lt;br /&gt;Please Do Not Trust Sales People Always (1-7 again)&lt;br /&gt;&lt;br /&gt;More information can be found in A+ and Network+ cert books, and other study guides I&#39;m sure.  &lt;a href=&quot;http://en.wikipedia.org/wiki/OSI_model&quot;&gt;Wikipedia has more information here&lt;/a&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/OSI_model&quot;&gt; too&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;It&#39;s important to understand that although rare, your server logs can lie.  Your mail server runs on the Application layer, so it only &quot;sees&quot; what that layer sees.  Although of course it relies on all layers on down to the Physical layer, one single server may have several daemons running on different layers intercepting the data at different points along the way.&lt;br /&gt;&lt;br /&gt;For instance, on a *nix box, you may have Sendmail logging that it&#39;s connecting to mail.domain.com [1.2.3.4]. &lt;br /&gt;&lt;br /&gt;Sendmail made a call to the DNS resolver and pulled the MX records.  Again it called the resolver to resolve the A records listed in the MX.  Then it tries to connect, but IPtables has a static route for 1.2.3.4  to send the data to 5.6.7.8, which is now refusing the connection.&lt;br /&gt;&lt;br /&gt;Since Sendmail is running on the application layer, it doesn&#39;t log (or even see) when IP it&#39;s ACTUALLY connecting to, only where it *should* be connecting to.  In order to see the packets you&#39;re going to have to do some traffic dumps using tcpdump, tcpick or Wireshark.&lt;br /&gt;&lt;br /&gt;Of course, this is a very unique situation, either intentionally done by a sophisticated admin as a workaround or as a temporary &quot;fix&quot; for DNS issues, etc.  Either way it&#39;s a kludge, and this is why each server should keep a changelog for later reference including the exact lines entered for later grep-ability (yes, I just made that word up :-) )&lt;br /&gt;&lt;br /&gt;Also, there obviously could be many other issues with routing or other types of packet interference from router/firewalls locally to ISP related routing issues, but this was one instance that boggled me for several hours, so it stands out as an excellent reference.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.theemailauthority.com&quot;&gt;-TEA&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/254940367987444991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/07/email-and-osi-model.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/254940367987444991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/254940367987444991'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/07/email-and-osi-model.html' title='Email and the OSI model.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-6622324097816807569</id><published>2010-06-21T23:08:00.002-04:00</published><updated>2010-06-23T08:16:35.166-04:00</updated><title type='text'>Testing SMTP</title><content type='html'>Sometimes it&#39;s important to be able to manually reproduce what your computer/server is doing manually so you can see exactly where it&#39;s failing.  Troubleshooting &quot;utilities&quot; are great in that they can often diagnose hundreds of issues in less time than it would take you to troubleshoot one, but they lack the nuance sometimes necessary to accurately diagnose issues.&lt;br /&gt;&lt;br /&gt;A simple pass/fail is nice, but if you don&#39;t know WHY it&#39;s failing, what good is it?&lt;br /&gt;&lt;br /&gt;When troubleshooting email, there are websites, utilities, diagnostic messages and more designed to help figure out what&#39;s going wrong.  I have never found a single one that has been more informative than a simple SMTP session.&lt;br /&gt;&lt;br /&gt;If you have telnet on your computer, that&#39;ll work fine.  Netcat or any other command line tool that you can specify the ports to connect on will work too.&lt;br /&gt;&lt;br /&gt;On your command/shell prompt type: telnet &amp;lt;the server&#39;s IP&amp;gt; &lt;your&gt; &lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/your&gt;&lt;your&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt; &lt;/span&gt;25&lt;br /&gt;&lt;br /&gt;Then, when prompted, type the following commands:&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------&lt;br /&gt;HELO your hostname&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;&lt;your&gt;&lt;br /&gt;&lt;wait&gt;&lt;/wait&gt;&lt;/your&gt;&lt;/your&gt;&amp;lt;wait for response&amp;gt;&lt;br /&gt;&lt;your&gt;&lt;your&gt;&lt;wait&gt;MAIL FROM: &amp;lt;your email address&amp;gt;&lt;your@emailaddress.com&gt;&lt;br /&gt;&lt;wait&gt;&lt;/wait&gt;&lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/your&gt;&lt;/your&gt;&amp;lt;wait for response&amp;gt;&lt;br /&gt;&lt;your&gt;&lt;your&gt;&lt;wait&gt;&lt;your@emailaddress.com&gt;&lt;wait&gt;RCPT TO: &lt;/wait&gt;&lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/your&gt;&lt;/your&gt;&amp;lt;recipient&#39;semail address&amp;gt;&lt;br /&gt;&amp;lt;wait for response&amp;gt;&lt;br /&gt;&lt;your&gt;&lt;your&gt;&lt;wait&gt;&lt;your@emailaddress.com&gt;&lt;wait&gt;&lt;recipients@emailaddress.com&gt;&lt;wait&gt;DATA&lt;br /&gt;&lt;wait&gt;&lt;/wait&gt;&lt;/wait&gt;&lt;/recipients@emailaddress.com&gt;&lt;/wait&gt;&lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/your&gt;&lt;/your&gt;&amp;lt;wait for response&amp;gt;&lt;br /&gt;&lt;your&gt;&lt;your&gt;&lt;wait&gt;&lt;your@emailaddress.com&gt;&lt;wait&gt;&lt;recipients@emailaddress.com&gt;&lt;wait&gt;&lt;wait&gt;FROM: &lt;/wait&gt;&lt;/wait&gt;&lt;/recipients@emailaddress.com&gt;&lt;/wait&gt;&lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/your&gt;&lt;/your&gt;&amp;lt;your email address&amp;gt;&lt;br /&gt;&lt;your&gt;&lt;your&gt;&lt;wait&gt;&lt;your@emailaddress.com&gt;&lt;wait&gt;&lt;recipients@emailaddress.com&gt;&lt;wait&gt;&lt;wait&gt;&lt;your@emailaddress.com&gt;TO: &lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/wait&gt;&lt;/recipients@emailaddress.com&gt;&lt;/wait&gt;&lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/your&gt;&lt;/your&gt;&amp;lt;recipient&#39;semail address&amp;gt;&lt;br /&gt;&lt;your&gt;&lt;your&gt;&lt;wait&gt;&lt;your@emailaddress.com&gt;&lt;wait&gt;&lt;recipients@emailaddress.com&gt;&lt;wait&gt;&lt;wait&gt;&lt;your@emailaddress.com&gt;&lt;recipients@emailaddress.com&gt;SUBJECT: test&lt;br /&gt;&lt;br /&gt;this is a test.&lt;br /&gt;.&lt;br /&gt;&lt;wait&gt;&lt;br /&gt;----------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Note the additional CR/LF after the subject.  That separates the headers from the body (visible part) of the message.  It&#39;s very important.&lt;br /&gt;&lt;br /&gt;Also important is  the line with a &quot;.&quot; by itself.  This tells the recipient&#39;s server that the message is complete and to process it.&lt;br /&gt;&lt;br /&gt;On to troubleshooting....&lt;br /&gt;&lt;br /&gt;In each part above where it says &quot;wait for a response&quot; you&#39;re expecing a response from the server, either something like &quot;ok, go ahead&quot;, an error, or sometimes nothing.  Here are some examples:&lt;br /&gt;&lt;br /&gt;HELO &lt;your&gt;&lt;br /&gt;&lt;br /&gt;If there&#39;s no response, this can indicate that the server is extremely busy or that sometimes there&#39;s packet filtration between you and the server that&#39;s intercepting and silently dropping the packets.  Either way, if there&#39;s no response, there&#39;s no transmission, and therefore no email.&lt;br /&gt;&lt;br /&gt;Sometimes you&#39;ll get an error here referencing that it does not like your IP (if you&#39;re blacklisted), or that it&#39;s imposing some type of lookup on your HELO argument.  It&#39;s best to be sure thet you give your FQDN here to prevent issues.&lt;br /&gt;&lt;br /&gt;MAIL FROM: &lt;your@emailaddress.com&gt;&lt;br /&gt;&lt;br /&gt;You might get SPF errors here if your SPF record is wrong, or if your email address is blacklisted you might get a response here.&lt;br /&gt;&lt;br /&gt;RCPT TO: &lt;recipients@emailaddress.com&gt;&lt;br /&gt;&lt;br /&gt;&quot;Relaying denied&quot;, &quot;mailbox is full&quot;, or any number of other recipient level issues may result as a response to this line.  Any server that has different rules per user or domain (like a shared spam filter with different settings per domain/user) might also process here.&lt;br /&gt;&lt;br /&gt;DATA&lt;br /&gt;&lt;br /&gt;You&#39;re now giving the actual data that will be shown to the user.  Generally there won&#39;t be an issue here until you close the transmission channel (with the &quot;.&quot; on a line by itself), but anywhere you wait for a response is a potential place for errors.&lt;br /&gt;&lt;br /&gt;&quot;.&quot; (or closing the transmission channel)&lt;br /&gt;&lt;br /&gt;This is where the email in it&#39;s entirety can be scanned and processed.  Sometimes nothing will be scanned until this point, so even though SPF *could* be looked up after the &quot;mail from:&quot; command, it *might* not be until the entire message has been transmitted.  Any of the above errors can happen here as well as content based scanning of the body, etc.&lt;br /&gt;&lt;br /&gt;Some mail servers will also accept the email here, and then scan it later before delivery.  That&#39;s a horrible idea, but that doesn&#39;t stop anyone usually, so be sure to copy down any information the acceptance line gives you like the message ID, so you can reference it later if the test does not complete.&lt;br /&gt;&lt;br /&gt;Generally, you&#39;ll only be able to run this test on a border MTA unless it&#39;s your own mail server or the recipient&#39;s firewall allows you through.  This can definitely complicate troubleshooting, but if you can prove that the issue is with the border MTA, or that the border MTA accepts the email but it is not relayed it at least absolves you from any finger pointing.&lt;br /&gt;&lt;br /&gt;Once you have these commands memorized (it doesn&#39;t take long), you&#39;ll often be able to troubleshoot and diagnose issues faster than submitting tickets to your vendors.  There&#39;s nothing more frustrating than either waiting for a response only to find out you could have fixed it hours ago, or conversely that you know exactly where the error occurred, but the other admin requires &quot;proof&quot; that they should bother fixing the issue when the DSN or other logs obviously state the issue.&lt;br /&gt;&lt;br /&gt;Send a couple SMTP sessions their way and copy the session to them.  It&#39;s hard to argue with facts :-)&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.theemailauthority.com/&quot;&gt;&lt;br /&gt;-TEA&lt;/a&gt;&lt;/recipients@emailaddress.com&gt;&lt;/your@emailaddress.com&gt;&lt;/your&gt;&lt;/wait&gt;&lt;/recipients@emailaddress.com&gt;&lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/wait&gt;&lt;/recipients@emailaddress.com&gt;&lt;/wait&gt;&lt;/your@emailaddress.com&gt;&lt;/wait&gt;&lt;/your&gt;&lt;/your&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/6622324097816807569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/testing-smtp.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/6622324097816807569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/6622324097816807569'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/testing-smtp.html' title='Testing SMTP'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-4401267250771879460</id><published>2010-06-20T13:13:00.004-04:00</published><updated>2010-06-23T08:16:26.559-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="email"/><category scheme="http://www.blogger.com/atom/ns#" term="email routing"/><category scheme="http://www.blogger.com/atom/ns#" term="MX records"/><category scheme="http://www.blogger.com/atom/ns#" term="sub domain mx"/><category scheme="http://www.blogger.com/atom/ns#" term="subdomain MX"/><title type='text'>subdomain MX records</title><content type='html'>We&#39;ve all used subdomains.  The popular naming convention &quot;www.domain.com&quot; is in itself a subdomain (the subdomain &quot;www&quot; in the &quot;domain.com&quot; domain), but did you know each subdomain can also have it&#39;s own MX records?&lt;br /&gt;&lt;br /&gt;The obvious questions are &quot;why would anyone do that&quot; and &quot;how would anyone do that?&quot;.  Here&#39;s some food for thought.&lt;br /&gt;&lt;br /&gt;Way back in the day, things were simpler.  Email specifically didn&#39;t require tons of MX and A record lookups, there weren&#39;t even DNS servers to query let alone DNS record types.  Users had accounts on their local servers, and the servers had names that although understandable would be different from organization to organization.  Email addresses weren&#39;t &quot;bob@company.com&quot;, they were &quot;bob@accounting.company.com&quot; for Bob in accounting and &quot;bob@engineering.company.com&quot; for Bob the engineer.  Each organization would have their own server names, and although often they&#39;d have meaning within the organization they might be goofy to outsiders.  Also, desktop PCs were uncommon then, so you would connect to the server for almost all of your daily tasks.  Therefore, rocky@bullwinkle.company.com was literally addressing the email to the user account &quot;rocky&quot; on the server named bullwinkle.company.com.  Some places still conform to these odd naming conventions.  I knew someone who went to the University of Michigan&#39;s Engineering  school who had an email address @engin.umich.edu.  It took me months to  figure out that &quot;engin&quot; was for &quot; school of ENGINeering&quot;.  &lt;br /&gt;&lt;br /&gt;Nowadays it&#39;s slightly different.  &quot;company.com&quot; generally will have all of it&#39;s users email addresses directly @company.com, but not always.  For instance, let&#39;s say there&#39;s a domain BigCompany.com.  BigCompany.com is all over the world, and they want their customers to know that they&#39;re dealing with their &quot;local&quot; office.  So, they may have John@USA.BigCompany.com and John@Canada.BigCompany.com, but they&#39;re totally different Johns, in totally different regions.&lt;br /&gt;&lt;br /&gt;Let&#39;s say they not only want to have email addresses at the country level, but also at the state level.  They could also have John@California.USA.BigCompany.com and John@NewYork.USA.BigCompany.com.&lt;br /&gt;&lt;br /&gt;Now, most companies wouldn&#39;t do this because they don&#39;t want to confuse their customers by having them talk to the wrong John all the time, but you commonly see this with schools for instance.  They might be something like &quot;Principal@SchoolName.NY.k12.us&quot;.&lt;br /&gt;&lt;br /&gt;Ok, now we know why someone would have subdomain MX records.  Either to conform to a legacy naming convention or to help routing between different regions/offices.  Now the question is &quot;how do we do that&quot;?   The answer shouldn&#39;t be too surprising, we make MX records for each subdomain.&lt;br /&gt;&lt;br /&gt;Just like each domain name can have MX records (and &lt;span style=&quot;font-weight: bold;&quot;&gt;should&lt;/span&gt; have them if email is addressed to it), subdomains can get in on the fun too with their own set of records.  Let&#39;s say you have an email address webmaster@www.domain.com, but you don&#39;t want to run a mail server on the same box as your web server (which is a good idea btw!).  You can simply have MX records for www.domain.com go to the same server as your regular domain like this:&lt;br /&gt;&lt;br /&gt;Host     Priority     Record&lt;br /&gt;domain.com   10   mail.domain.com&lt;br /&gt;www.domain.com   10    mail.domain.com&lt;br /&gt;&lt;br /&gt;Now, you may have to create a separate zone for this subdomain if you&#39;re running your own DNS server, or if you&#39;re using some provider&#39;s interface they may require additional steps to configure this but most of the time it&#39;s possible.  Some services don&#39;t allow subdomain records to be made if you&#39;re using their DNS, but DNS hosting is cheap.  If they don&#39;t allow this, and they have ridiculously bad support who won&#39;t discuss the finer side of RFCs with you (cough, &lt;span style=&quot;font-weight: bold;&quot;&gt;yahoo.com&lt;/span&gt;,&lt;span style=&quot;font-weight: bold;&quot;&gt; &lt;/span&gt;cough),  just change your DNS host.  Outside of this issue, you&#39;re likely to find other reasons to switch providers later if you&#39;re not already disgusted with their lack of support.&lt;br /&gt;&lt;br /&gt;It&#39;s important to keep in mind, that this is not something you can do after the fact.  Once your users have you in their address book as user@domain.com, they will ALWAYS query domain.com&#39;s MX records regardless of whether you add an alias for user@sub.domain.com unless of course you choose to change your email address and deal with all of the headaches associated with that.&lt;br /&gt;&lt;br /&gt;It also should not be used after the border MTA using address rewriting without serious contemplation.  Although there are some excellent reasons to have your border MTA rewrite the delivery addresses to &quot;user@sub.domain.com&quot; while the rest of the world still emails the user@domain.com&quot; address, there are serious considerations to take into account at the very least the reply-to address, or sender rewriting back to user@domain.com on the way out.&lt;br /&gt;&lt;br /&gt;This is not likely something that many admins have dealt with before, and could be conceptually confusing at first.  Don&#39;t worry, it&#39;s nothing different than what you do on the main domain, it&#39;s just a second place to deal with.  User@domain.com queries domain.com&#39;s MX and sends them there.  User@Sub.Domain.com queries sub.domain.com&#39;s MX and sends them there.  It&#39;s pretty simple actually once you get your head around it. :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.theemailauthority.com/&quot;&gt;-TEA&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/4401267250771879460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/subdomain-mx-records.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/4401267250771879460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/4401267250771879460'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/subdomain-mx-records.html' title='subdomain MX records'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-986165613388001638</id><published>2010-06-20T11:53:00.004-04:00</published><updated>2013-11-23T17:15:06.938-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="A records"/><category scheme="http://www.blogger.com/atom/ns#" term="CNAME records"/><category scheme="http://www.blogger.com/atom/ns#" term="DNS"/><category scheme="http://www.blogger.com/atom/ns#" term="email"/><category scheme="http://www.blogger.com/atom/ns#" term="email routing"/><category scheme="http://www.blogger.com/atom/ns#" term="MX records"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA records"/><title type='text'>DNS doesn&#39;t end at MX you know...</title><content type='html'>&lt;span id=&quot;wimbt&quot;&gt;Ok, so you understand MX records, you&#39;re ready to take on the world, right?&lt;br /&gt;&lt;br /&gt;Not quite yet.  Patience young grasshopper.&lt;br /&gt;&lt;br /&gt;So, you&#39;re sending email to user@domain.com, you queried dns1.domain.com for the MX records and now you&#39;ve got these MX records:&lt;br /&gt;&lt;br /&gt;Host               Priority     Record&lt;br /&gt;domain.com       10        mail1.domain.com&lt;br /&gt;domain.com       20        mail2.domain.com&lt;br /&gt;domain.com       30        mail3.domain.com&lt;br /&gt;&lt;br /&gt;Ummm, so, computers don&#39;t speak English, they don&#39;t know what a &quot;mail1.domain.com&quot; is.  They want digits that can turn into nice 1s and 0s that they can compute .  What&#39;s a poor mail server to do with this stuff?&lt;br /&gt;While we&#39;re at it, how did we even know to talk to dns1.domain.com to get these records?&lt;br /&gt;Also, once we knew to talk to dns1.domain.com, we&#39;re back to the first question of how does the mail server know WTH a &quot;dns1.domain.com&quot; is, and where are the 1s and 0s it needs?&lt;br /&gt;&lt;br /&gt;I is so confus :-(&lt;br /&gt;&lt;br /&gt;Don&#39;t worry, there&#39;s more to an email&#39;s life than just MX records.  There&#39;s lots of types of records including type A, type SOA, and type CNAME.&lt;br /&gt;&lt;br /&gt;I. Type A records&lt;br /&gt;&lt;br /&gt;Type A records (&quot;A&quot; for &quot;Address&quot;) turn &quot;mail1.domain.com&quot; into a nice pretty number (the &quot;IP Address&quot; or &quot;Internet Protocol address&quot;) for our mail server (and all other computers) to compute.  The A record might look like this:&lt;br /&gt;&lt;br /&gt;Mail1.domain.com     IN     A     10.0.100.28&lt;br /&gt;&lt;br /&gt;Now we can see that the first MX record for domain.com has a name of &quot;mail1.domain.com&quot;, but that name actually resides at 10.0.100.28.  This number means nothing to most of us silly humans, but to a computer it&#39;s a nice string of digits that it can compute and then connect to.&lt;br /&gt;&lt;br /&gt;TCP/IP and all of it&#39;s routing mechanisms are beyond the scope of this article, so you&#39;ll just have to make do with &quot;once you have the IP you can connect to the server&quot;.  :-P pbbt!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;II. SOA records&lt;br /&gt;&lt;br /&gt;OK, so this is a little backwards since you need the SOA records before you can get the MX records or A records, but you should already understand MX records, and you need to understand A records before you can get SOA records.&lt;br /&gt;&lt;br /&gt;SOA records are the &quot;Start Of Authority&quot; records.  There are literally millions of DNS servers in the world.  How do you know which ones are responsible for the records you&#39;re querying?  Well, that&#39;s where SOA records come into play.  SOA records are given by the &quot;root&quot; name servers to offload queries to other DNS servers, and to provide a distributed architecture that is easier to maintain and provides more fault tolerance.&lt;br /&gt;&lt;br /&gt;Root name servers are the biggest and baddest name servers in the world.  There are two sets of them for your .com, .net, and the like, one at root-servers.net and one at gtld-servers.net.  If queried, they will either reference the other one (like a father who says &quot;go ask your mother&quot;, or vice-versa) or they will give the DNS server registered with them as authoritative.&lt;br /&gt;&lt;br /&gt;You can play with this yourself using nslookup on Windows or dig on *nix.&lt;br /&gt;&lt;br /&gt;Once the root servers give the name of the DNS server, that server&#39;s A record must be resolved then it can be queried for the MX, A, CNAME, or any other type of records you wish.&lt;br /&gt;&lt;br /&gt;III. CNAME records&lt;br /&gt;&lt;br /&gt;CNAME records are basically aliases to A records.  For instance, &quot;www.domain.com&quot; might be the same server as &quot;ftp.domain.com&quot;, so you could make ftp.domain.com a CNAME for www.domain.com, then an additional query would happen for the A record &quot;www.domain.com&quot; which when resolved would then allow transmission.&lt;br /&gt;&lt;br /&gt;Typically, CNAMEs should not be in MX records.  There&#39;s a ton of debate over whether they&#39;re allowed in the MX at all according to RFCs.   I&#39;m not going to enter that debate, but I will say that there are enough mail servers on the planet that don&#39;t respect CNAMEs in the MX that you should do everything in your power not to put them there.   At the very least it adds an additional query to your DNS server (to get the IP of the A record in the CNAME), so for simplicity&#39;s sake I&#39;d recommend against it as well.&lt;br /&gt;&lt;br /&gt;One time a CNAME might be used is if you have a server that accepts email that does not have MX records.  Originally, user@domain.com was actually literally user@some.server.com.  You could even address email to an IP address like &quot;user@10.0.100.28&quot; for example and it would work.  Most mail servers will fall back to this convention if MX records cannot be resolved, so you could for instance have a CNAME errors.domain.com pointing to &quot;mail1.domain.com&quot;, then you could email &quot;www-server@errors.domain.com&quot;, &quot;email-server@errors.domain.com&quot;, etc which would then actually send the email to mail1.domain.com.&lt;br /&gt;&lt;br /&gt;NOTE:  this does not alias other record types, only A records.  For instance, setting domain2.com as a CNAME for domain1.com DOES NOT make domain2.com&#39;s MX records the same as domain1.com&#39;s.  CNAME records are not copies of the zone, they are address aliases and will only route traffic to the A record they point to.  Additionally, it&#39;s technically against RFCs to have both MX and CNAMEs for the same zone.  I.e. if you have www.domain.com as a CNAME, you can&#39;t also have MX for www.domain.com.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, there you have it.  MX record resolution requires SOA lookups, which require their own A record resolution.  MX records include A records typically, which require their own resolution by the SOA.  CNAMEs shouldn&#39;t be used in the MX, and can&#39;t have their own MX, but they can still be used to route email in a pinch.&lt;br /&gt;&lt;br /&gt;Try using nslookup or dig to do your own DNS recursion.  Once you realize how many DNS queries each email requires, be sure to give your DNS server a big pat on the back for so many jobs well done.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.theemailauthority.com/&quot;&gt;-TEA&lt;/a&gt;&lt;/span id=&quot;wimbt&quot;&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/986165613388001638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/dns-doesnt-end-at-mx-you-know.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/986165613388001638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/986165613388001638'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/dns-doesnt-end-at-mx-you-know.html' title='DNS doesn&#39;t end at MX you know...'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-1648262276343338351</id><published>2010-06-10T22:34:00.002-04:00</published><updated>2010-06-23T08:16:01.406-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aol"/><category scheme="http://www.blogger.com/atom/ns#" term="feedback report"/><category scheme="http://www.blogger.com/atom/ns#" term="IP blacklist"/><category scheme="http://www.blogger.com/atom/ns#" term="rants"/><category scheme="http://www.blogger.com/atom/ns#" term="spam"/><title type='text'>Email Feedback Report for IP</title><content type='html'>Really AOL, really?&lt;br /&gt;&lt;br /&gt;Over the years I have seen remarkable feedback reports from AOL.  Everything from obvious user error like newsletters, etc. to bills that the user did not want to receive (but were completely legit), to those &quot;chain letters&quot; telling you that you and your entire family will die painfully unless you forward the message to 200 of your closest friends.&lt;br /&gt;&lt;br /&gt;Recently, I saw a feedback report for a read receipt.  A READ RECEIPT.  Someone sent an email, got the read receipt back and then reported it as spam.  That part doesn&#39;t surprise me (nothing much does any more), but a provider that has been in business as long as AOL (remember when they &quot;were&quot; the WWW for many Americans?) not having processes in place to deal with a user error this remarkably dumb amazes me.&lt;br /&gt;&lt;br /&gt;First, their entire concept of blacklisting IPs is so 1999.  It&#39;s 2010, use a content scanner!&lt;br /&gt;&lt;br /&gt;Second, relying on their users to create an automated IP blacklist for them misplaces the burden onto their customer base, rather than trained techs (who can tell the difference between spam and a read receipt) and simultaneously creates a worse experience for all of their other users when &quot;spam button&quot; happy users wreck the IPBL for everyone else.&lt;br /&gt;&lt;br /&gt;Third, if you&#39;re going to have an IP blacklist, and it&#39;s going to automatically block based on user reports, AT LEAST try to filter out obvious user error.  &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;A READ RECEIPT!&lt;/span&gt;  Their logs show the message leaving, and the message clearly states it&#39;s a read receipt, the headers even had the appropriate &quot;notification&quot; message type.  AOL, do you really have to make it this easy to poke fun at you?&lt;br /&gt;&lt;br /&gt;AOL, I would like to offer my services to you.  I&#39;ll even do it for half my hourly rate.  Just please, please, please revisit this horribly planned out mechanism and get the correct processes in place to handle your spam problems.&lt;br /&gt;&lt;br /&gt;While you&#39;re at it, could you please fix your &lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;outbound&lt;/span&gt; spam problems too?  How many of your customers are really in Nigeria that know dead rich people with my last name?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.theemailauthority.com/&quot;&gt;-TEA&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/1648262276343338351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/email-feedback-report-for-ip.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/1648262276343338351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/1648262276343338351'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/email-feedback-report-for-ip.html' title='Email Feedback Report for IP'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-2855763446826165050</id><published>2010-06-09T21:33:00.004-04:00</published><updated>2017-01-05T15:50:01.628-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DNS"/><category scheme="http://www.blogger.com/atom/ns#" term="email"/><category scheme="http://www.blogger.com/atom/ns#" term="MX record"/><title type='text'>What&#39;s an &quot;MX Record&quot;?</title><content type='html'>Unfortunately,  &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;MX&lt;/span&gt; records are one of the most misunderstood points of email transmission.  &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;Padawan&lt;/span&gt; mail admins have many misconceptions.  Here are a few:&lt;br /&gt;
&lt;br /&gt;
1. That the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;MX&lt;/span&gt; records have a specific naming convention like mail.domain.com or smtp.domain.com&lt;br /&gt;
&lt;br /&gt;
2. That every server that handles email must be in the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;MX&lt;/span&gt; record&lt;br /&gt;
&lt;br /&gt;
3. That the destination &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;MTA&lt;/span&gt; must be in the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;MX&lt;/span&gt; record&lt;br /&gt;
&lt;br /&gt;
4. That an &quot;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;MX&lt;/span&gt; server&quot; is another name for a  mail server&lt;br /&gt;
&lt;br /&gt;
5. That a &quot;reverse &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;DNS&lt;/span&gt;&quot; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;lookup&lt;/span&gt; queries the sending domain&#39;s &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;MX&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Now that we know a few of the things an &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;MX&lt;/span&gt; record is NOT, let&#39;s take a look at what it IS.&lt;br /&gt;
&lt;br /&gt;
An &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;MX&lt;/span&gt; record is simply an entry in a domains &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;DNS&lt;/span&gt; zone.  Typically they consist of one or more &quot;A&quot; type records (which then require resolution) with priorities assigned to them.  Also, as with all &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_13&quot;&gt;DNS&lt;/span&gt; record a &lt;a href=&quot;http://theemailauthority.blogspot.com/2012/12/ttl-in-dns-part-1.html&quot; target=&quot;_blank&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_14&quot;&gt;TTL&lt;/span&gt; value&lt;/a&gt;, or Time To Live, is assigned to them as a whole (and to each type A record as well).&lt;br /&gt;
&lt;br /&gt;
They are simply references to the &lt;a href=&quot;http://theemailauthority.blogspot.com/2010/05/what-is-border-mta.html&quot; target=&quot;_blank&quot;&gt;border &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_15&quot;&gt;MTA&lt;/span&gt;(s)&lt;/a&gt; responsible for relaying incoming email for a domain.   When an email server is asked to email user@domain.com, it queries the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_16&quot;&gt;DNS&lt;/span&gt; servers responsible for the domain (often by &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_17&quot;&gt;recursing&lt;/span&gt; to the root name servers looking for &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_18&quot;&gt;SOA&lt;/span&gt; records) and asks for the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_19&quot;&gt;MX&lt;/span&gt; records.  Typically, the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_20&quot;&gt;MX&lt;/span&gt; records consist of type A records so then another query is given to find the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_21&quot;&gt;IP&lt;/span&gt; addresses associated to them.&lt;br /&gt;
&lt;br /&gt;
Let&#39;s take this story as an example.  Let&#39;s say you&#39;re at a friends house discussing a long lost friend.&lt;br /&gt;
&lt;br /&gt;
Friend: Hey I bumped into John last week at the mall&lt;br /&gt;
You: Really, I haven&#39;t seen him in years!  Did you get his phone number?&lt;br /&gt;
Friend: Yes, but I don&#39;t remember it.  You&#39;ll have to look in my phone.&lt;br /&gt;
You: Where&#39;s your phone? (recursive &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_22&quot;&gt;DNS&lt;/span&gt; query to the root NS)&lt;br /&gt;
Friend: Over on the table&lt;br /&gt;
You: What&#39;s his entry? (&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_23&quot;&gt;MX&lt;/span&gt; record query)&lt;br /&gt;
Friend: It&#39;s &quot;John Doe&quot;&lt;br /&gt;
You open the phone and look at &quot;John Doe&#39;s&quot; entry (type A record &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_24&quot;&gt;lookup&lt;/span&gt;) and call him on your phone. (transmission)&lt;br /&gt;
&lt;br /&gt;
This simple story, that has probably never actually happened to any of us but should be able to be understood by most of us, is as simple as &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_25&quot;&gt;MX&lt;/span&gt; gets.  Of course there&#39;s more to it (&lt;a href=&quot;http://theemailauthority.blogspot.com/2012/12/ttl-in-dns-part-1.html&quot; target=&quot;_blank&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_26&quot;&gt;TTL&lt;/span&gt; values&lt;/a&gt;, &quot;&lt;a href=&quot;http://theemailauthority.blogspot.com/2010/05/what-is-border-mta.html&quot; target=&quot;_blank&quot;&gt;border &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_27&quot;&gt;MTAs&lt;/span&gt;&lt;/a&gt;&quot;, lots more &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_28&quot;&gt;DNS&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_29&quot;&gt;lookups&lt;/span&gt;, and any number of issues routing), but those are really more relegated to the realm of troubleshooting, and not something to worry our pretty little heads with right now :-)&lt;br /&gt;
&lt;br /&gt;
Once it&#39;s been determined where to send the email, the transmission ensues and sooner or later after being relayed,  archived, scanned for spam/viruses, and many more operations the email will eventually find it&#39;s home at the destination server and be picked up by the client to be read by the user.&lt;br /&gt;
&lt;br /&gt;
Just think of all of the servers across the globe that played a part in getting your email to it&#39;s destination sometime when you&#39;re sending email.  It really is amazing how it all comes together so seamlessly.&lt;br /&gt;
&lt;br /&gt;
The next time you get the call from your user wondering why it took five seconds to get an email try explaining this to them.  Boggle their mind a little bit ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.theemailauthority.com/&quot;&gt;-TEA&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/2855763446826165050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/whats-mx-record.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/2855763446826165050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/2855763446826165050'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/whats-mx-record.html' title='What&#39;s an &quot;MX Record&quot;?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-147281736032913862</id><published>2010-06-03T23:50:00.001-04:00</published><updated>2010-06-23T08:15:25.612-04:00</updated><title type='text'>Temporary and permanent errors</title><content type='html'>Typically, you&#39;ll only see two types of errors &quot;Temporary&quot; and &quot;Permanent&quot; errors.  Standard codes can be found in &lt;a href=&quot;http://www.rfc-editor.org/rfc/rfc2821.txt&quot;&gt;RFC 2821&lt;/a&gt; section 4.2.3, but there are many different servers that reply with alternate codes as well.&lt;br /&gt;&lt;br /&gt;Temporary errors are expressed through 4.x.x error codes.  These might be due to the recipient server being busy, the recipient server greylisting the sender, or closing the connection prematurely.  The sending server can also generate 4.x.x errors if they can&#39;t resolve the recipient&#39;s DNS, the recipient&#39;s server is offline, the recipient server is connected to and responds but does not fully accept the email or any other issue that does not result in the recipient server accepting the email (with a 2.x.x status) or outright rejecting the message (with a 5.x.x message).  Sometimes firewalls intercept the packets and mangle them or drop them, this can also cause a 4.x.x error since either the recipient&#39;s server does not receive the correct packets to accept the message and times out the connection eventually, or the sending server does not know that the recipient&#39;s server accepted the message and also times out the connection eventually.&lt;br /&gt;&lt;br /&gt;While temporary errors occur due to transmission issues or issues that are expected to resolve themselves typically, Permanent errors mean that the server was connected to, delivered a response, and that that response was that it refused to accept the message... EVER.&lt;br /&gt;&lt;br /&gt;Typical reasons for this are that the mailbox is full or nonexistent, the message was blocked as spam/virus, the mail server has vital errors or a policy violation such as non-local delivery for the domain, too many hops per message, or others.  This error means that the server is online, listening for connections, accepted your connection but then actively refused to accept the message.  It&#39;s the difference between sending someone you don&#39;t want to talk to to voicemail versus picking up the phone and telling them to stop calling.  There is no confusion.&lt;br /&gt;&lt;br /&gt;A sending server can also generate a permanent error as a result of timing out the message after repeated temporary errors, but this will typically be hours or days later, whereas a recipient server&#39;s rejection is almost instant usually.  Obviously there will also be repeated 4.x.x errors in the logs to reference.&lt;br /&gt;&lt;br /&gt;Understanding the difference between these errors is also important to determine where to troubleshoot first.  A permanent error is almost always the recipient server, whereas a temporary error could be one of many things.&lt;br /&gt;&lt;br /&gt;Senders side:&lt;br /&gt;&lt;br /&gt;DNS issues (queries)&lt;br /&gt;ISP/routing issues&lt;br /&gt;Firewall issues (packet filtering)&lt;br /&gt;Addressing issues&lt;br /&gt;&lt;br /&gt;Recipient&#39;s side:&lt;br /&gt;&lt;br /&gt;DNS issues (serving)&lt;br /&gt;ISP/routing issues&lt;br /&gt;Firewall issues&lt;br /&gt;Greylisting&lt;br /&gt;Rate Limiting&lt;br /&gt;Hardware issues&lt;br /&gt;NAT issues&lt;br /&gt;and many more....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As always, the bounce itself will have a lot of good information, the &quot;&lt;a href=&quot;http://theemailauthority.blogspot.com/2010/05/how-to-read-bounce-message.html&quot;&gt;How to read a bounceback&lt;/a&gt;&quot; post should be the first place to check if a NDR/DSN has been generated, but otherwise use of your troubleshooting tools in conjunction with the log data should provide plenty of information to determine the source of the issue.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.theemailauthority.com/&quot;&gt;TEA&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/147281736032913862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/temporary-and-permanent-errors.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/147281736032913862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/147281736032913862'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/temporary-and-permanent-errors.html' title='Temporary and permanent errors'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-92296796254909521</id><published>2010-06-03T22:15:00.001-04:00</published><updated>2010-06-23T08:15:13.047-04:00</updated><title type='text'>Reading message headers</title><content type='html'>The routing of the email section is reasonably straightforward if you keep in mind that they are backwards.&lt;br /&gt;&lt;br /&gt;  1. Look for lines in the headers that say &quot;Received: from&quot;.&lt;br /&gt;  2. Look for the last &quot;Received: from&quot; line and read upwards.&lt;br /&gt;&lt;br /&gt;For instance, let’s assume we’re tracing an email with the following headers:&lt;br /&gt;&lt;br /&gt;Received: from unknown (HELO BorderMTA.MyDomain.com) (9.10.11.12) by mail.MyDomain.com with SMTP; 13 Feb 2009 23:23:29 +0200&lt;br /&gt;Received: from outbound.sendingdomain.com (outbound.sendingdomain.com [5.6.7.8]) by BorderMTA.MyDomain.com (8.14.1/8.14.1) with ESMTP id n1DLNSS7000915 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 13 Feb 2009 16:23:28 -0500&lt;br /&gt;Received: from mail.sendingdomain.com (mail.sendingdomain.com [1.2.3.4]) by outbound.sendingdomain.com (8.14.1/8.14.1) with ESMTP id n1DLNQgX009122 for ; Fri, 13 Feb 2009 16:23:26 -0500&lt;br /&gt;Received: from 10.0.0.100 ([10.0.0.100]) by mail.sendingdomain.com ([10.0.0.1]) with Microsoft Exchange Server HTTP-DAV ; Fri, 13 Feb 2009 21:23:21 +0000&lt;br /&gt;&lt;br /&gt;When read from bottom to top says it went from 10.0.0.100 to mail.sendingdomain.com in the first line: “Received: from 10.0.0.100 ([10.0.0.100]) by mail.sendingdomain.com ([10.0.0.1])”&lt;br /&gt;&lt;br /&gt;  1. From mail.sendingdomain.com to outbound.sendingdomain.com in the second line: “Received: from mail.sendingdomain.com (mail.sendingdomain.com [1.2.3.4]) by outbound.sendingdomain.com “&lt;br /&gt;  2. From outbound.sendingdomain.com to BorderMTA.MyDomain.com in the third line: “Received: from outbound.sendingdomain.com (outbound.sendingdomain.com [5.6.7.8]) by BorderMTA.MyDomain.com”&lt;br /&gt;  3. And finally it&#39;s delivered from BorderMTA.MyDomain.com to mail.MyDomain.com in the last (topmost) line: “Received: from unknown (HELO BorderMTA.MyDomain.com) (9.10.11.12) by mail.MyDomain.com”&lt;br /&gt;&lt;br /&gt;You can tell that the sender has an outbound email scanner (outbound.sendingdomain.com) after their mail server and that you have a border MTA before your main mail server.&lt;br /&gt;&lt;br /&gt;Now that we know what we&#39;re reading, it&#39;s trivial to troubleshoot routing issues or delays that may not have been permanent errors or delayed enough to cause a DSN, but delayed nonetheless.  Let&#39;s take the above headers and play with te timestamps a bit&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:times new roman;&quot;&gt;Received: from unknown (HELO BorderMTA.MyDomain.com) (9.10.11.12) by mail.MyDomain.com with SMTP; 14 Feb 2009 00:53:47 +0200 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:times new roman;&quot;&gt;Received: from outbound.sendingdomain.com (outbound.sendingdomain.com [5.6.7.8]) by BorderMTA.MyDomain.com (8.14.1/8.14.1) with ESMTP id n1DLNSS7000915 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 13 Feb 2009 18:53:13 -0500 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:times new roman;&quot;&gt;Received: from mail.sendingdomain.com (mail.sendingdomain.com [1.2.3.4]) by outbound.sendingdomain.com (8.14.1/8.14.1) with ESMTP id n1DLNQgX009122 for ; Fri, 13 Feb 2009 16:23:26 -0500 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:times new roman;&quot;&gt;Received: from 10.0.0.100 ([10.0.0.100]) by mail.sendingdomain.com ([10.0.0.1]) with Microsoft Exchange Server HTTP-DAV ; Fri, 13 Feb 2009 21:23:21 +0000 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Can you find the delay?  I included several time zone changes, so don&#39;t get duped by them ;-)&lt;br /&gt;&lt;br /&gt;If you said it&#39;s from outbound.sendingdomain.com to BorderMTA.MyDomain.com you&#39;re correct!&lt;br /&gt;&lt;br /&gt;It took about 2.5 hours for outbound.sendingdomain.com to successfully deliver to BorderMTA.MyDomain.com.  Now that we&#39;ve got the location of the delay we know where to start looking for the issue.  Although the headers simply show where the delay occurred, not the actual cause of the delay, you can save a lot of time just quickly looking at them and isolating the possible trouble areas.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You might have noticed that each intermediary server is listed twice in the headers. When the server receives the message it says “by some.server.com” and then when it sends it on it says “Received: from some.server.com” in the next line. Often this is enough to tell where the delay occurred. If a server accepted the message and didn’t deliver it for many minutes, hours, days, etc. it frequently indicates that the recipient’s mail server was unavailable, deferring connections or “greylisting” the sending server. In that case, the logs you’ll want to read are on the recipient’s mail server (or possibly their firewall especially if it’s a connection issue or if it has a MTA built in). If this server does not have pertinent log files, then contact the sending server’s administrator to see if their logs show any additional information.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Sometimes the sending server may have issues sending an email that are outside of the recipient mail server’s control. A few examples would be retrieving the DNS information of the domain or recipient server, issues with connectivity or specific routing due to ISP issues, or any number of other issues. In these situations you’ll have to contact the sending server to determine the issue. Because the message never left the sending server, there will not be any logs on the recipient mail server. This is often the best place to start when troubleshooting home built or custom email applications such as bulk mailing software/vendors, website forms etc. &lt;/p&gt;In general, if there&#39;s a delay you can start looking at the recipient server logs first.  These will be the most verbose if in fact the issue is there.  If the recipient server is a &quot;border MTA&quot; or another server that is responsible for all of your incoming email, and you&#39;re not experiencing issues across the board, you&#39;ll probably want to check the sending server first.  If there was an issue on the border MTA it&#39;s likely (unless it&#39;s a rate limit/spam filter/etc issue) that the issue is on the sender&#39;s side.  Either way, the issue must be on one of these two servers, so there&#39;s no reason to troubleshoot elsewhere unless you see additional delays in the headers (which is unlikely).&lt;br /&gt;&lt;br /&gt;In summary,  The headers go in order from bottom to top.  They should all have timestamps, although they may be in different time zones, or the server clocks could be off.  If you have a delay reported to you, isolate the servers that were responible for the transmission at that moment, determine what services are running on the servers (anti spam, rate limits, etc) and which is more likely to relate to the issue at hand (if the issue is all of your email, it might be your border MTA, if it&#39;s only this sender then it&#39;s likely on their end) then read the logs on this server.  Once you have the error in hand from the logs, Google it.  You&#39;re not the first admin to run into this issue, and most often someone has posted it to a forum, etc and gotten an answer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.theemailauthority.com/&quot;&gt;TEA&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/92296796254909521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/reading-message-headers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/92296796254909521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/92296796254909521'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/reading-message-headers.html' title='Reading message headers'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-7975319581179602689</id><published>2010-06-01T23:34:00.001-04:00</published><updated>2010-06-23T08:14:56.179-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="email"/><category scheme="http://www.blogger.com/atom/ns#" term="email forwarding"/><category scheme="http://www.blogger.com/atom/ns#" term="RBL"/><category scheme="http://www.blogger.com/atom/ns#" term="smtp"/><category scheme="http://www.blogger.com/atom/ns#" term="SPF record"/><category scheme="http://www.blogger.com/atom/ns#" term="too many hops"/><title type='text'>Forwarding to users home addresses</title><content type='html'>In today&#39;s busy information age more people are connected to their office email at all times than ever before.  Smart phones, webmail or even VPN connections to their office network are more and more common.&lt;br /&gt;&lt;br /&gt;One unfortunately common idea to help facilitate connectivity to work email during vacations or for off site users is to set up forwarding rules.  So, if I&#39;m on vacation (like that&#39;ll ever happen ;-) ) you could email me at my email address NotA.RealAddress1@theemailauthority.com (that&#39;s not a real address, so spammers can&#39;t harvest it) and I&#39;d just set that address to forward to MyHome.Address2@PersonalAddress.com.  Then when I check my home email, I&#39;ll be able to see the work I have to respond to as well.&lt;br /&gt;&lt;br /&gt;Seems like a very convenient way to give people access to their email while on vacation or for offsite users in general, huh?  Think again.&lt;br /&gt;&lt;br /&gt;If I had a penny for all the reasons I&#39;m about to list I&#39;d have, well a few more cents, but you know what I mean.&lt;br /&gt;&lt;br /&gt;I. Habituation&lt;br /&gt;&lt;br /&gt;Social Engineering is often used in hacker terminology to mean gaining access to restricted material by direct human contact.  Although almost the exact opposite of this usage, it&#39;s still the admin&#39;s responsibility to &quot;engineer&quot; their end users into acceptable behavior.   It&#39;s not only our job to facilitate technological requests, it&#39;s our job to explain why some things shouldn&#39;t be accomplished a certain way, if at all.  If a user said &quot;this whole logging in thing, it&#39;s a pain to deal with.  Let&#39;s get rid of it&quot; you&#39;d look at them as if they had two heads.  Similarly, there are times when we must take an almost mentor type role and explain the repercussions of user&#39;s decisions and guide them to become used to a more sound solution or adapt the solution in a way that&#39;s secure and doesn&#39;t create even more issues down the road.&lt;br /&gt;&lt;br /&gt;Here are some examples of how users can create issues with email forwarding.&lt;br /&gt;&lt;br /&gt;1. Reply/Reply All&lt;br /&gt;&lt;br /&gt;OK, so a client&#39;s email gets sent to HomeUser@gmail.com or whatever.  Now, if your user has to respond, where does the email come from?  Their home address, that&#39;s where.  This causes confusion to the sender since now they have a new address, and it can take weeks for the senders to stop just clicking &quot;reply&quot; or finding the old thread and &quot;replying all&quot;.&lt;br /&gt;&lt;br /&gt;2. Address books&lt;br /&gt;&lt;br /&gt;In addition to the threads going back and forth to the user&#39;s home address, how many times do your users bother to look at the actual email address they&#39;re sending to?  Often they rely on their address book entry, which can now be compromised with the new entry for &quot;John Doe&quot;, but &quot;John Doe&#39;s&quot; home address.  This can indefinitely prolong the above &quot;replying all&quot; issue as each new thread will be sent to whatever address &quot;John Doe&quot; has in the remote address book.&lt;br /&gt;&lt;br /&gt;3. Multiple mailboxes&lt;br /&gt;&lt;br /&gt;Skip forward a few days.  Now the user is back in the office and looking at their normal email client.  Where are the messages?  In their home email, that&#39;s where.  Now they have two places to check, again sometimes for weeks until the thread dies, offering the possibility of lost email, delayed responses, or any number of other issues that make your company look bad.&lt;br /&gt;&lt;br /&gt;4. Misplaced blame&lt;br /&gt;&lt;br /&gt;Ok, so your user receives a spam message (or a message they think is spam).  They click the &quot;this is spam&quot; button in their gmail/hotmail/etc.  If the message is being forwarded from your server, their home email provider often simply sees the connecting IP which if you&#39;re forwarding the email from your mail server is now you.  Now the user&#39;s home provider views you as a spammer, and the legitimate emails you&#39;re trying to get to your user get caught in the spam trap as well as the spam.  I&#39;ve seen AOL for instance do this several times causing admins no end to headache (try getting a decent AOL support tech on the phone to fix a problem, I dare you).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;II. Technology issues&lt;br /&gt;&lt;br /&gt;In addition to the user based issues above, there are obvious technical issues as well.&lt;br /&gt;&lt;br /&gt;1. Routing of complaints&lt;br /&gt;&lt;br /&gt;Although mentioned above, I cannot stress this enough.  If you do this with the average user, sooner or later you take a strong risk of getting blacklisted.  Depending on a few factors this can have tremendous impact on your infrastructure.  If your user is sending spam reports to their provider, and you have many other customers on the same provider, your email will end up not only in your user&#39;s spam box, but any other customer who uses the same provider.  For instance, if you forward to AOL, and your user gets you blacklisted by AOL then you try to send a legitimate piece of email to another AOL user, you will not get it through.  I simply cannot stress this enough.&lt;br /&gt;&lt;br /&gt;2. Bad practices&lt;br /&gt;&lt;br /&gt;Anyone remember the post about the &lt;a href=&quot;http://theemailauthority.blogspot.com/2010/05/what-is-border-mta.html&quot;&gt;&quot;border MTA&#39;s&quot; role&lt;/a&gt;?  If not, click that link and read it right now.  Now you&#39;ve got your email passing through your border MTA with all of it&#39;s antispam, antivirus, DDOS protection, etc, then you&#39;re passing it to ANOTHER border MTA to handle the same things again.  You can see above for one instance of how this can cause headaches, but there are so many more.  Rate limiting, spam complaints, automated processes, greylisting, availability, the list goes on and on.&lt;br /&gt;&lt;br /&gt;3. Backscatter&lt;br /&gt;&lt;br /&gt;I&#39;ll have a whole post at some point on this topic if you&#39;re not familiar with the term.  In the meantime you can click &lt;a href=&quot;http://en.wikipedia.org/wiki/Backscatter_%28e-mail%29&quot;&gt;here&lt;/a&gt; for more info.  Including multiple border MTAs will almost always result in some type of backscatter.  There are RBLs that focus exclusively on the source of backscatter, and many include backscatter sources at least incidentally in their lists.  If you&#39;ve ever tried to get off of some of these RBLs you&#39;ll probably agree you don&#39;t want to do it again anytime soon.  Additionally, I guarantee if you&#39;ve ever been the victim of a spoofing attack you&#39;ll understand how frustrating backscatter can be, and you&#39;ll never want to inflict it on anyone.&lt;br /&gt;&lt;br /&gt;4. Archiving and other requirements&lt;br /&gt;&lt;br /&gt;Many companies are required by law to archive email sent on the company&#39;s behalf.  How are you going to archive messages that were sent from the user&#39;s gmail/hotmail/yahoo account?  How are you going to archive messages that were replied back to those addresses?  Is it more or less likely that someone on vacation would respond in an unfavorable (and therefore liable) manner when they&#39;re sucking down Pina Coladas on a beach somewhere than when they&#39;re in the office?  Don&#39;t you think these messages above all others should be archived?&lt;br /&gt;&lt;br /&gt;5. &quot;too many hops&quot;&lt;br /&gt;&lt;br /&gt;Many mail servers have rules in place for how many other servers can be listed in the headers.  If there are too many, you can generate bounces that claim there were &quot;too many hops&quot;.  Since this is entirely out of your control once it leaves your network it&#39;s something to take very seriously unless you enjoy talking to other support reps all day while troubleshooting this error.  Although a couple additional hops should be fine, you have no idea how badly mangled your user&#39;s home email routes are.  Maybe they&#39;ve had the same email address for years, but they tried Hotmail first, then used AOL, then gmail.  If they set forwarding rules (which are often the home user&#39;s only option outside of changing their email address)  you&#39;ll have several hops per provider, not including yours.  You can see how this would quickly add up.  Also, there are outbound routes too, so it could be that some of your senders place several hops before it even reaches your network.  Therefore any testing you do would be moot, and those senders will still get &quot;too many hops&quot; errors.&lt;br /&gt;&lt;br /&gt;III. Easy solutions&lt;br /&gt;&lt;br /&gt;So, your user needs remote access.  This is an understandable need.  There are literally too many options to mention, but here are a few&lt;br /&gt;&lt;br /&gt;1. Give them access.&lt;br /&gt;&lt;br /&gt;Look, we have to be security conscious.  There are simply too many threats out there to leave your firewall wide open for all email traffic.  However, there are plenty of ways to mitigate the risk without making your users&#39; lives harder.  If you don&#39;t want to open POP/IMAP/SMTP ports, dont.  But use other ports and NAT them to the correct ports on your server.  Of course this doesn&#39;t stop port scans, but it will lessen the number of available threats to the point you can sleep most nights ;-)&lt;br /&gt;&lt;br /&gt;2. Require encryption&lt;br /&gt;&lt;br /&gt;If you feel safe logging in to your bank account via the web, then you trust SSL.  Require SSL/TLS connections at least from your outside users.  This will both change the default port (which you should again change), and also prevent snoops from intercepting potentially sensitive information.  Sure, they could have a keylogger, etc at home, but they might in your organization too.&lt;br /&gt;&lt;br /&gt;3. Control the hardware&lt;br /&gt;&lt;br /&gt;Provide them with a laptop if possible that contains all of the security software you use at the office and require them to return it when they&#39;re back home.  This way you know at least as of the day they left they have up-to-date virus definitions, patches, and all of the other things users forget to do at home, but it&#39;s your job to do at work.&lt;br /&gt;&lt;br /&gt;4. Use webmail, or get a vendor&lt;br /&gt;&lt;br /&gt;Quite simply, webmail is a must.  If you don&#39;t want to offer the webmail service directly on your server, offer it through a vendor and grant them access to your server.  Zimbra for instance allows you to sync multiple mailboxes via IMAP in their webmail interface.  as long as you grant access from the vendor to your IMAP port they can interface with their email just fine.  Zimbra also offers the option of smart hosting to your mail server for outbound communication to help with your archiving/discovery software.&lt;br /&gt;&lt;br /&gt;5. Give them a smart phone&lt;br /&gt;&lt;br /&gt;If it&#39;s a power user who is always on the go, give them a smart phone.  Personally, I prefer typing emails on many smart phones.  Maybe it&#39;s all the years of gaming, but I actually find it more convenient to type on some of the keyboards with my thumbs than on my desktop with my whole hands/wrists/etc.  Then, depending on the method of delivery to/from your mail server you can enforce policies to only allow connections from the specific devices, or their carrier will often offer (in the case of Blackberries) an option for them to deliver messages for you.  Just be sure to allow the carrier to send from your domain in your SPF record.&lt;br /&gt;&lt;br /&gt;To summarize, there are just too many simple solutions that offer more security and audit trails, as well as much less risk of headache.  If you&#39;re an end user who has to deal with whatever your provider gives you, feel free to use email forwarders.  If you&#39;re an admin you have the power to handle these issues the &quot;right way&quot;, or really in any of the &quot;right ways&quot; you see fit.  Remember the K.I.S.S. principle applies to your email&#39;s path, not your setup.  Think of the slight inconvenience of doing it right as an investment on all the time you won&#39;t have to spend troubleshooting later.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.theemailauthority.com/&quot;&gt;TEA&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/7975319581179602689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/forwarding-to-users-home-addresses.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/7975319581179602689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/7975319581179602689'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/06/forwarding-to-users-home-addresses.html' title='Forwarding to users home addresses'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-7666778305228021094</id><published>2010-05-18T17:19:00.002-04:00</published><updated>2010-06-23T08:14:42.116-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bounce message"/><category scheme="http://www.blogger.com/atom/ns#" term="DSN"/><category scheme="http://www.blogger.com/atom/ns#" term="email"/><category scheme="http://www.blogger.com/atom/ns#" term="how to read an email bounce"/><category scheme="http://www.blogger.com/atom/ns#" term="how to ready a NDR"/><category scheme="http://www.blogger.com/atom/ns#" term="NDR"/><category scheme="http://www.blogger.com/atom/ns#" term="smtp"/><title type='text'>How to read a bounce message</title><content type='html'>So, you or your user just sent an email, and it bounced back.  One thing to notice or ask the user is &quot;how long did it take for the bounce to come back?&quot;.  Although not always important it can help isolate the difference (especially if the user already deleted the bounce) between a routing error and a &quot;hard bounce&quot; if the message was actually rejected (rejections are often instant).&lt;br /&gt;&lt;br /&gt;If you&#39;re lucky enough to actually have the bounce, you usually have all the information you need to identify the server that had the issue and at least narrow down the cause (if not outright fix the issue).  Unfortunately, many antispam services have taken to responding with generic status codes instead of explaining that they blocked the message and at least giving some sort of explanation.  This can make the status message (which I&#39;ll explain shortly) worthless, but generally it&#39;ll be a good place to start.&lt;br /&gt;&lt;br /&gt;When you&#39;re looking at a bounce (and by &quot;bounce&quot; I mean both a DSN and an NDR) there are three main things to look for.&lt;br /&gt;&lt;ol&gt;&lt;li&gt; The sending server &lt;/li&gt;&lt;li&gt; The server that encountered the problem &lt;/li&gt;&lt;li&gt; What the issue was &lt;/li&gt;&lt;/ol&gt;Now, if the email was going from one user to another on the same domain, 1 and 2 will be the same server.  In that case you can skip to section three.  If the sender was sending the message out to the internet, 1 and 2 MAY be the same server, but not necessarily, and not nearly as often.&lt;br /&gt;&lt;br /&gt;According to RFC 2821 (my clarifications in italics):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&quot;If &lt;span style=&quot;font-style: italic;&quot;&gt;(a relay server)&lt;/span&gt; accepts the task &lt;span style=&quot;font-style: italic;&quot;&gt;(of relaying an email)&lt;/span&gt;, it then becomes an SMTP client, establishes a transmission channel to the next SMTP server specified in the DNS &lt;span style=&quot;font-style: italic;&quot;&gt;...&lt;/span&gt; and sends it the mail&quot;&lt;/blockquote&gt;More information on client/server can be found on the main site, but basically the &quot;client&quot; is the sending server (#1 above), and the &quot;server&quot; is the #2 server above.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;1. The Client (sending) server.  Also called the &quot;Reporting-MTA&quot;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;All email has to have a sender.  Even in the event of a &quot;Null sender&quot; the sender exists, it&#39;s just Null :-).  Generally mail servers will send bounces as a null sender, but forge their name into the headers like &quot;root@sending.server.com&quot;.&lt;br /&gt;&lt;br /&gt;&lt;rant&gt; One thing to note about the &quot;from&quot; string is that Exchange 2010 has a new &quot;feature&quot; (quotes very much intended) where it forges itself as the &quot;from&quot; string in the headers &lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;on incoming bounces&lt;/span&gt; regardless of &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;whether or not it generated the bounce&lt;/span&gt;.  This is outrageously annoying as it removes one of the first places end users and novice admins look to see where the error occurred. &lt;/rant&gt;&lt;br /&gt;&lt;p&gt;It&#39;s often presumed that the server where the bounce originates from is the server that had the issue. Although this is possible if it&#39;s a local error, most often it is the NEXT server in the route that caused the problem. More below...&lt;br /&gt;&lt;/p&gt;&lt;p&gt;You can find out what server is sending the message by looking in a few common places:  &lt;/p&gt; &lt;ul&gt;&lt;li&gt; The &quot;From&quot; header - Often the &quot;From&quot; header in a NDR is &quot;@sending.server.com&quot;, this shows that &quot;sending.server.com&quot; is the sending server. &lt;/li&gt;&lt;li&gt; The &quot;Generating server&quot; - If the body says &quot;Generating server: sending.server.com&quot;, this is the server sending the bounce. &lt;/li&gt;&lt;li&gt; The &quot;Reporting-MTA&quot; - The &quot;Reporting-MTA&quot; may be listed in the bounce. If so, this is the sending server.  &lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;2.  The &quot;Server&quot; server, or the &quot;Remote-MTA&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Remember the section from RFC 2821 before where it says &quot;If &lt;span style=&quot;font-style: italic;&quot;&gt;(a relay server)&lt;/span&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;accepts the task&lt;/span&gt; &lt;span style=&quot;font-style: italic;&quot;&gt;(of relaying an email)&quot;&lt;/span&gt;?  Well, that bolded part is important because that&#39;s where 99% of your bounces will come from on a daily basis.  Most bounces come from a server NOT &quot;accepting the task&quot;, and instead delivering a 400 level response (which is like a &quot;not right now, maybe later&quot;) or a 500 level response (which is like an outright &quot;absolutely not&quot;).&lt;br /&gt;&lt;br /&gt;The Remote-MTA is often the only place to find logs of WHY the message was refused.  The Reporting-MTA will have logs THAT the message was refused, but will sometimes have less information even than the bounce message itself.&lt;br /&gt;&lt;p&gt;A few common places to find who is the &quot;Remote-MTA&quot; are:&lt;br /&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt; The &quot;Remote-MTA:&quot; field in the bounce &lt;/li&gt;&lt;li&gt; The &quot;Remote Server:&quot; field in the bounce &lt;/li&gt;&lt;li&gt; Where it says &quot;While talking to:&quot; in the bounce &lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;3. What the issue was&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you don&#39;t have access to the Remote-MTA&#39;s logs (or if it&#39;s an internal bounce and there is no Remote-MTA), the bounce will usually have some type of diagnostic text.  It won&#39;t be as much as the server&#39;s logs, but it&#39;s a whole lot easier to read a bounce than read through logs.  I recommend starting with the bounce :-)&lt;br /&gt;&lt;br /&gt;Here are some places to look/things to look for:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt; If the bounce says &quot;while talking to: receiving.server.com&quot; it will say after that &quot;receiving.server.com said:&quot; &lt;/li&gt;&lt;li&gt; The bounce may say in the body &quot;Reason:&quot;, &quot;Error:&quot; or &quot;SMTP 5.x.x [...diagnostic text...]&quot; &lt;/li&gt;&lt;li&gt; The bounce may have text that is configurable by the Remote-MTA such as links explaining the error or general diagnostics. For instance &quot;Rejected due to abuse. See www.some-website-or-other.com/bounce.html for more information&quot; &lt;/li&gt;&lt;/ul&gt;There can be other information in a bounce like the &quot;Received-From-MTA&quot; or additional headers so you can see the route, but reading headers is often extraneous at this point, and probably deserves an article all to itself.  If you&#39;re super excited, read RFC 2821 for information on SMTP, and then RFC 3464.  That&#39;ll cool your heels :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.theemailauthority.com/&quot;&gt;TEA&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/7666778305228021094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/05/how-to-read-bounce-message.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/7666778305228021094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/7666778305228021094'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/05/how-to-read-bounce-message.html' title='How to read a bounce message'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3517252440880462771.post-2349354089384039351</id><published>2010-05-17T17:21:00.002-04:00</published><updated>2010-07-08T10:27:54.052-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="antispam"/><category scheme="http://www.blogger.com/atom/ns#" term="border MTA"/><category scheme="http://www.blogger.com/atom/ns#" term="exchange"/><category scheme="http://www.blogger.com/atom/ns#" term="RBL"/><category scheme="http://www.blogger.com/atom/ns#" term="smtp proxy"/><category scheme="http://www.blogger.com/atom/ns#" term="SPF record"/><title type='text'>What is a Border MTA?</title><content type='html'>A Border MTA (Mail Transfer Agent) is the first mail server responsible for handling your email.  It operates at the &quot;border&quot; of your network, hence the name.&lt;br /&gt;&lt;br /&gt;This is commonly an antispam service or appliance, or sometimes your firewall will have an &quot;SMTP Proxy&quot; built in (common with SonicWall, Tumbleweed, Symantec and Cisco router/firewall combos).   Sometimes all the packets are sent directly to the mail server, then it is the &quot;border MTA&quot;.&lt;br /&gt;&lt;br /&gt;The easiest way to determine your Border MTA (although not always 100% accurate) is to see what server returns its name in response to the SMTP HELO command.  In the event of an SMTP proxy on the gateway, it can proxy even these responses, but that&#39;s uncommon enough to ignore for most troubleshooting.&lt;br /&gt;&lt;br /&gt;The reason an MTA in this location has a specific name is that there are some services that should run ONLY on the Border MTA, and if they are run anywhere else in your email&#39;s route can cause disastrous issues.&lt;br /&gt;&lt;br /&gt;For instance, SPF authentication should ALWAYS be run on the Border MTA.   Microsoft, in their infinite wisdom, decided to include SPF (under a proprietary name, surprise surprise)  as a default option in their IMF  settings (which stands for &quot;Intelligent Message Filtering&quot;, please keep your guffaws to yourself) in Exchange 2003 SP2 through 2010.  &lt;rant&gt; Keeping in mind that many of their enterprise level customers would have several layers of protection, and therefore probably several MTAs in front of theirs, this was a less than educated decision IMHO. &lt;/rant&gt;&lt;br /&gt;&lt;br /&gt;SPF (or Sender Policy Framework) is a relatively new standard (spearheaded by MS oddly enough)  that adds  DNS records for the domain advertised in the &quot;mail from:&quot; command.  More information can be found &lt;a href=&quot;http://www.openspf.org/&quot;&gt;here&lt;/a&gt;, but essentially if the connecting IP does not itself exist or resolve to a record that does exist in the SPF record the email is bounced or flagged.  Let&#39;s see how it&#39;s supposed to work:&lt;br /&gt;&lt;br /&gt;Sender: me@domain.com&lt;br /&gt;Sending server&#39;s IP: 1.2.3.4&lt;br /&gt;domain.com&#39;s SPF record:  &quot;IP4:1.2.3.4 -all&quot;&lt;br /&gt;recipient&#39;s border MTA&#39;s IP: 10.0.0.1&lt;br /&gt;recipient&#39;s mail server: 10.0.0.2&lt;br /&gt;&lt;br /&gt;The recipient&#39;s Border MTA does an SPF lookup on domain.com since that&#39;s in my email address.  My DNS server says the SPF record is &quot;IP4:1.2.3.4 -all&quot;, which means that all email should be coming from a server with the IP of 1.2.3.4.  Since the connecting IP is in fact 1.2.3.4 it passes this check and is either passed to the mail server or is at least allowed to continue being processed.&lt;br /&gt;&lt;br /&gt;Now, how it DOESN&#39;T work.&lt;br /&gt;&lt;br /&gt;The recipient&#39;s Border MTA does an SPF lookup, and it passes the SPF check due to the reasons above.  Then, the Border MTA passes the message to the mail server which now does &lt;span style=&quot;font-weight: bold;&quot;&gt;another&lt;/span&gt; SPF lookup on it.  This time however, the IP of the connecting server is actually 10.0.0.1 NOT 1.2.3.4.  So, since this IP is not authenticated by the SPF record, the message bounces unless other steps are taken to prevent this (such as whitelisting your Border MTA&#39;s IP).&lt;br /&gt;&lt;br /&gt;Other examples of tests that should NEVER be run after the  border MTA include RBL checks, reverse DNS tests (and &quot;Forward Confirmed Reverse DNS&quot;), greylisting, or really any IP based authentication techniques.&lt;br /&gt;&lt;br /&gt;Of course, all anti spam tests should also be completed at the Border MTA, so greylisting, antispam, antivirus, and other tests should be run there as well to prevent backscatter.  Only in special circumstances should even rate limiting be done after the border since this can cause unforeseen bottlenecks that can take an essential route out of commission.&lt;br /&gt;&lt;br /&gt;In conclusion, if you only read one paragraph this should be it.  Run ALL tests, especially IP based tests, at the border.  The only thing that should happen past the border MTA is routing/load balancing to different destination MTAs (where the email is delivered to the user).  Ignoring this rule is guaranteed to add to your headaches, and to your employer&#39;s dissatisfaction.&lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.theemailauthority.com/&quot;&gt;TEA&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://theemailauthority.blogspot.com/feeds/2349354089384039351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theemailauthority.blogspot.com/2010/05/what-is-border-mta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/2349354089384039351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3517252440880462771/posts/default/2349354089384039351'/><link rel='alternate' type='text/html' href='http://theemailauthority.blogspot.com/2010/05/what-is-border-mta.html' title='What is a Border MTA?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>