doutuanxiao4619 2014-09-29 20:11
浏览 45

sendmail:传递过程中出错:连接正常关闭。 邮件功能php Xampp

I am new to PHP. I am running XAMPP on Windows 7 PC. I am attempting to create an e-mail contact form using the PHP mail() function. I am uncertain how the configuration of my sendmail.ini and php.ini files affects my code. Does the configuration of the files only affect how the mail function will work on my localhost? or does it affect how the code will run when I upload my content to my web server?

From my php.ini:

[mail function]

; For Win32 only.

SMTP = smtp.gmail.com

smtp_port = 995

; For Win32 only.

sendmail_from = myemail@gmail.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").

sendmail_path = "\"\xampp\sendmail\sendmail.exe\" -t"

; 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 = "\xampp\php\logs\php_mail.log"

From my sendmail.ini:

smtp_server=smtp.gmail.com

; smtp port (normally 25)

smtp_port=995

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

; 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=mydomain.com


; 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=myemail@gmail.com

auth_password=mypassword

; 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=myemail@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=

My code looks like:

        $name = $_POST['name1'];

        $email = $_POST['email'];

        $message = $_POST['body'];

        $body = $message . '
 My email is ' . $email;



        $header1 = "From: $email 
";

        mail("myemail@gmail.com", $_POST['subject'], $body, $header1);
        header('location:Contact.php');

In any case I have been getting two errors: one is that the "connection timed out" and the other is that the "connection closed gracefully.' I googled "connection closed gracefully" and found that I had to run my sendmail.exe file as an administrator and since I am using gmail I had to set up application-specific passwords.

On the post it indicated that I needed to run a server (or IDE) as an administrator as well. Anyone familiar with XAMPP who knows what/where the server/IDE is please respond.

  • 写回答

2条回答 默认 最新

  • douju5062 2014-09-29 23:59
    关注

    Try these and I'll be back when I have more time to update this:

    1) Never install XAMPP in your Programs folder in Windows. This will cause privilege issues. If you have then re-install it elsewhere.

    2) All settings in your sendmail.ini must be configured with what your Apache (Xampp) installation has. The php.ini part you provided is not the full file or the part that has these settings. For example I don;t think your SMTP port is really 995 (I could be wrong).

    3) Look at this post: How to configure XAMPP to send mail from localhost?

    4) SMTP should work now. Your using another mail server (Gmail in this case) to send off your mail. You actually could use your computer as the server too but that is a whole nether issue.

    评论

报告相同问题?

悬赏问题

  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥15 帮我写一个c++工程