【问题标题】:Echoes successful but not sending Email from a remote server回显成功但未从远程服务器发送电子邮件
【发布时间】:2012-07-21 05:18:29
【问题描述】:
<?php

$msg="";
if(isset($_POST['submit']))
{

    $from_add = "name@your-web-site.com"; 

    $to_add = "receiver@gmail.com"; //<-- I replaced this with my real gmail account

    $subject = "Test Subject";
    $message = "Test Message";

    $headers = "From: $from_add \r\n";
    $headers .= "Reply-To: $from_add \r\n";
    $headers .= "Return-Path: $from_add\r\n";
    $headers .= "X-Mailer: PHP \r\n";


    if(mail($to_add,$subject,$message,$headers)) 
    {
        $msg = "Mail sent OK";
    } 
    else 
    {
       $msg = "Error sending email!";
    }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
    <title>Test form to email</title>
</head>

<body>
<?php echo $msg ?>
<p>
<form action='<?php echo htmlentities($_SERVER['PHP_SELF']); ?>' method='post'>
<input type='submit' name='submit' value='Submit'>
</form>
</p>


</body>
</html>

我从http://www.html-form-guide.com 得到这个代码,它表示如果正确配置为发送电子邮件,它将检查我的服务器的配置。

我试过了,我上传到我的域,打开后显示回显“邮件发送成功”,但我没有收到邮件。

请帮帮我。

【问题讨论】:

  • 您检查过垃圾邮件过滤器吗?另外,您是否将“发件人”字段更改为有效的电子邮件地址/域?
  • 我不知道如何检查垃圾邮件过滤器。请指导我。我更改了 from 字段。
  • 查看垃圾邮件文件夹。
  • 检查您在 GMail 中的垃圾邮件文件夹
  • 您使用的实际from 地址是什么?这不是Gmail帐户吗?因为 Google 会默默地丢弃任何从外部进入其网络但看起来应该来自其网络的电子邮件。

标签: php email-validation


【解决方案1】:

检查您的服务器是否设置为发送邮件。

您使用的是什么操作系统,邮件服务器?

在 Linux 上尝试从命令行运行 sendmail

echo 'this is a test'| mail -s test_email user@somedomain.com

要检查的其他事项是您在php.ini 中的邮件设置是否正确,没有防火墙阻止外发邮件,并且电子邮件没有被垃圾邮件过滤器捕获。

【讨论】:

  • 你会为 localhost (windows) 上不发送邮件的 XAMPP (Wordpress) 做什么?
【解决方案2】:
 $from_name ="Mahendra";
  $from_mail = "xxxx@gmail.com";
  $to = "xxxx@gmail.com";
  $subject = "Mahendra's Test Mail";
  $mail_body = "This is email test";
  $message = $mail_body ;
  $headers = "MIME-Version: 1.0" . "\r\n";
  $headers .= "Content-type:text/html;charset=UTF-8\r\n";
  $headers .= "From: ".$from_name." <".$from_mail.">\r\n";
  ob_start();
  //$sendmail=mail($to,$subject,$message,$headers);

  if($sendmail)
  {
      echo "Send";
  }
  else
  {
      echo "Not Send";  
   }

试试上面的代码,我确定邮件正在使用上面的代码发送,如果您使用上面的代码并且您的邮件没有发送。那么 100% 的问题出在您的邮件服务器上。在我用过的很多项目中,它的效果都很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 2019-07-08
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多