Sending Mail From PHP

PHP provide mail() function to sent mail from PHP scripts. Unlike many other programming languages, sending mail from PHP is very easy.

First Mail Script

day_12_ex_1.php

In following script, edit the variable $toEmail and put your email address.

You can also change $subject and $body variables.

PHP Code:
<?php

$toEmail 
'PUT YOUR EMAIL ADDR HERE';
$subject 'WRITE SUBJECT HERE';
$body '
Hi,

This is my test email body.

Thanks,

Day 12 Mailer
'
;

mail($toEmail$subject$body);

echo 
'Mail sent to ' $toEmail;
Once you run the script, you will get message saying Mail sent.

Since we don't provide FROM email address, it will use servers hostname.


Adding FROM Address

day_12_ex_2.php

PHP Code:
<?php

$toEmail 
'PUT YOUR EMAIL ADDR HERE';
$fromEmail '[email protected]';
$subject 'WRITE SUBJECT HERE';
$body '
Hi,

This is my test email body.

Thanks,

Day 12 Mailer
'
;

$headers 'From: ' $fromEmail

mail($toEmail$subject$body$headers);

echo 
'Mail sent to ' $toEmail;

Creating A Contact Us Form

For most web sites, we will need a contact us Form to sent mail to webmaster. This will hide real email address from public. To create a contact us form, we need 2 web pages, one will show the contact us HTML form page, other will sent mail. Both can be combined into one single PHP script, but lets make 2 files, so it will be less complicated.

day_12_ex_3.html

PHP Code:
<!doctype html>
<
html lang="en">
<
head>
    <
meta charset="UTF-8">
    <
title>Contact Us</title>
</
head>
<
body>

<
form action="day_12_ex_3.php" method="POST">
    
Email<br>
    <
input type="text" name="fromEmail"><br>
    
Message<br>
    <
textarea name="body" cols="30" rows="10"></textarea>
    <
br>
    <
button type="submit" name="submit" value="submit">Send Mail</button>
</
form>

</
body>
</
html

day_12_ex_3.php

This script will handle data submitted by FORM page day_12_ex_3.htrml and sent mail to site owner. You don't have to directly access this page. If you access, script will die with out doing anything.

PHP Code:
<?php

if (isset($_POST['submit'])) {
    
$fromEmail $POST['fromEmail'];
    
$body $_POST['body'];
    
mail('[email protected]','Message from web site'$body'From: ' $fromEmail "\n\r");
    echo 
'Thank you for contacting us.';
} else {
    die(
'Why are you here ? Want to hack my Script ?');
}
Exercise

Try to combine the HTML page and PHP page in example 3 into one single PHP page, this can be done by showing the HTML form page code instead of

PHP Code:
die('Why are you here ? Want to hack my Script ?'); 
in day_12_ex_3.php script.