繁体   English   中英

无法通过“localhost”端口 25 连接到邮件服务器

[英]Failed to connect to mailserver at "localhost" port 25

当我尝试用 PHP 发送电子邮件时,我不断收到此错误:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\dressoholic\register.php on line 50

我的 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 = you@yoursite.com

我使用我的笔记本电脑作为服务器..我做错了什么? 谢谢。

您需要在本地运行邮件服务器。 如果是 Unix,则启用 sendmail 如果是 Windows,请安装 IIs 的 Simple Mail Transfer Server(不确定名称是否正确)组件。 例如,对于 Windows 2003,请按照以下步骤操作: http : //msdn.microsoft.com/en-us/library/8b83ac7t.aspx

使用 php 邮件功能发送邮件。 但是邮件功能需要 SMTP 服务器来发送电子邮件。 我们需要在 php.ini 文件中提及 SMTP 主机和 SMTP 端口。 成功配置 SMTP 服务器后,邮件将通过 php 脚本成功发送。

在 Windows 上,几乎所有的 AMPP(Apache、MySQL、PHP、PHPmyAdmin)包都不包含邮件服务器(但几乎所有裸 linux 都有!)。 所以,在windows下使用PHP时,需要设置一个邮件服务器!

我最好和最简单的工具是这个: http : //smtp4dev.codeplex.com/

SMTP4Dev 是一个简单的单文件邮件服务器工具,它确实收集它发送的邮件(因此它并不真正发送邮件,它只是保留它们以供开发)。 完美的工具。

如果您仅在本地主机上运行您的应用程序并且它尚未上线,我相信使用它发送邮件是非常困难的。

一旦你把你的应用程序放到网上,我相信这个问题应该会自动解决。 但我认为ini_set()可以帮助您在运行时更改php.ini中的值。

首先,您不会被迫在本地主机上使用 SMTP,如果您将本地主机条目更改为来自您的 ISP 提供商(谁会让您中继邮件)的 MTA 的 DNS 名称,它将立即工作,所以没有搞乱你自己的电子邮件服务。 只需尝试使用您的提供商的 SMTP 服务器,它就会立即工作。

PHP 邮件功能可以在 2 种情况下发送电子邮件:

一个。 尝试通过 unix sendmail程序发送电子邮件在 linux 中,它将执行程序“sendmail”,将所有参数都放到 sendmail 中。

或者

连接到邮件服务器(使用 smtp 协议和来自 php.ini 的主机/端口/用户名/pass)并尝试发送电子邮件。

如果 php 无法连接到电子邮件服务器,它将发出警告(并且您在日志中看到此类工作)要解决它,请在本地计算机上安装 smtp 服务器或使用任何可用的服务器。 如何设置/配置 smtp,您可以在 php.net 上找到

将 SMTP=localhost 更改为 SMTP=smtp.gmail.com

php不允许或认为从本地主机发送电子邮件非常困难,但是如果将项目上传到服务器,则可以解决此问题。 如果要检查本地服务器上是否发送了电子邮件,则必须下载smtp4dev并安装并运行它。 如果您的电子邮件发送成功或代码有问题,这会给您一条消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM