电子邮件不会用php发送

电子邮件不会用php发送,php,email,Php,Email,我试图通过php发送电子邮件。我曾尝试发送到aol和hotmail帐户,但都没有成功。此外,firebug正在回复我“已发送邮件”,所以我不知道问题出在哪里 $to = '$em'; $subject = "Welcome"; $body = "Hi,\n\nTest"; $mail_sent = @mail($to, $subject, $body); echo $mail_sent ? "Mail sent" : "Mail failed"; $em是从数据库中提取的电子邮件地址

我试图通过php发送电子邮件。我曾尝试发送到aol和hotmail帐户,但都没有成功。此外,firebug正在回复我“已发送邮件”,所以我不知道问题出在哪里

 $to = '$em';
 $subject = "Welcome";
 $body = "Hi,\n\nTest";
 $mail_sent = @mail($to, $subject, $body);
 echo $mail_sent ? "Mail sent" : "Mail failed";

$em是从数据库中提取的电子邮件地址,我已经检查过,$em显然等于电子邮件地址

这里有两个大问题。让我们把它分解一下

$to = '$em';
变量不在内部插值。如果您需要将
$to
分配给
$em
中的值,请去掉引号:
$to=$em

$mail_sent = @mail($to, $subject, $body);
echo $mail_sent ? "Mail sent" : "Mail failed";
。使用它是一种糟糕的做法,因为它会阻止PHP在出现问题时通知您。别管了

这并不是说抑制错误有帮助,因为当某些事情可能出了问题时,他们从来不会抱怨

此外,firebug正在回复我“已发送邮件”,所以我不知道问题出在哪里

 $to = '$em';
 $subject = "Welcome";
 $body = "Hi,\n\nTest";
 $mail_sent = @mail($to, $subject, $body);
 echo $mail_sent ? "Mail sent" : "Mail failed";
mail()
返回true时,就像这里一样,这意味着PHP认为邮件已发送

这并不意味着它实际上是被发送的<代码>邮件()
是一个黑盒子。一旦它认为它成功了,邮件就在其他地方,你无法检查它

请研究使用您的web托管提供商的SMTP服务器和。SwiftMailer使用起来有点复杂,但要开始工作。很好


通过使用不使用
邮件的现代邮件库
,您将能够看到过程中出现的任何错误并加以处理。它还可以让您知道您的邮件已发送,这意味着您可以与您的主机提供商和/或电子邮件提供商联系,以确定邮件未发送的原因。

这里有两个大问题。让我们把它分解一下

$to = '$em';
变量不在内部插值。如果您需要将
$to
分配给
$em
中的值,请去掉引号:
$to=$em

$mail_sent = @mail($to, $subject, $body);
echo $mail_sent ? "Mail sent" : "Mail failed";
。使用它是一种糟糕的做法,因为它会阻止PHP在出现问题时通知您。别管了

这并不是说抑制错误有帮助,因为当某些事情可能出了问题时,他们从来不会抱怨

此外,firebug正在回复我“已发送邮件”,所以我不知道问题出在哪里

 $to = '$em';
 $subject = "Welcome";
 $body = "Hi,\n\nTest";
 $mail_sent = @mail($to, $subject, $body);
 echo $mail_sent ? "Mail sent" : "Mail failed";
mail()
返回true时,就像这里一样,这意味着PHP认为邮件已发送

这并不意味着它实际上是被发送的<代码>邮件()
是一个黑盒子。一旦它认为它成功了,邮件就在其他地方,你无法检查它

请研究使用您的web托管提供商的SMTP服务器和。SwiftMailer使用起来有点复杂,但要开始工作。很好


通过使用不使用
邮件的现代邮件库
,您将能够看到过程中出现的任何错误并加以处理。它还可以让您知道您的邮件已发送,这意味着您可以与主机提供商和/或电子邮件提供商联系,以确定邮件未发送的原因。

您是否检查了SMTP日志?你检查过你的垃圾邮件文件夹了吗?也不要抑制邮件上的错误。如果出现问题,你需要错误!您是否检查了hotmail帐户中的垃圾邮件文件夹?我建议从您的
邮件中删除
@
,并发布报告的错误消息。只需尝试:mail(“whatever@whatever.com“,“我的电子邮件测试”,“测试123”);然后看看会发生什么-将其归结为基本问题,让它工作起来,然后开始变得更复杂。您正在尝试从localhost服务器或服务器上的页面发送电子邮件吗??因为据我所知,你不能在你的电脑上从本地主机发送电子邮件。你检查过SMTP日志了吗?你检查过你的垃圾邮件文件夹了吗?也不要抑制邮件上的错误。如果出现问题,你需要错误!您是否检查了hotmail帐户中的垃圾邮件文件夹?我建议从您的
邮件中删除
@
,并发布报告的错误消息。只需尝试:mail(“whatever@whatever.com“,“我的电子邮件测试”,“测试123”);然后看看会发生什么-将其归结为基本问题,让它工作起来,然后开始变得更复杂。您正在尝试从localhost服务器或服务器上的页面发送电子邮件吗??因为据我所知,你不能在你的电脑上从本地主机发送电子邮件