经过2天的研究,我已经解决了php邮件功能问题,并可以帮助您做同样的事情。这已经浪费了足够的时间,让我们开始吧...
PHP有一个内置的php邮件函数,可用于从脚本发送邮件,但此函数在某种程度上受限,因为它无法连接到简单邮件传输协议(SMTP)服务器。我假设您正在使用WAMP / XAMPP,虽然我没有真正尝试过XAMPP,但是您可以按照以下步骤找出:
首先,我们需要找到一种方法将我们的Web服务器(wamp)连接到外部SMTP。在这种情况下,我们将使用Gmail,但在此之前,我们需要下载/安装一个工具,该工具将从php脚本中抓取我们的电子邮件并将其推送到Gmail SMTP。
First go to http://glob.com.au/sendmail/ and click on the download sendmail.zip
to download.
After downloading, extract to C:\wamp\
extract it as a folder meaning it's contents should be in a folder called sendmail and can be located at C:\wamp\sendmail
.
Now in the send mail folder, right click on sendmail.ini
and open as an administrator since we are about to modify its contents.
change the following lines
[sendmail]
smtp_server=smtp.gmail.com
smtp_port= 465
smtp_ssl=ssl
default_domain=localhost
error_logfile=error.log
debug_logfile=debug.log
auth_username= enter your gmail account here
auth_password= enter the password for that account here
hostname= localhost
请注意并按照上面所示的操作进行。我已经从我的
sendmail.ini
文件中删除了大部分不必要的内容,以使阅读更加轻松。
- 保存文件
- 导航到您的
wamp
文件夹并移动到 bin\apache\apache[version here]\bin\php.ini
,并以管理员身份修改 php 文件,如下所示:
如果您使用记事本,可以在编辑选项卡下使用查找,或者按下 ctrl+F 并输入 "mail function",以快速导航到 php.ini
文件中的邮件功能部分。
[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 =
;For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;http://php.net/sendmail-path
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t -i" ----> this is the changed part.
注意:只需要更改上面提到的
sendmail_path
,其他设置保留原样。您提取sendmail文件夹的位置可能会有所不同。
7.保存
php.ini
文件。
8.返回到
C:\wamp\bin
,选择
php\php[版本号]\php.ini
并像上面一样编辑sendmail路径,保存文件(以管理员身份运行或在打开之前通过右键单击以管理员身份打开)。
9.作为管理员运行wampserver,并在其变成绿色时打开以下内容:
- 左键单击绿色图标并移动到php -> php扩展 -> php_sockets(单击以使其显示黑色勾选)。
- 等待图标再次变为绿色,然后按照上述步骤打开php_openssl。
- 如果图标变为绿色,则是时候通过移动到Apache模块来打开apaches ssl_module了,此操作可以在单击绿色wampserver图标时找到。
完成以上三个步骤后,退出并以管理员身份再次运行wampserver以生效更改。
10.返回sendmail提取的文件夹,右键单击
sendmail.exe
,转到其属性 -> 兼容性 -> 更改所有用户的设置 -> 兼容性模式(更改为Windows XP(Service Pack 3)) -> 以管理员身份运行此程序(选中此选项)。
保存并应用更改。我们必须这样做,以便每次调用sendmail应用程序时,它都会作为管理员运行。
11.现在,我们需要配置Gmail帐户以与此sendmail应用程序配合使用。登录Gmail帐户,在右上角单击齿轮以选择设置。在设置中,移至转发和POP / IMAP选项卡,并启用IMAP。保存更改。
12.最后回到收件箱,在最右上角的电子邮件地址旁边有一个小箭头指向下方,单击它以选择我的帐户。如果您没有这个选项,则可以尝试单击您的个人资料图片,然后从那里选择我的帐户。
单击“登录和安全”选项卡,向下滚动到页面底部。您将找到“允许不安全的应用程序:”,并将其打开。通常情况下,此选项将关闭。
13.这就是你需要做的所有事情,因此您现在可以从本地主机上的php脚本发送电子邮件。您现在可以尝试使用4个最小参数运行
mail()
函数。希望这有所帮助。如果有帮助,请投票,我会花时间发布更多有趣的解决方案。