NameSilo

PHP Mail Headers issue

Spaceship Spaceship
Watch

Rudy

Established Member
Impact
16
Hey guys,
For the life of me, I can not get the "From" and "Reply-To" email to show up correctly.

When I send this form to my gmail account (and insert my gmail email address in as the "From" & Reply-To) here's what I get: "@ gmail. com reply-to"

That's including the spaces.

Everything else is showing up correctly.

Ok, so here's my current PHP code:
Code:
$headers = "From: $_POST[email] \n " .
                  "Reply-To: $_POST[email]";
                 $message =
 		"First Name: ".$_POST[name]." \n
 		E-mail Address: ".$_POST[email]." \n
 		Phone Number: ".$_POST[phone]." \n
 		Maiiling Address: ".$_POST[street]." \n
 		".$_POST[city].", ".$_POST[state]." ".$_POST[zip]." \n
 		Questions and Comments: ".$_POST[questions]." \n";
 		mail("my email address", "Submission from Website", $message, $headers);

Any idea what's wrong? Thanks in advance.

- David
 
0
•••
The views expressed on this page by users and staff are their own, not those of NamePros.
Unstoppable DomainsUnstoppable Domains
Headers need to be separated by a CRLF, \r\n.
 
0
•••
Thanks for the response. I made that change, and here's what I'm getting now:

"@ gmail. com reply-to" <FrontPartofGmailAddress>, [email protected]

Where "FrontPartofGmailAddress" is ... well... the obvious. Spaces are also there.

Here's the code of my current header, one more time (with that change):
Code:
$headers = "From: $_POST[email] \r\n " .
                  "Reply-To: $_POST[email]";
 
0
•••
This is what I use - always has worked for me:

PHP:
		$headers = "From: [email protected]\n";
		$headers .= "Reply-To: [email protected]\n";
		$headers .= "Return-Path: [email protected]\n";
		$headers .= "Sender: [email protected]\n";
		$headers .= "MIME-Version: 1.0\n";
		$headers .= "Content-type: text/plain; charset=UTF-8\n";
		$headers .= "Content-transfer-encoding: 8bit\n";
		$headers .= "X-Priority: 3\n";
		$headers .= "X-MSMail-Priority: Normal\n";
		$headers .= "X-Mailer: PHP/" . PHP_VERSION . "\n";
		$headers .= "X-MimeOLE: Produced By PHP/" . PHP_VERSION . "\n";
 
0
•••
Thanks, Eric. The problem is, the information is being submitted via the POST method of an HTML form. I need the posted email address (named "email") to be the "From" and "Reply-to" email address.
 
0
•••
Well...

You can do this:

PHP:
if (preg_match('#^[a-z0-9.!\#$%&\'*+-/=?^_`{|}~]+@([0-9.]+|([^\s\'"<>]+\.+[a-z]{2,6}))$#si', $_POST['email']))
{
	$headers = "From: {$_POST['email']}\n";
	$headers .= "Reply-To: {$_POST['email']}\n";
	$headers .= "Return-Path: {$_POST['email']}\n";
	$headers .= "Sender: {$_POST['email']}\n";
	$headers .= "MIME-Version: 1.0\n";
	$headers .= "Content-type: text/plain; charset=UTF-8\n";
	$headers .= "Content-transfer-encoding: 8bit\n";
	$headers .= "X-Priority: 3\n";
	$headers .= "X-MSMail-Priority: Normal\n";
	$headers .= "X-Mailer: PHP/" . PHP_VERSION . "\n";
	$headers .= "X-MimeOLE: Produced By PHP/" . PHP_VERSION . "\n";

	$message = "First Name: " . $_POST['name'] . "\nE-mail Address: " . $_POST['email'] . "\nPhone Number: ".$_POST['phone'] . "\n";
	$message .= "Maiiling Address: " . $_POST['street'] . "\n" . $_POST['city'] . ", " . $_POST['state'] . " " . $_POST['zip'] . "\n";
	$message .= "Questions and Comments: " . $_POST['questions'] . "\n";
	mail('my email address', 'Submission from Website', $message, $headers);
}
else
{
	echo 'Email invalid.';
}

I added a basic email validation - but a small note: you should validate/sanitize the other inputs as well :)
 
Last edited:
1
•••
That got it working! Thanks a ton!
 
0
•••
Dynadot — .com Registration $8.99Dynadot — .com Registration $8.99
Appraise.net

We're social

Unstoppable Domains
Domain Recover
NameMaxi - Your Domain Has Buyers
  • The sidebar remains visible by scrolling at a speed relative to the page’s height.
Back