Friday, 18 October 2013

Sending e-mail from localhost in Windows Environment by using PHP mail function

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? well in that situation i think i can help you.In this article i am going to tell you how to send e-mail from localhost in PHP.
  • Open the “php.ini“. You should know where it is located because it depends upon the particular server you’re running.
  • Search for the attribute called “SMTP” in the php.ini file.Generally you can 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.wlink.com.np
    smtp_port = 25
  • Restart the apache server so that PHP modules and attributes will be reloaded.
  • 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
  • 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: sender@sender.com’ . “\r\n”;
     mail(“you@yourdomain.com”,”test subject”,”test body”,$headers);
That’s all, the mail is sent to “you@yourdomain.com” from the localhost.

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”.

No comments:

Post a Comment