简体   繁体   English

PHP没有发送邮件

[英]PHP isn't sending mail

I am building a website using a Linode VPS. 我正在使用Linode VPS建立一个网站。

I am using Apache and PHP installed using: 我正在使用以下方式安装Apache和PHP:

apt-get install apache2 php

This is the HTML form: 这是HTML表单:

  <form action="" class="form-horizontal" method="post">
    <div class="form-group">
      <label class="col-sm-2 control-label">Name</label>
      <div class="col-sm-10">
        <input type="email" class="form-control" name="name" placeholder="Name">
      </div>
    </div>
    <div class="form-group">
      <label class="col-sm-2 control-label">Email</label>
      <div class="col-sm-10">
        <input type="text" class="form-control" name="email" placeholder="Email">
      </div>
    </div>
    <div class="form-group">
      <label class="col-sm-2 control-label">IP</label>
      <div class="col-sm-10">
        <input type="text" class="form-control" name="ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>" disabled>
      </div>
    </div>
    <div class="form-group">
      <label class="col-sm-2 control-label">Message</label>
      <div class="col-sm-10">
        <textarea class="form-control" rows="4" name="message"></textarea>
      </div>
    </div>
    <div class="form-group">
      <div class="col-sm-offset-2 col-sm-10">
        <button type="submit" class="btn btn-default">Submit</button>
      </div>
    </div>
  </form>

This is the PHP attempting to send mail: 这是PHP尝试发送邮件的方法:

<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

if(isset($_POST['email'])) {
  $email_to = "webmaster@domain.com";
  $email_subject = "Contact Form";

  $name = $_POST['name'];
  $email = $_POST['email'];
  $ip = $_POST['ip']; 
  $message = $_POST['message']; 


  $email_message  = "Name: ".$name."\n";
  $email_message .= "Email: ".$email."\n";
  $email_message .= "IP: ".$ip."\n";
  $email_message .= "Message: ".$message."\n";

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

mail($email_to, $email_subject, $email_message, $headers);  
?>
<div class="panel panel-success">
  <div class="panel-body">
    Message sent.
  </div>
</div>
<?php

}

?>

The problem is that no e-mail is received and no e-mail is marked as spam. 问题是没有收到电子邮件,也没有电子邮件被标记为垃圾邮件。

I added PHP error reporting: 我添加了PHP错误报告:

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

which doesn't report any errors. 不会报告任何错误。

First you should say which mailer is configurated on your server. 首先,您应该说出在服务器上配置了哪个邮件程序。 Secoundary i'd check if that mailer and the correct path is indicated in the php.ini config file. 麻烦我检查一下该邮件程序和正确的路径是否在php.ini配置文件中指出。 Just a starting point... 只是一个起点...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM