Page 1 of 1

Sending e-mail from localhost in PHP in Windows Environment

PostPosted: 08. August 2009 09:29
by aj123cd
Sending e-mail from localhost in PHP in Windows Environment
Have you ever been frustrating, why e-mail is not going from the localhost while using XAMPP or WAMP or any other PHP servers in windows environment?
1. Open the php.ini
2. Search for the attribute called “SMTP” in the php. find the line “SMTP=localhost“. Change the localhost to the SMTP server name of your ISP. And, there is another attribute called “smtp_port” which should be set to 25.I’ve set the following values in my php.ini file.
SMTP = smtp.ISPNAME
smtp_port = 25
3. Restart the apache server so that PHP modules and attributes will be reloaded.
4. Now try to send the mail using the mail() function,
mail(”you@yourdomain.com”,”test subject”,”test body”);
You might get the warning like this,
Warning: mail() [function.mail]: “sendmail_from” not set in php.ini or custom “From:” header missing in C:\Program Files\xampp\htdocs\testmail.php on line 1
5. Now specify the following headers and try to send the mail again,
$headers = "MIME-Version: 1.0\r\n";
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers.= "From: $from\r\n";
Note:
Some smtp server verifies the email address of the sender so the email address which is in the place of “sender@sender.com” should be a valid and existing email address otherwise mail might not be sent to the “you@yourdomain.com”.
SMTP server, just call your ISP (internet service provider) and ask for the SMTP host name and you cannot do it without internet connection.
Full PHP code.
<?php
$to="Recipient Name <somebody@example.com>";
$from="Sender Name <jdoe@example.com>";
$subject="My first HTML E-mail";
$message="<h1>HTML E-mail</h1>
<p>This is an <b>HTML</b> e-mail.</p>";
$headers = "MIME-Version: 1.0\r\n";
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers.= "From: $from\r\n";
if (mail($to, $subject, $message, $headers))
echo "Message Sent!";
else
echo "Failed to send message.";
?>