PHP发送电子邮件

时间:2016-01-09 07:00:40

标签: php html forms email

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

Send email with PHP from html form on submit with the same script

我使用了所选答案中的代码。我尝试了最佳答案,将两个部分组合成一个php页面,第二个,使用html和php页面,但我收到以下错误:

  

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

     

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

"我的网站"被我放在那里。

第14行和第15行是:

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

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

为什么我会遇到这个问题?我正在做海报所说的事情。

2 个答案:

答案 0 :(得分:1)

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

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

ini文件的位置由配置和约定设置。 PHP的configuration file documentation。在Windows上,会检查一长串注册表项,然后再返回C:\windowsC:\winnt,这样您就应该查找您的ini文件。 (运行php --ini也会显示它实际尝试从哪里读取ini文件。)

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

答案 1 :(得分:0)

我敢打赌你在Linux服务器上,或者主机服务器内置了邮件功能。你不是没有选择。

首先考虑一下你的服务器。如果您的服务器是共享服务器,并且您可能会将邮件发送到垃圾邮件(如果它已完全发送)。大多数网站都会使用其消息系统来保持服务器的负载并确保交付。

如果您不在市场上外包邮件服务,则需要使用可以为您完成大部分繁重工作的库。我建议phpMailer它甚至还有一个自动设置内置,并提供了有关如何配置服务器的很好的示例。

接下来,在您安装php邮件程序之前,请阅读您的主机服务器。如果他们允许您发送邮件,那么大多数邮件都会有严格的邮件规则(意味着您必须保留他们想要的确认邮件)。他们这样做是为了让他们的服务器远离垃圾邮件列表。

祝你好运