Mail in PHP with XAMPP on localhost (windows)

NeverEndingFlashStories
NeverEndingFlashStories used Ask the Experts™
on
Hi,

I am trying to set up mailing using php on my localhost.  
I am not really quite aware what my options are, but a quick search found me sendmail.exe (which hasnt been updated for years, but is included with XAMPP)

Currently, this is what I have :


text.php :
    $to      = 'aaa@gmail.com';
    $subject = 'About localhost';
    $message.="Please...let this work";
    $headers = 'From: xxx@gmail.com' . "\r\n" .
        'Reply-To: xxx@gmail.com' . "\r\n";
    $headers.= "MIME-Version: 1.0\r\n";
    $headers.= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    $headers.= 'X-Mailer: PHP/' . phpversion();
    try {
        mail($to, $subject, $message, $headers);
        echo("hihihihihihi");
    }
    catch (mysqli_sql_exception $e){
        echo ("hahahahahaha");
        echo "well this didnt work out" . $e;
    }

Open in new window



php.ini :

SMTP = smtp.gmail.com
smtp_port = 465
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
mail.add_x_header=Off

sendmail.ini :

smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=ssl
error_logfile=error.log
debug_logfile=debug.log
auth_username=xxx@gmail.com
auth_password=xxx
pop3_server=
pop3_username=
pop3_password=
force_sender=xxx@gmail.com
force_recipient=
hostname=smtp.gmail.com


I have also modified the properties of sendmail.exe so that it is running under administrative mode, with compatibility setting for windows xp sp 3

The result I am getting on the page is as follows

UAC opens up, requesting permission to run sendmail.exe
once I give the permission, sendmail.exe opens up a blank command prompt window
The website keeps loading, waiting for some sort of response from sendmail.exe.

Then nothing happens. The sendmail.exe command prompt never changes.

Any suggestions?
Or maybe a different solution to sendmail?

Thank you
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Dave BaldwinFixer of Problems
Most Valuable Expert 2014

Commented:
For what it's worth, Gmail has changed their login authentication and you will not be able to use that code to connect to Gmail.
Thanks, Dave. Any recommendation on what I need to use/do?
Dave BaldwinFixer of Problems
Most Valuable Expert 2014
Commented:
The only external email client that supports Oauth2 that Google uses is the Current version of Thrundrbird.  Otherwise, you need to open Gmail in your browser.
PMI ACP® Project Management

Prepare for the PMI Agile Certified Practitioner (PMI-ACP)® exam, which formally recognizes your knowledge of agile principles and your skill with agile techniques.

Thanks Dave.
I am keeping the thread alive for a little longer, hoping someone can give me a way to make sending mail using localhost with xampp on windows to work .
So setting up mercury mail server to send mail to thunderbird works. I dont think this can work for other online email, but at least it lets me tests that my code works before i ever have to upload my files to the server.

http://system66.blogspot.ca/2010/01/how-to-send-mail-from-localhost-with.html
I've requested that this question be closed as follows:

Accepted answer: 0 points for NeverEndingFlashStories's comment #a40850913
Assisted answer: 500 points for Dave Baldwin's comment #a40849625

for the following reason:

The tutorial i linked uses outlook express, which is not available anymore for windows 8. So I downloaded thunderbird, and set my pop3 and smtp server to 127.0.0.1 and set all username and password to root.

It worked, if only for testing purposes. I am not sure I like it, but at the moment I dont have a better solution.
A simple and free solution for you would be to install hMail Server on your Windows machine, with hMail replacing "sendmail.exe".

hMail supports setting up your Gmail account as an SMTP relay.

Your PHP.ini file would change as follows:

    SMTP = localhost
    smtp_port = 25
    sendmail_path =
    mail.add_x_header=Off

Then in hMail you add 127.0.0.1 / localhost as a trusted IP.

Add your Gmail account to the
SMTP Relay
details in hMail (described in the documentation for hMail), and you are ready to go.

You can download hMail from https://www.hmailserver.com/

If you don't use it for this project, you might need it in the future for testing purposes.
Going to award points to a new comment.
Thanks guys!

For now, the mercury solution worked. I have spent a day and a half trying sendmail.exe and phpmailer to work to no avail for me through gmail, for something that should work flawlessly if i had done this through a real server, and not a windows localhost one. So i'll keep the suggestion with hmail at the back of my mind for my next project.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial