Php 如何确保我的邮件($to,$subject,$msg);投递邮件

Php 如何确保我的邮件($to,$subject,$msg);投递邮件,php,Php,我的计算机已经安装了apache(localhost),所以我做了一个注册选项,还有一个电子邮件选项,我向它发送一封激活帐户的邮件。我有一个互联网连接,现在如果在PHP脚本中,我写 邮件($to$subject$msg); 此代码是否会将邮件发送到所需收件人,因为它没有发送邮件。无法100%确定收件人收到了电子邮件 mail()函数根据发送电子邮件时是否出现问题返回一个值。您可以这样做: $successful = mail($to,$subject,$msg); if (!$successfu

我的计算机已经安装了apache(localhost),所以我做了一个注册选项,还有一个电子邮件选项,我向它发送一封激活帐户的邮件。我有一个互联网连接,现在如果在PHP脚本中,我写 邮件($to$subject$msg);
此代码是否会将邮件发送到所需收件人,因为它没有发送邮件。

无法100%确定收件人收到了电子邮件

mail()
函数根据发送电子邮件时是否出现问题返回一个值。您可以这样做:

$successful = mail($to,$subject,$msg);
if (!$successful)
{
    // The email was not sent
}

如果
$successful
的值为
false
,则服务器发送电子邮件时出现问题。因此,将其添加到代码中,看看会发生什么。如果
$successful
true
,则服务器发送电子邮件正常,您的问题可能在于接收电子邮件并将其删除的垃圾邮件过滤器。您可以在中了解有关如何防止这种情况的更多信息。

您还需要包括标题:

$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

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

如果没有标题,您可能会被收件人邮件服务器标记为垃圾邮件

我将此标记为迁移到serverfault.com,因为问题与您的服务器设置有关。我不确定此标记应移到何处。这可能是一个编码问题,可能是服务器问题,也可能是垃圾邮件过滤器问题。将其配置为直接使用SMTP,这样您就可以像通过Outlook/Thunderbird/或任何其他邮件客户端发送邮件一样发送电子邮件,而无需在PC上安装邮件服务器。@John Conde-。。。甚至一个……但我所需要的只是在我的电脑上安装一个网络服务器和一个互联网接入权?我的邮件是否可以发送?还有像这样的邮件服务器。如果你没有,那么你知道为什么它不起作用$成功是错误的。为什么?我不知道。关于可交付性的补充信息。。mail()函数无法保证您的电子邮件将到达目的地。