配置 WAMP 服务器以发送电子邮件
Posted
技术标签:
【中文标题】配置 WAMP 服务器以发送电子邮件【英文标题】:Configure WAMP server to send email 【发布时间】:2011-08-12 00:16:17 【问题描述】:有没有办法可以为 php 配置 WAMP server 以启用 mail()
功能?
【问题讨论】:
这里有不同的方式:***.com/questions/16830673/… 【参考方案1】:我尝试了测试邮件服务器工具,虽然效果很好,但您仍然需要在某些客户端上打开电子邮件。
我找到了剪纸:
https://github.com/ChangemakerStudios/Papercut-SMTP (2021 年更新的网址)
对于配置来说,它就像测试邮件服务器工具(实际上是零配置)一样简单,它还可以用作电子邮件客户端,具有 Message 视图(非常适合 html 电子邮件)、标题、正文(用于检查 HTML)和 原始(完整未解析的电子邮件)。
它还有一个 Sections 视图,用于拆分电子邮件中的不同媒体类型。
它有一个超级干净和友好的用户界面,一个很好的日志查看器,当你收到电子邮件时会通知你。
我觉得它很完美,所以我只想给我的 2c,也许可以帮助别人。
【讨论】:
您的链接现已过时。这是 Github 上 2021 年的项目:github.com/ChangemakerStudios/Papercut-SMTP【参考方案2】:我使用 Mercury/32 和 Pegasus Mail 来获得 mail() 功能。如果您想要一个以您的域名结尾的电子邮件地址,它也可以用作邮件服务器。
【讨论】:
【参考方案3】: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
【讨论】:
我无法在 Windows 上安装 msmtp。我只能找到 tar 文件。 试试我答案中的链接并下载msmtp-1.6.2-w32.zip
sourceforge.net/projects/msmtp/files/msmtp/1.6.2【参考方案4】:
安装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,这基本上就是您需要做的所有事情。
【讨论】:
+1 用于交钥匙解决方案。对于那些需要更多详细步骤的人来说,这是一个附加资源:blog.techwheels.net/… @gianjey 这可以与 Hotmail 等其他帐户一起使用吗?还是您需要注册 Gmail 帐户才能使用它? 当这个方法似乎不再起作用了......假设我已经正确设置了所有内容 嗨@Banning,我刚刚能够毫无困难地设置它,所以它仍然有效。确保您没有在 GMail 帐户上配置两步验证。无论如何,这是一个很好的指南 - blog.techwheels.net/… 不敢相信这是第一次尝试!太不可思议了。唯一让我感到困惑的是,如果您使用的是 gmail,则需要输入您的 gmail 用户名和密码,以便它可以登录电子邮件客户端发送电子邮件。注意:如果您要这样做,请创建一个新的 gmail 帐户,因为这会增加安全风险。【参考方案5】:使用开源程序调用Send Mail,您实际上可以相当容易地通过 wamp 发送。我仍在设置它,但这里有一个great tutorial by jo jordan。设置时间不到 2 分钟。 刚刚尝试过,它就像一个魅力!一旦我取消注释错误日志并发现它在 pop3 身份验证上停滞不前,我就删除了它并且它发送得很好。祝你好运!
【讨论】:
如果您使用的是 Gmail 帐户,则需要允许安全性较低的应用程序访问。为此,当您完成此答案中链接的教程中所说的内容并使用mail
打开 PHP 页面时,您将收到来自 Google 的电子邮件,说明登录尝试已被阻止。在该电子邮件中,单击“检查活动”,然后在打开的页面中,单击“是,是我”,然后单击“了解更多”,然后单击“如果‘不太安全的应用程序访问’已关闭您的帐户”,然后点击“重新打开”,然后打开开关。
另外,在 PHP 中调用 mail
时必须指定 from
标头。例如,您可以使用mail("to@example.com", "Subject", "Content", "From: youremailaddress@gmail.com")
(这是最后一个重要的参数)。【参考方案6】:
您需要一个 SMTP 服务器来发送您的邮件。如果您有一个不需要 SMTP 身份验证的可用设备(可能是您的 ISP?),只需编辑 php.ini 文件中的“SMTP”([邮件功能])设置。
如果这是因为您的 SMTP 服务器需要身份验证而无法选择,您将无法使用内部 mail() 函数,而必须使用一些支持 smtp 身份验证的第 3 方类。例如http://pear.php.net/package/Mail/
【讨论】:
【参考方案7】:从 localhost 配置一个工作的电子邮件客户端是一件很麻烦的事,我花了几个小时的挫折尝试它。我相信更有经验的人可能会提供帮助,或者他们可能会同意我的观点。
如果你只是想测试,这里有一个本地测试邮件的好工具,几乎不需要配置:
http://www.toolheap.com/test-mail-server-tool/
它对我来说很有效,希望这对你有帮助。
【讨论】:
与 wamp 一起工作,无需任何配置。只需使用 Windows Live Mail 打开 .eml(无需配置)。 如果(像我一样)您在调整 php.ini 后得到了这个出色的解决方案,请记住默认配置:[mail function] SMTP = localhost smtp_port = 25 在 Win10 上使用 WAMP 4 为我出色地工作。谢谢韦斯利! 给没有找到下载链接的人去这里:toolheap.com/test-mail-server-tool/users-manual.html 对于那些想要在不禁用adblock的情况下下载这个的人,这里是下载链接:toolheap.com/test-mail-server-tool/TestMailServerToolSetup.exe以上是关于配置 WAMP 服务器以发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
使用 Wamp 在 codeigniter 中发送电子邮件时出错