Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sendmail Wamp Php

Tags:

I have spent all the morning searching this on internet trying to find a solution about this. I have installed wamp server on Windows 8.1 and i'm trying to send some mails with sendmail (http://glob.com.au/sendmail/) and my gmail account

When i configure sendmail to use port nº 465 I always get this error: Socket Error # 10060Connection timed out

If i try to use port nº 587 i get this line on error log: Connection Closed Gracefully. But no email is sent.

This is my sendmail.ini file

[sendmail] smtp_server=smtp.gmail.com ;I tried both: 587, 465 smtp_port=587 ; I tried: "blank, auto ssl, tls, none" smtp_ssl= error_logfile=error.log debug_logfile=debug.log [email protected] auth_password=mypass hostname=localhost 

And this is php.ini file

[mail function] smtp_port = 465 sendmail_path="C:\wamp\sendmail\sendmail.exe -t" mail.add_x_header = On 

ssl_module is active on apache, and php uses php_open_ssl and php_socket extension.

Also i tried to use stunnel whitout any success

EDIT 27/01/2014

I set smtp_port = 465 and smtp_ssl=ssl on sendmail.ini. Also, I set that sendmail.exe has to run as a Windows XP SP3 programs. After doing that, when I run sendmail.exe on windows console, it sends the email correctly. However, when wamp tries to send mails i get this error on sendmail's error logs.: Socket Error # 10060Connection timed out.

This is the code I'm using to test sendmail:

<?php $email = "[email protected]"; $to = "[email protected]"; $subject = "Hi!"; $body = "Hi,How are you?"; $headers = 'From: ' .$email . "\r\n".'Reply-To: ' . $email. "\r\n".'X-Mailer: PHP/' . phpversion(); if (mail($to, $subject, $body, $headers)) echo("<p>Email successfully sent</p>"); else echo("<p>Email delivery failed</p>"); ?> 
like image 317
Rumpelstinsk Avatar asked Jan 24 '14 16:01

Rumpelstinsk


People also ask

Where is sendmail INI in Wamp?

Open the sendmail. ini file located in “c:\wamp64\sendmail\sendmail. ini”.

Does PHP use sendmail?

Introduction. PHP comes with a default function mail() that allows you to sendmail directly from a PHP script.

Can I send email from localhost PHP?

Send Email from Localhost with PHPSet SMTP credentials (host, username, password, and port). Specify sender name and email ( $mail->setFrom ). Set recipient email address ( $mail->addAddress ). Set email subject ( $mail->Subject ).


2 Answers

Finally I found the answer.

The problem is that sendmail has to be run as an administrator. This is the solution to help any one on my situation.

  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 :D

2 days lost in this nonsense :(

like image 52
Rumpelstinsk Avatar answered Oct 17 '22 06:10

Rumpelstinsk


As an extension to the accepted answer:

If you are running the send mail function in PHP, a dialog may come up to ask you to run the 'send mail' app as admin. Upon cliking 'Yes' it will show a command prompt dialog and nothing will happen and you page will hang until the command prompt is closed. The mail function will even return "True", but in reality no message was sent.

To solve this issue, do the instructions same as the accepted answer and ALSO run the server (or IDE) as admin, by either:

1) Right clicking the program (e.g. server, ide, command prompt) and clicking "Run as Administer"

2) OR Right click program> properties> compatiblity> Tick execute as admin

For instance if your using the PHP in built server, run the command prompt as admin and start the server as normal using

C:\wamp\bin\php\php5.5.12\php.exe -S localhost:80 -t C:\Users\path\to\rootFolder 

Of course change the file paths to suit your needs.

Hope this helps someone!!! Spent ages on this!

like image 21
Yahya Uddin Avatar answered Oct 17 '22 05:10

Yahya Uddin