php 从本地主机服务器 xampp/sendmail 发送电子邮件
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/20327913/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Sending email from localhost server xampp/sendmail
提问by user2406993
I have set up a PHP site that will be locally hosted. One function of this is to send an email with items from a shopping cart. When hosted online (for testing) the email() function worked perfectly sending email.
我已经建立了一个将在本地托管的 PHP 站点。其中一个功能是发送一封包含购物车中商品的电子邮件。当在线托管(用于测试)时,email() 函数可以完美地发送电子邮件。
I'm now transferring the site to a local machine, and am unable to send email.
我现在正在将站点转移到本地计算机,但无法发送电子邮件。
Originally the emails came from [email protected] which worked well, although I'd happily set up a gmail or similar to handle the sending.
最初这些电子邮件来自 [email protected],它运行良好,尽管我很乐意设置一个 gmail 或类似的邮件来处理发送。
I've read a few tutorials about setting things up and have firstly tried using sendmail and a gmail address.
我已经阅读了一些关于设置的教程,并首先尝试使用 sendmail 和 gmail 地址。
I'm wondering if there's something simple I've missed in setting up the ini files.
我想知道在设置 ini 文件时是否遗漏了一些简单的东西。
I edited my php.ini file as follows:
我编辑了我的 php.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 = [email protected]
; 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"
and then my sendmail.ini file as follows:
然后我的 sendmail.ini 文件如下:
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=password
[email protected]
回答by Faiz Rashid
Try this
尝试这个
sendmail.ini
发送邮件文件
[sendmail]
[发邮件]
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=ssl
error_logfile=error.log
debug_logfile=debug.log
auth_username=[email]@gmail.com
auth_password=[email password]
pop3_server=
pop3_username=
pop3_password=
force_sender=[email]@gmail.com
force_recipient=
hostname=smtp.gmail.com
php.ini
配置文件
[mail function]
【邮件功能】
SMTP = smtp.gmail.com
smtp_port = 465
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
mail.add_x_header=Off

