【发布时间】:2011-08-12 00:16:17
【问题描述】:
有没有办法可以为 PHP 配置 WAMP server 以启用 mail() 功能?
【问题讨论】:
有没有办法可以为 PHP 配置 WAMP server 以启用 mail() 功能?
【问题讨论】:
我尝试了测试邮件服务器工具,虽然效果很好,但您仍然需要在某些客户端上打开电子邮件。
我找到了剪纸:
https://github.com/ChangemakerStudios/Papercut-SMTP (2021 年更新的网址)
对于配置来说,它就像测试邮件服务器工具(实际上是零配置)一样简单,它还可以用作电子邮件客户端,具有 Message 视图(非常适合 HTML 电子邮件)、标题、正文(用于检查 HTML)和 原始(完整未解析的电子邮件)。
它还有一个 Sections 视图,用于拆分电子邮件中的不同媒体类型。
它有一个超级干净和友好的用户界面,一个很好的日志查看器,当你收到电子邮件时会通知你。
我觉得它很完美,所以我只想给我的 2c,也许可以帮助别人。
【讨论】:
我使用 Mercury/32 和 Pegasus Mail 来获得 mail() 功能。如果您想要一个以您的域名结尾的电子邮件地址,它也可以用作邮件服务器。
【讨论】:
Sendmail 对我不起作用,所以我使用了msmtp 1.6.2 w32,大多数人只是按照DeveloperSide 的说明进行操作。以下是后人设置的简要说明:
启用 IMAP 在您的 Gmail 帐户下访问(msmtp 从中发送电子邮件)
为不太安全的应用启用访问权限。登录您的谷歌帐户并转到here
编辑php.ini,找到并更改下面的每个设置以反映以下内容:
; These are commented out by prefixing a semicolon
;SMTP = localhost
;smtp_port = 25
; Set these paths to where you put your msmtp files.
; I used backslashes in php.ini and it works fine.
; The example in the devside guide uses forwardslashes.
sendmail_path = "C:\wamp64\msmtp\msmtp.exe -d -C C:\wamp64\msmtp\msmtprc.ini -t --read-envelope-from"
mail.log = "C:\wamp64\msmtp\maillog.txt"
在与msmtp.exe 文件相同的目录中创建和编辑文件msmtprc.ini,如下所示,将其替换为您自己的电子邮件和密码:
# Default values for all accounts
defaults
tls_certcheck off
# I used forward slashes here and it works.
logfile C:/wamp64/msmtp/msmtplog.txt
account Gmail
host smtp.gmail.com
port 587
auth on
tls on
from ReplaceWithYourEmail@gmail.com
user ReplaceWithYourEmail@gmail.com
password ReplaceWithYourPassword
account default : gmail
【讨论】:
msmtp-1.6.2-w32.zipsourceforge.net/projects/msmtp/files/msmtp/1.6.2
安装Fake Sendmail(下载sendmail.zip)。 然后配置C:\wamp\sendmail\sendmail.ini:
smtp_server=smtp.gmail.com
smtp_port=465
auth_username=user@gmail.com
auth_password=your_password
以上内容适用于 Gmail 帐户。 然后配置php.ini:
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t"
现在,重新启动 Apache,这基本上就是您需要做的所有事情。
【讨论】:
使用开源程序调用Send Mail,您实际上可以相当容易地通过 wamp 发送。我仍在设置它,但这里有一个great tutorial by jo jordan。设置时间不到 2 分钟。
刚刚尝试过,它就像一个魅力!一旦我取消注释错误日志并发现它在 pop3 身份验证上停滞不前,我就删除了它并且它发送得很好。祝你好运!
【讨论】:
mail 打开 PHP 页面时,您将收到来自 Google 的电子邮件,说明登录尝试已被阻止。在该电子邮件中,单击“检查活动”,然后在打开的页面中,单击“是,是我”,然后单击“了解更多”,然后单击“如果‘不太安全的应用程序访问’已关闭您的帐户”,然后点击“重新打开”,然后打开开关。
mail 时必须指定 from 标头。例如,您可以使用mail("to@example.com", "Subject", "Content", "From: youremailaddress@gmail.com")(这是最后一个重要的参数)。
您需要一个 SMTP 服务器来发送您的邮件。如果您有一个不需要 SMTP 身份验证的可用设备(可能是您的 ISP?),只需编辑 php.ini 文件中的“SMTP”([邮件功能])设置。
如果这是因为您的 SMTP 服务器需要身份验证而无法选择,您将无法使用内部 mail() 函数,而必须使用一些支持 smtp 身份验证的第 3 方类。例如http://pear.php.net/package/Mail/
【讨论】:
从 localhost 配置一个工作的电子邮件客户端是一件很麻烦的事,我花了几个小时的挫折尝试它。我相信更有经验的人可能会提供帮助,或者他们可能会同意我的观点。
如果你只是想测试,这里有一个本地测试邮件的好工具,几乎不需要配置:
http://www.toolheap.com/test-mail-server-tool/
它对我来说很有效,希望这对你有帮助。
【讨论】: