I am trying to use php to deliver a simple mail. Before I am using WAMP server, however as it does not include a SMTP client/server, so I switch to XAMPP. By using XAMPP, the mail() function returns true this time, however, when I check my gmail mailbox, I cannot receive the mail successfully. My XAMPP is installing on Window Server 2008. Based on what I have read, I think the cause of mail cannot be sent is Window does not have a mail server installed, so I checked in the server manager of Window, however it shows that SMTP server has been installed, so I have no idea what is the cause of the problem.
Here is my PHP code:
$subject = "Simple mail"; $message = "Here is a test mail"; $to = "firstname.lastname@example.org"; $from = "email@example.com"; $header = "From: ".$from; if(mail($to, $subject, $message, $header)) print "success<br>"; else print "fail<br>";
Below is the part about mail in php.ini, I have not made any changes:
[mail function] ; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury ; SMTP = localhost ; smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from ;sendmail_from = postmaster@localhost ; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesC:\xampp) fakemail and mailtodisk do not work correctly. ; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path. ; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder) ;sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" ; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the C:\xampp\mailoutput folder sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe" ; Force the addition of the specified parameters to be passed as extra parameters ; to the sendmail binary. These parameters will always replace the value of ; the 5th parameter to mail(), even in safe mode. ;mail.force_extra_parameters = ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename mail.add_x_header = Off ; Log all mail() calls including the full path of the script, line #, to address and headers ;mail.log = "C:\xampp\php\logs\php_mail.log"
At last here is the picture to show:
Set up mail server with Mercury: