0

I'm running a server on my machine but i'm unable to send emails via mail() php function. Mercury server is also running in background.

This is the configuration of my php.ini file

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = webname@localhost.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

And this is the 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=localhost

; smtp port (normally 25)

smtp_port=25

; 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=local

; 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=webname
auth_password=webnamemail

; if your smtp server uses pop3 before smtp authentication, modify the 
; following three lines

;pop3_server=
;pop3_username=
;pop3_password=

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

;force_sender=me@localhost

; 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=localhost

    ; 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"

Am i missing something?

Edit: mail() function returns nothing.

Álvaro González
  • 142,137
  • 41
  • 261
  • 360
siannone
  • 6,617
  • 15
  • 59
  • 89
  • 3
    `I'm unable to send emails via mail()` - what happens when you try? Any errors that might be useful? – DaveRandom Dec 15 '11 at 17:58
  • Do you have a SMTP server in the same machine? Otherwise the first parameters in the sendmail.ini are yet to be set – Alfabravo Dec 15 '11 at 18:02
  • Nothing is returned by the mail function. @Alfabravo Sure, mercury is running in the background. – siannone Dec 15 '11 at 18:05
  • 1
    Sending mails from dynamic IPs is notoriously unreliable. Can you use an external SMTP server instead? – Pekka Dec 15 '11 at 18:09
  • I think yes, i could use Gmail account but i'd like to send emails from my machine since i need just to send them and not to receive. – siannone Dec 15 '11 at 18:11
  • If mail() doesn't return any errors check your mercury log for errors. Can you send mails otherwise with mercury? Maybe there is a firewall blocking mercury in your lan. – Master_ex Dec 15 '11 at 18:14
  • @MaterMorbi - Use `var_dump()` to inspect `mail()`'s output; your *nothing* is probably a boolean FALSE. Also, enable full error reporting. When it returns FALSE, it often emits a warning with additional info. – Álvaro González Dec 15 '11 at 18:15
  • @Mater still. Mails from dynamic IPs get routinely filtered as spam by many systems. That may be your problem already. – Pekka Dec 15 '11 at 18:21
  • @ÁlvaroG.Vicario var_dump() returns nothing too... giving a look to firewall. – siannone Dec 15 '11 at 18:22
  • Just tried to send an email from mercury GUI... it says it's OK but nothing is receaved. Think it's a firewall problem. – siannone Dec 15 '11 at 18:36

1 Answers1

0

try using "post cast server" It has worked out for me.

You will need an additional SMTP Server Application because Xampp doesn't support it. Download "Post Cast Server" version > 2. Goto tools -> Settings -> System -> SMTP server and set Host name as localhost server port as 25. And run the application minimized. It will definitely work because it has worked out for me when I was facing the same problem. And Then select the mail and press start button which will send your mail.

Azan Momin
  • 23
  • 1
  • 3