配置 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.zipsourceforge.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 服务器以发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 从本地 wamp 服务器发送电子邮件?

使用 Wamp 在 codeigniter 中发送电子邮件时出错

在 wamp 服务器上使用 codeigniter 发送邮件时出错

发送电子邮件时 PEAR 邮件身份验证失败

难以配置 SMTP 服务器以发送电子邮件

wamp sendmail 无法通过 smtp.gmail.com:587 发送电子邮件 [重复]