I'm using a PHP script to send mail to a few of my clients. Some of them reported not getting the mail. GMail users all got the mail, but yahoo and hotmail aren't. I created my own hotmail account to test it, and sure enough, no email. Not in the junk/spam folder or anything.

How can I troubleshoot this and find the problem?

I'm running CentOS5.5 with cPanel, using Exim for mail.


tail of /var/logs/maillog

Jan 18 22:14:39 server1 dovecot: imap-login: Login: user=<__cpanel__service__auth__imap__dsefdvpt0ystyughvg7_lukinpvjppf7a6kbps6oyro4dh...>, method=PLAIN, rip=, lip=, secured
Jan 18 22:14:39 server1 dovecot: IMAP(__cpanel__service__auth__imap__dsefdvpt0ystyughvg7_lukinpvjppf7a6kbps6oyro4dhiob16g9un4heqo4nar): Disconnected: Logged out bytes=11/317
Jan 18 22:19:28 server1 spamd[17866]: spamd: connection from localhost.localdomain [] at port 49141
Jan 18 22:19:28 server1 spamd[17866]: spamd: setuid to cpanel succeeded
Jan 18 22:19:28 server1 spamd[17866]: spamd: processing message <GTUBE1.1010101@example.net> for cpanel:32001
Jan 18 22:19:28 server1 spamd[17866]: spamd: identified spam (1000.0/5.0) for cpanel:32001 in 0.1 seconds, 834 bytes.
Jan 18 22:19:28 server1 spamd[17866]: spamd: result: Y 999 - GTUBE,NO_RECEIVED,NO_RELAYS scantime=0.1,size=834,user=cpanel,uid=32001,required_score=5.0,rhost=localhost.localdomain,raddr=,rport=49141,mid=<GTUBE1.1010101@example.net>,autolearn=no,shortcircuit=no
Jan 18 22:19:28 server1 spamd[17865]: prefork: child states: II
Jan 18 22:19:39 server1 dovecot: imap-login: Login: user=<__cpanel__service__auth__imap__mqxzqqn3n7p4i_c1latvnurayarqzyv09znah0lqwjuzwy...>, method=PLAIN, rip=, lip=, secured
Jan 18 22:19:40 server1 dovecot: IMAP(__cpanel__service__auth__imap__mqxzqqn3n7p4i_c1latvnurayarqzyv09znah0lqwjuzwygaebpjwsfw86gso7xe): Disconnected: Logged out bytes=11/313

But it sent a message to gmail after that 22:19:40, so I guess no outgoing mail got logged. I don't know how to turn on logging.


Figured out the IP my host gave me is on spamhaus.org's SBL. Sigh.


I would start with looking at the server mail logs. Usually located at


on Cent you can see what the result was for the messages that were sent.

I would look for a yahoo address in the log and see what the result was for that message. If you see "stat=Sent (Backend Replied ..." that means that the yahoo server took the message. Where it went from server to inbox is up to yahoo. But if you see other error messages that may indicate that the yahoo or hotmail server is not accepting your mail

Depending on the IP block your server is in, it may automatically be located on a SPAM blacklist. If so when you talk to the yahoo or hotmail mailservers to deliver the message you usually get a response back that says:

 host k.mx.mail.yahoo.com[] refused to talk to me: 421 4.7.0 [GL01] 
 Message   from (xxx.xxx.xxx.xxx) temporarily deferred - 4.16.50. Please refer to 

The Yahoo postmaster help files contain some explanations for common messages you may see: http://help.yahoo.com/l/us/yahoo/mail/postmaster/errors/

  • They arent even showing up in the log. – Rob Jan 19 '11 at 2:09
  • A) nothing is in the log, or B) Gmail is showing in the log, but yahoo and hotmail are not? If A. then need to turn on logging for whatever service your PHP script is using to send mail (such as sendmail or postfix). If B. then there might be some filter rule (in service or code) so that those messages are never getting handed off to the mailing service. – Kevin Kingsbury Jan 19 '11 at 2:33
  • Well, something is showing in the log, though I'm not sure. I'll edit my question with the tail. – Rob Jan 19 '11 at 3:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.