Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 4 of 4
  1. #1
    New Coder
    Join Date
    Aug 2011
    Posts
    16
    Thanks
    2
    Thanked 0 Times in 0 Posts

    Problem With Sending Email Through PHP

    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:
    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?

  • #2
    Senior Coder
    Join Date
    Feb 2011
    Location
    Your Monitor
    Posts
    4,341
    Thanks
    60
    Thanked 527 Times in 514 Posts
    Blog Entries
    4
    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.
    See my new CodingForums Blog: http://www.codingforums.com/blogs/tangoforce/

    Many useful explanations and tips including: Cannot modify headers - already sent, The IE if (isset($_POST['submit'])) bug explained, unexpected T_CONSTANT_ENCAPSED_STRING, debugging tips and much more!

  • #3
    New Coder
    Join Date
    Aug 2011
    Posts
    16
    Thanks
    2
    Thanked 0 Times in 0 Posts
    Quote Originally Posted by tangoforce View Post
    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?

  • #4
    Senior Coder
    Join Date
    Feb 2011
    Location
    Your Monitor
    Posts
    4,341
    Thanks
    60
    Thanked 527 Times in 514 Posts
    Blog Entries
    4
    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.
    See my new CodingForums Blog: http://www.codingforums.com/blogs/tangoforce/

    Many useful explanations and tips including: Cannot modify headers - already sent, The IE if (isset($_POST['submit'])) bug explained, unexpected T_CONSTANT_ENCAPSED_STRING, debugging tips and much more!


  •  

    Tags for this Thread

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •