rom109
asked on
Manual VPS - PHP mail() and PEAR smtp taking a long time, sending three emails
I was running a website on a shared hosting account. Part of this website involved sending a lot of messages via PHP mail(). Unfortunately, all shared hosting providers I could find had a cap on how many emails could be sent per hour.
So, I decided to get a VPS. I am cheap, so I thought I would get an unmanaged one with cpanel. Everything is fine and dandy, I have everything up and running. The only problem I have, is that every message sent by php mail takes about 30 seconds to send. Not only that, but it sends it three times. The same thing happens when I send via the PEAR SMTP package. Takes about 30 seconds, and sends three times.
It could be a DNS issue, I had no idea how to set it up, so I guessed:
A-type: @ smsalertsonline.com 174.36.99.28
A-type: www.smsalertsonline.com 174.36.99.28
MX entry: @ smsalertsonline.com - Mailer-server: smsalertsonline.com
Any ideas? Any other info you need?
So, I decided to get a VPS. I am cheap, so I thought I would get an unmanaged one with cpanel. Everything is fine and dandy, I have everything up and running. The only problem I have, is that every message sent by php mail takes about 30 seconds to send. Not only that, but it sends it three times. The same thing happens when I send via the PEAR SMTP package. Takes about 30 seconds, and sends three times.
It could be a DNS issue, I had no idea how to set it up, so I guessed:
A-type: @ smsalertsonline.com 174.36.99.28
A-type: www.smsalertsonline.com 174.36.99.28
MX entry: @ smsalertsonline.com - Mailer-server: smsalertsonline.com
Any ideas? Any other info you need?
You will want to determine if this is an issue with the mail server (exim) or with PHP/Apache.
Can you start by sending a unique message, and then displaying the mail logs? For example, if you put "foo@bar.com" as the recipient, you can run this SSH command to find the relevant logs. Thanks.
after submitting the form, grep for the email address you used:
Let us know the results of the logs (if there are 3 entries, most likely this is PHP submitting the form 3 times).
Can you start by sending a unique message, and then displaying the mail logs? For example, if you put "foo@bar.com" as the recipient, you can run this SSH command to find the relevant logs. Thanks.
after submitting the form, grep for the email address you used:
# cat /var/log/maillog | grep "foo@bar.com"(please let us know what results you receive).
# cat /var/log/exim_mainlog | grep "foo@bar.com"
Let us know the results of the logs (if there are 3 entries, most likely this is PHP submitting the form 3 times).
Also, what email client are you using? For example, there was a problem with Outlook duplicating the message. If you use the webmail to check the mail, does that also show triplicate messages?
http://support.microsoft.com/kb/885870
http://support.microsoft.com/kb/885870
ASKER
Pete, you were right, the triplicate messages were just an outlook bug that has since been fixed. But the long wait on sendmail is still a problem.
When I use php mail() to send a message to "foo@bar.com", /var/log/maillog has no mention of foo@bar.com, and exim_mainlog just says "2011-02-16 12:27:41 1Ppm5r-0008IF-7Q ** foo@bar.com R=fail_remote_domains: The mail server could not deliver mail to foo@bar.com. The account or domain may not exist, they may be blacklisted, or missing the proper dns entries."
And it took 27 seconds to send. Could I just have a slow server? Is that a normal wait time?
When I use php mail() to send a message to "foo@bar.com", /var/log/maillog has no mention of foo@bar.com, and exim_mainlog just says "2011-02-16 12:27:41 1Ppm5r-0008IF-7Q ** foo@bar.com R=fail_remote_domains: The mail server could not deliver mail to foo@bar.com. The account or domain may not exist, they may be blacklisted, or missing the proper dns entries."
And it took 27 seconds to send. Could I just have a slow server? Is that a normal wait time?
ASKER
I noticed also that I keep changing /etc/resolv.conf to my nameservers, but they keep changing back to 4.2.2.1 and 4.2.2.2. Could this slow things down? How can I get it to stay as my nameservers?
ASKER
Also when I SMTP to a different server (that sends fine on its own) it still takes about 30 seconds. So perhaps the problem isn't sendmail, but an email setting somewhere?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
/etc/hosts:
127.0.0.1 localhost.localdomain localhost server1.smsalertsonline.co
# Auto-generated hostname. Please do not remove this comment.
174.36.99.28 server1.smsalertsonline.co
/etc/resolv.conf:
nameserver 4.2.2.1
nameserver 4.2.2.2