Tony White
Tony White

Reputation: 197

Email myself with php

So I have a webpage with a form, and I'm trying to set up a php page where, when the submit button is clicked, it sends all the form information to my email without the user having to use Outlook or any sort of emailing software. I thought I had it right, but instead of running the PHP, it just shows a page of all the php code written out, and nothing arrives at my email. Here's the form:

<form name="infoForm" method="post" action="email.php">
<p class="form">
    Are you a registered voter in the state of Washington?<br>
    <input type="checkbox" id="yesBox"/> Yes<br><br>

    First Name: <input type="text" id="firstName"><br>
    Last Name:<input type="text" id="lastName"><br><br>

    Email: <input type="text" id="email" size="30"><br><br>
    Street Address: <input type="text" id="street1" size="30"><br>
                    <input type="text" id="street2" size="30"><br>
    City: <input type="text" id="city" size="30"><br>
    State: <input type="text" id="state" size="30"><br>
    Zip Code: <input type="text" id="zip" size="30"><br><br>
    Initials: <input type="text" id="initials" size="3"><br><br>

    <input type="submit" name="send" class="inputButton" id="send" value="Submit" disabled=true/> <input type="reset" name="resetFields" class="inputButton" value="Reset"/>
</p>
</form>

And my php code:

<?php
    if(isset($_POST['send'])){
        $to_address="[email protected]";
        $subject="WSA Day of Action Entry";
        $firstname=$_POST['firstname'];
        $lastname=$_POST['lastname'];
        $email=$_POST['email'];
        $street1=$_POST['street1'];
        $street2=$_POST['street2'];
        $city=$_POST['city'];
        $state=$_POST['state'];
        $zip=$_POST['zip'];
        $initials=$_POST['initials'];
        $message="Name: " .$firstname." ".$lastname."\n";
        $message .="Email: " .$email."\n";
        $message .="Street: " .$street1."\n";
        $message .="Street: " .$street2."\n";
        $message .="City: " .$city."\n";
        $message .="State: " .$state."\n";
        $message .="Zip Code: " .$zip."\n";
        $message .="Initials: " .$initials."\n";
        $headers = 'From: '.$email."\r\n".
        'Replay-To: '.$email."\r\n".
        'X-Mailer: PHP/' .phpversion();
        mail($to_address, $subject, $message, $headers);
        }
?><!DOCTYPE HTML>

<html>
<body>
Thank you!
</body>
</html>

Upvotes: 0

Views: 2599

Answers (3)

Ananth
Ananth

Reputation: 1550

You must use this content type as text/html

if(isset($_POST['send'])){
        $to_address="[email protected]";
        $subject="WSA Day of Action Entry";
        $firstname=$_POST['firstname'];
        $lastname=$_POST['lastname'];
        $email=$_POST['email'];
        $street1=$_POST['street1'];
        $street2=$_POST['street2'];
        $city=$_POST['city'];
        $state=$_POST['state'];
        $zip=$_POST['zip'];
        $initials=$_POST['initials'];
        $message="Name: " .$firstname." ".$lastname."\n";
        $message .="Email: " .$email."\n";
        $message .="Street: " .$street1."\n";
        $message .="Street: " .$street2."\n";
        $message .="City: " .$city."\n";
        $message .="State: " .$state."\n";
        $message .="Zip Code: " .$zip."\n";
        $message .="Initials: " .$initials."\n";


$headers=" From : ". $email."\r\n"; 
$headers.= 'MIME-Version: 1.0' . "\r\n";
$headers.= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";


        mail($to_address, $subject, $message, $headers); 
}

Upvotes: 3

Severin
Severin

Reputation: 8588

Sending mail is a bit tricky with PHP. I had a lot of problems until I switched to using this plugin: http://phpmailer.worxware.com/

If you can't make it work you should definitely give it a try.

Upvotes: 0

user3004356
user3004356

Reputation: 880

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";   
$to_address1="Your mail id";
mail($to_address1, $subject, $message, $headers);  

Add this

Upvotes: 0

Related Questions