繁体   English   中英

PHP发送电子邮件

[英]PHP send e-mail

好的,我是php的新手,所以我搜索了该网站,以了解如何在用户填写联系表后向自己发送电子邮件。 我找到了这个答案。

使用相同的脚本通过html表单从PHP表单发送电子邮件

我正在使用所选答案中的代码。 我通过将两个部分合并到一个php页面中来尝试了最佳答案,第二个使用了html和php页面,但我遇到了以下错误:

警告:mail()[function.mail]:无法通过“ localhost”端口25连接到邮件服务器,无法验证php.ini中的“ SMTP”和“ smtp_port”设置,或在第14行的(MY WEBSITE)中使用ini_set()

警告:mail()[function.mail]:无法通过“ localhost”端口25连接到邮件服务器,无法验证php.ini中的“ SMTP”和“ smtp_port”设置,或在第15行的(MY WEBSITE)中使用ini_set()

我把“我的网站”放在那里。

第14和15行是:

mail($to,$subject,$message,$headers);

mail($from,$subject2,$message2,$headers2);

为什么会出现此问题? 我正按照海报所说的去做。

您正在Windows上运行PHP。 在类似Unix的系统上,PHP能够使用内置的sendmail命令发送电子邮件,因此不需要进一步配置。 但是,在Windows上,该命令不存在,因此PHP通过外部SMTP服务器发送电子邮件。

如错误消息所述,要发送电子邮件,您将需要配置php.ini文件或使用ini_set()来设置SMTP和smtp_port ini设置。 您需要指定一个SMTP服务器和smtp_port(通常为25个),您可以从中发送电子邮件。 如果您是从家用计算机运行php,则可能是您的ISP给您提供的任何邮件服务器。 如果您使用的是第三方托管服务提供商,则必须从它们那里获取电子邮件服务器信息(它们实际上可能不允许发送电子邮件,或者可以严格控制您可以发送的数量以防止垃圾邮件)。

ini文件的位置由配置和约定设置。 PHP的配置文件文档 在Windows上,将检查一长串注册表项,然后最终退回到C:\\windowsC:\\winnt ,因此您应该在该目录中查找ini文件。 (运行php --ini还将显示它实际尝试从其中读取ini文件的位置。)

配置文件文档中显示了一个示例配置文件。 如果在安装PHP时尚未安装php.ini ,则可以使用该格式来指导您创建新文件。

我敢打赌,您在Linux服务器上或主机服务器上的内置邮件功能已关闭。 但是,您并非没有选择。

首先考虑您的服务器。 如果您的服务器是共享服务器,并且有可能完全将邮件发送到垃圾邮件。 大多数网站都会外包其消息系统,以减轻服务器负担并确保传递。

如果您不打算外包邮件服务,则需要使用一个可以为您完成大部分繁重工作的库。 我会推荐phpMailer,它甚至具有自动设置的内置功能,其中包含有关如何配置服务器的出色示例。

接下来,在安装php mailer之前,请仔细阅读您的主机服务器,如果它们完全允许您发送邮件,则大多数服务器都具有严格的邮件规则(这意味着您必须确认他们想要的电子邮件)。 他们这样做是为了使服务器保持在垃圾邮件列表之外。

祝好运

暂无
暂无

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

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