mail()不发送和返回false

时间:2016-08-26 17:57:47

标签: php email

我已经更改了我的php.ini文件和sendmail.ini 如下:

[mail function]
; XAMPP: Comment out this if you want to work with an SMTP Server like              Mercury
 SMTP = smtp.gmail.com
 smtp_port = 587

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

来自sendmail.ini: 我改变了:

smtp_server= smtp.gmail.com
smtp_port= 587
smtp_ssl= auto
error_logfile=error.log
auth_username=
auth_password=

在我的mail.php中:

 $send = mail('juntestingwebsite@gmail.com','Sample Mail','Sample content','From: example@example.com');

 if($send)
echo "yes";
else
echo "no";

所以我设置了我的设置并重新安装了XAMPP控制面板并通过localhost / mail.php运行了我的mail.php文件 它返回错误消息“no”因此我知道它根本没有发送。我正在使用gmail。关于什么可能出错的任何想法? 我是新的,所以任何代码或帮助都会很棒!

我正在使用XAMPP版本3.2.1

1 个答案:

答案 0 :(得分:0)

这是我的sendmail.ini

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
auth_username=myemail@gmail.com
auth_password=yourgmailpassword
force_sender=myemail@gmail.com

php / php.ini ----除了sendmail_path& mail.add_x_header

[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 = postmaster@localhost

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

; 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\apache\logs\php_mail.log"

在我更新sendmail文件(旧的不支持smtp)后,这对我有用

  • 转到http://glob.com.au/sendmail/并获取最新的sendmail zip文件
  • 解压缩到桌面并将文件复制到\ xampp \ sendmail文件夹中,替换那里的所有内容。正好!
  • 现在打开sendmail.ini并复制粘贴我上面显示的内容。(首先删除该文件中的所有内容或只是评论所有内容!)
  • 注意:您不需要为此启动Mercury服务器。