On 7 Jul 2008, at 18:50, Jay Moore wrote:
Greetings folks. I seem to be having a problem with PHP's mail() function and sending 'From' headers properly. Here's my setup:

I have a site I set up for a client that has a form their clients can fill out to submit some data. When the form is submitted, I have PHP gather the data and create the body of an email which is then sent to both the owners of the site and back to the person who submitted the data. Because the server hosts multiple sites, I am sending an additional 'From' header so the email doesn't appear to come from the hostname of the server itself ([EMAIL PROTECTED]).

Because I did not have a DNS entry for my hostname, the 'domain does not exist' error I'm seeing in the bounce emails is correct. I do not wish to keep a DNS entry for it (I have added one as a temporary fix), as that doesn't fix the 'From' header issue to begin with, so I would appreciate it if you did not make that suggestion.

As per PHP's documentation of the mail() function, I am sending the header like so:

"From:  [EMAIL PROTECTED]"

I am getting bounce emails from certain ISPs (AOL, Roadrunner, some local ISPs) saying the sender's domain does not exist. It seems that either mails are coming from my hostname ([EMAIL PROTECTED]), or those ISPs are reading the additional headers incorrectly. Unfortunately, this is not acceptable. People aren't getting their emails, and the hammer is coming down on me.

As far as I know (based on the lack of bounce emails), this worked fine on PHP4, but with our new webserver (running PHP5), I'm experiencing problems. Far as I can tell, the mail() function has not changed between versions.

I'm stumped here and need to get this fixed asap. I've tried 'From' and 'FROM', tried a 'Name Here <[EMAIL PROTECTED]>' format, and tried terminating with double newlines with and without the carriage return. Nothing seems to work. I've even gone so far as to edit php.ini with a default from address, but that doesn't appear to have fixed anything either.

The ISPs are likely looking at the envelope sender rather than the sender specified in the headers.

If you're on a box using sendmail (which I think you are based on what you've said) you can set this using the 5th parameter to mail set to - f followed by the email address you want to use.

i.e. '[EMAIL PROTECTED]'

I believe this is covered on the manual page for the mail function.

-Stut

--
http://stut.net/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to