PDA

View Full Version : Problem With Sending Email Through PHP



michaelli321
08-23-2011, 06:05 PM
I downloaded and installed XAMPP on my computer, which includes mysql, php, apache, and mercury. I am currently running everything on localhost. I created a form that was supposed to send an email to me, but I get this error:


Warning: mail() [function.mail]: SMTP server response: 553 We do not relay non-local mail, sorry. in

Here is my code:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Contact Me</title>
</head>
<body>
<h1>Contact Me</h1>
<?php # Script 10.1 - email.php

// Check for form submission:
if (isset($_POST['submitted'])) {

// Minimal for validation:
if (!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['comments']) ) {

// Create the body:
$body = "Name: {$_POST['name']}\n\nComments: {$_POST['comments']}";

// Make it no longer than 70 characters long:
$body = wordwrap($body, 70);

// Send the email:
mail('li.michael1998@gmail.com', 'Contact Form Submission', $body, "From: {$_POST['email']}");

// Print a message:
echo '<p><em>Thank you for contacting me. I will reply some day.</em></p>';

// Clear $_POST (so that the form's not sticky):
$_POST = array();

} else {
echo '<p style="font-weight: bold; color: #C00">Please fill out the form completely.</p>';
}

} // End of main isset() IF.

// Create the HTML form:
?>
<p>Please fill out this form to contact me.</p>
<form action="email.php" method="post">
<p>Name: <input type="text" name="name" size="30" maxlength="60" value="<?php if (isset($_POST['name'])) echo $_POST['name']; ?>" /></p>
<p>Email Address: <input type="text" name="email" size="30" maxlength="80" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>" /></p>
<p>Comments: <textarea name="comments" rows="5" cols="30"><?php if (isset($_POST['comments'])) echo $_POST['comments']; ?></textarea></p>
<p><input type="submit" name="submit" value="Send!" /></p>
<p><input type="hidden" name="submitted" value="TRUE" />
</form>
</body>
</html>


I'm not sure if I need to download something else, or configure php.ini or what. Any help?

tangoforce
08-23-2011, 06:12 PM
I think you'll find with xampp that you need to configure fakesendmail (or similar) to use an SMTP server. By that I mean you need to set your username and password.

michaelli321
08-23-2011, 06:28 PM
I think you'll find with xampp that you need to configure fakesendmail (or similar) to use an SMTP server. By that I mean you need to set your username and password.

Sorry I'm new to computer programming and stuff, how would I do that?

tangoforce
08-23-2011, 06:35 PM
Look in the xampp directory for a directory called fakesendmail (or similar). Go into it and set up the configuration file with your connection settings.

Shouldn't you be asking this on the xampp website? - The error you received is not POHP related. It's a reply from your ISPs SMTP server. Therefor this is not a PHP issue and really the most obvious (and best) place to ask is in the xampp support section of their website.