0

I have been trying to send a mail from my php file to my hotmail acount but the mail is not being sent. This is the code for mail.php:

I have XAMPP for Windows 5.6.15 x86

<?php

    // multiple recipients
    $to  = 'myNail@hotmail.com';
    // subject
    $subject = 'Quick Poll';
    // message

    $message = 'HELLO';

    // To send HTML mail, the Content-type header must be set
    $headers  = 'From: me <myMail@gmail.com>' . "\r\n".
                'MIME-Version: 1.0' . "\r\n".
                'Content-type: text/html; charset=utf-8';


    // Mail it
    if(mail($to, $subject, $message, $headers)){
        echo 'Sent mail';
    }
    else{
        echo 'mail not sent';
    }
?>

The mail is not sending and it is giving me 'mail not sent'

I have configured my sendmail.ini and php.ini these are my configurations

sendmail.ini

; configuration for fake sendmail

; if this file doesn't exist, sendmail.exe will look for the settings in
; the registry, under HKLM\Software\Sendmail

[sendmail]

; you must change mail.mydomain.com to your smtp server,
; or to IIS's "pickup" directory.  (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS's pickup directory cause sendmail to
; run quicker, but you won't get error messages back to the calling
; application.

smtp_server=smtp.gmail.com

; smtp port (normally 25)

smtp_port=465

; SMTPS (SSL) support
;   auto = use SSL for port 465, otherwise try to use TLS
;   ssl  = alway use SSL
;   tls  = always use TLS
;   none = never try to use SSL

smtp_ssl=ssl

; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn't provided
; if you want to override the value in the registry, uncomment and modify

default_domain=localhost

; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging

error_logfile=error.log

; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging

debug_logfile=debug.log

; if your smtp server requires authentication, modify the following two lines

auth_username=myMail@gmail.com
auth_password=password

; if your smtp server uses pop3 before smtp authentication, modify the 
; following three lines.  do not enable unless it is required.

pop3_server=
pop3_username=
pop3_password=

; force the sender to always be the following email address
; this will only affect the "MAIL FROM" command, it won't modify 
; the "From: " header of the message content

force_sender=myMail@gmail.com

; force the sender to always be the following email address
; this will only affect the "RCTP TO" command, it won't modify 
; the "To: " header of the message content

force_recipient=

; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting.  you can manually set the ehlo/helo name if required

hostname=smtp.gmail.com

php.ini

[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"
learningbyexample
  • 1,527
  • 2
  • 21
  • 42
  • This line `sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"` looks wrong, the "\ is to much, the path is not correct. – Philipp Palmtag Dec 28 '15 at 07:20
  • Look at the PHP error log. – Lambic Dec 28 '15 at 07:25
  • @Lambic this is the error in the error log `15/12/28 01:00:12 : Error connecting with SSL.Error connecting with SSL.error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number` – learningbyexample Dec 28 '15 at 07:26
  • I think devpro is right: you have to tell PHP what mail server to use. Also, maybe you should use TLS instead of SSL which is outdated and unsecure. – Lambic Dec 28 '15 at 07:58
  • what worked for me was ` 1º Right click on sendmail.exe 2º Properties 3º Compatibility 4º Change the configuration for all users 5º Execute as Windows XP SP 3 6º Execute as adminitrator And save` – learningbyexample Dec 28 '15 at 17:33

1 Answers1

0

Enabled these in php.ini:

SMTP = localhost
smtp_port = 25
sendmail_from = postmaster@localhost
devpro
  • 16,184
  • 3
  • 27
  • 38