[英]PHP send e-mail
好的,我是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:\\windows
或C:\\winnt
,因此您应该在该目录中查找ini文件。 (运行php --ini
还将显示它实际尝试从其中读取ini文件的位置。)
配置文件文档中显示了一个示例配置文件。 如果在安装PHP时尚未安装php.ini
,则可以使用该格式来指导您创建新文件。
我敢打赌,您在Linux服务器上或主机服务器上的内置邮件功能已关闭。 但是,您并非没有选择。
首先考虑您的服务器。 如果您的服务器是共享服务器,并且有可能完全将邮件发送到垃圾邮件。 大多数网站都会外包其消息系统,以减轻服务器负担并确保传递。
如果您不打算外包邮件服务,则需要使用一个可以为您完成大部分繁重工作的库。 我会推荐phpMailer,它甚至具有自动设置的内置功能,其中包含有关如何配置服务器的出色示例。
接下来,在安装php mailer之前,请仔细阅读您的主机服务器,如果它们完全允许您发送邮件,则大多数服务器都具有严格的邮件规则(这意味着您必须确认他们想要的电子邮件)。 他们这样做是为了使服务器保持在垃圾邮件列表之外。
祝好运
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.