subscribe to the RSS Feed

Saturday, February 4, 2012

How to Talk to Your Hosting Provider When Your Email Cannot Delivered

Posted by leepeng on July 3, 2009

Have you ever encounter the situation which after getting your hosting for a while, you start to notice the email send from your server couldn’t reach your recipient; especially when the email is sent direct from the webserver using sendmail (e.g. mail function of PHP)

I myself is not hosting expert. However, after a few shocks, I somehow figure out some simple mis-configuration that easily happen to hosting engineers while setting up new server.

Two main cause: 1st is the missing of qualified domain name and second is missing of SPF setting.

These two can be observe easily by looking at the email header content in GMail. Try create a simple testmail.php which will send email to your GMail account using PHP’s mail function.

<?php
mail("leepeng@gmail.com", "Test Mail", "Test 123", "From: something@xx.com");
?>

Then open the source / original message of the email.

Here is an example of “Healthy” email
Delivered-To: leepeng79.chen@gmail.com
Received: by 10.142.43.3 with SMTP id q3cs50083wfq;
Tue, 30 Jun 2009 02:03:53 -0700 (PDT)
Received: by 10.114.255.12 with SMTP id c12mr12997276wai.11.1246352633584;
Tue, 30 Jun 2009 02:03:53 -0700 (PDT)
Return-Path: <bounce@organisedmum.com.sg>
Received: from organisedmum.com.sg (organisedmum.com.sg [116.12.50.227])
by mx.google.com with ESMTP id 1si12092283pxi.65.2009.06.30.02.03.52;
Tue, 30 Jun 2009 02:03:52 -0700 (PDT)

Received-SPF: pass (google.com: best guess record for domain of bounce@organisedmum.com.sg designates 116.12.50.227 as permitted sender) client-ip=116.12.50.227;
Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of bounce@organisedmum.com.sg designates 116.12.50.227 as permitted sender) smtp.mail=bounce@organisedmum.com.sg

Received: (qmail 20407 invoked by uid 48); 30 Jun 2009 17:03:51 +0800
Date: 30 Jun 2009 17:03:51 +0800
Message-ID: <20090630090351.20397.qmail@organisedmum.com.sg>
To: leepeng79.chen@gmail.com

Here is an example of “unhealthy” email
Delivered-To: leepeng79.chen@gmail.com
Received: by 10.142.43.3 with SMTP id q3cs126200wfq;
Thu, 2 Jul 2009 00:18:36 -0700 (PDT)
Received: by 10.224.28.130 with SMTP id m2mr10174634qac.52.1246519115111;
Thu, 02 Jul 2009 00:18:35 -0700 (PDT)
Return-Path: <nobody@vm4.kfc>
Received: from vm4.kfc (202-150-217-11.rev.ne.com.sg [202.150.217.11])
by mx.google.com with ESMTP id 15si3872346yxe.130.2009.07.02.00.18.34;
Thu, 02 Jul 2009 00:18:34 -0700 (PDT)
Received-SPF: neutral (google.com: 202.150.217.11 is neither permitted nor denied by best guess record for domain of nobody@vm4.kfc) client-ip=202.150.217.11;
Authentication-Results: mx.google.com; spf=neutral (google.com: 202.150.217.11 is neither permitted nor denied by best guess record for domain of nobody@vm4.kfc) smtp.mail=nobody@vm4.kfc

Received: from nobody by vm4.kfc with local (Exim 4.69)
(envelope-from <nobody@vm4.kfc>)

id 1MMGZG-0005GT-VS
for leepeng79.chen@gmail.com; Thu, 02 Jul 2009 15:18:51 +0800
To: leepeng79.chen@gmail.com

If you observe, you will notice that the “healthy” example has a qualified domain name which associate with the IP address. However the “unhealthy” exmple does not have a qualified domain name. The mis-configure one will either has setting localhost or just the server name in the private network (vm4.kfc for this example)

Second is the “healthy” example can pass GMail’s SPF check but the “unhealthy” one have the mark of neutral. SPF is to help make sure the server is not used for spamming. When GMail said it is neutral, it means GMail don’t know if the server is right or wrong.

My experience is that GMail has been very generous in their antispam as it will accept most of the emails. However, if you notice these 2 mis-configuration, it will be likely the mail would not able to deliver to Hotmail, Yahoo, AOL or some corporate email addresses.

So now you have something to argue with the hosting engineer :)

The last thing to check is to make sure your server’s IP address is not blacklisted. One common place to check is at www.spamhaus.org

Make Your Website Really Fast

Posted by John on February 12, 2009

While bandwidth has increased greatly in today’s era of high speed internet, you might still want to make your web pages really lean and fast if your website is catering to a huge audience. Check out these tips from http://blogs.zdnet.com/weblife/?p=207

But while speed is important, don’t forget about other factors such as functionality, content and usability. A poor user experience delivered fast is still a poor user experience. A positive web user experience will correlate to a positive brand perception (http://uxd.forumone.com/archives/35-Website-User-Experience-impact-on-Brand.html)

Please, Firefox has Built in Spellcheck!

Posted by leepeng on January 14, 2009

Many times I’ve received requests to build spell check for websites. Mainly on the backend CMS or some web-based systems.

My reply is always the same.

“Please install and use Firefox 2 or 3. Everything is catered for.” WAIT! There is more to read… read on »

Upgrade Your IE6… You Can Save the World!!

Posted by leepeng on

We developed a website and tested it on Firefox, IE7, Safari, Opera and Chrome. After delivery, the client said that some functions were not working on their browser. We checked and found out that the entire organisation is still using IE6. So we advised them to upgrade their browser.

Shortly afterwards, the IT executive called and gave us a comment: “Your should make sure your website is BACKWARD COMPATIBLE! No way we gonna to upgrade our browser!” WAIT! There is more to read… read on »

PayPal Instant Payment Notification (IPN)

Posted by leepeng on December 27, 2008

Consider the basic architecture of my previous Post (PayPal Integration)

At point A, we have stored the order record in the database as “Pending Payment” status. We will update the status to either “Paid” or “Failed” after PayPal redirect back to Thank you or Transaction cancelled page. WAIT! There is more to read… read on »

PayPal Integration

Posted by leepeng on

This article contains 3 section …
I. General Architecture
II. PayPal Settings
III. PHP Integration

The integration uses CURL to connect to PayPal server. I assume you are familiar with CURL functions for PHP. You can visit PHP manual at http://sg.php.net/manual/en/ref.curl.php for more information. WAIT! There is more to read… read on »

The Client’s Guide To Understanding Web Designers

Posted by John on November 7, 2008

We’ve been in the web design & development industry for some time now and have had a fair share of clients with the wrong expectations of us. We’re not talking about you now darling, we’re talking about another client. Most of the examples here are actually over exaggerated and the prose a tad direct, be warned. WAIT! There is more to read… read on »