sendmail.exe opens on sending mail

2019-01-20 13:34发布

I am actually new in using sendmail but I have read a lot about this, and only redirect me to use PHPmailer,swiftmailer etc... But it's so complicated to understand without the knowledge of the basics. So I decided to try simple, and this is what I've got.

I have configured my php.ini:

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

And my sendmail.ini:

[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=
error_logfile=error.log
debug_logfile=debug.log
auth_username=mygmail@gmail.com
auth_password=mypassword
hostname=localhost

and I have this PHP code:

$to      = 'mygmail@gmail.com';
$message = $_POST['message'];
$email = $_POST['email'];
$contact_num = $_POST['contact_number'];
$headers = 'From:'.'$email' . "\r\n" .'$contact' . "\r\n" .
'Reply-To: mygmail@gmail.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($to, $message, $headers);

but whenver i click the submit button the sendmail.exe appears and nothing happens. And when I check the error.log it says:

14/07/01 23:23:48 : Connection Closed Gracefully.

3条回答
相关推荐>>
2楼-- · 2019-01-20 14:20

This part is a copy & paste of post: Sendmail Wamp Php

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

    if you using gmail you need create new password "Your application-specific passwords"

If that still dosen't work (My answer)

Make sure the server (or IDE) is being run 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.

EDIT: This is probally the bug you headed into https://bugs.php.net/bug.php?id=44994

查看更多
一纸荒年 Trace。
3楼-- · 2019-01-20 14:20

solution is setting up sendmail.ini and php.ini

you need to communicante with your isp to find out what is there open smtp server most of them have one and it is like smtp.yourisp.com most of the time.

you may also setup the smtp using your own email sever or existing email address this will require additional settings such as specific smtp server, portnumber, forcing the sendmail from to be the actual mail, username, password and most of the time ssl

php.ini

; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury  SMTP = smtp.yourisp.mu  smtp_port = 25

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

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

Making sure that php and sendmail are run as administrator seems a good idea but this did not solved my problem.

Solution in sendmail.ini

smtp_server = smtp.yourisp.com

; smtp port (normally 25)

smtp_port=25

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

do not use smtp_ssl = auto that was what was causing my bug just set it to ssl tls or none according to specification of your server

查看更多
我命由我不由天
4楼-- · 2019-01-20 14:29

Make sure XAMPP is run as Administrator. Do that by right clicking on it and clicking on "Run as Administrator." That fixed it for me.

查看更多
登录 后发表回答