从PHP服务器发送电子邮件

从PHP服务器发送电子邮件,php,sendmail,forms,http-post,Php,Sendmail,Forms,Http Post,我在html文件中有一个表单,当用户填写表单并提交表单时,我试图在我的gmail帐户上获取电子邮件。我的网站运行在服务器上,而不是本地主机上。我的代码没有错误,但仍然没有收到电子邮件。我不知道为什么?谁能给我一个示例代码或者告诉我我做错了什么。。先谢谢你。。。 这是我的密码 <form id="main-contact-form" name="contact-form" method="post" action="sendemail.php"> <div class="

我在html文件中有一个表单,当用户填写表单并提交表单时,我试图在我的gmail帐户上获取电子邮件。我的网站运行在服务器上,而不是本地主机上。我的代码没有错误,但仍然没有收到电子邮件。我不知道为什么?谁能给我一个示例代码或者告诉我我做错了什么。。先谢谢你。。。 这是我的密码

<form id="main-contact-form" name="contact-form" method="post" action="sendemail.php">
    <div class="row  wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="300ms">
      <div class="col-sm-6">
        <div class="form-group">
          <input type="text" name="name" class="form-control" placeholder="Name" required="required">
        </div>
      </div>
      <div class="col-sm-6">
        <div class="form-group">
          <input type="email" name="email" class="form-control" placeholder="Email Address" required="required">
        </div>
      </div>
    </div>
    <div class="form-group">
      <input type="text" name="subject" class="form-control" placeholder="Subject" required="required">
    </div>
    <div class="form-group">
      <textarea name="message" id="message" class="form-control" rows="4" placeholder="Enter your message" required="required"></textarea>
    </div>                        
    <div class="form-group">
      <button type="submit" class="btn-submit">Send Now</button>
    </div>
</form>   

立即发送
而sendmail.php是

<?php 
$name = @trim(stripslashes($_POST['name']));
$from       = @trim(stripslashes($_POST['email'])); 
$subject    = @trim(stripslashes($_POST['subject'])); 
$message    = @trim(stripslashes($_POST['message'])); 
$to         = 'khurram.ansar@gmail.com';

$headers   = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: {$name} <{$from}>";
$headers[] = "Reply-To: <{$from}>";
$headers[] = "Subject: {$subject}";
$headers[] = "X-Mailer: PHP/".phpversion();

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

die; 
根据:

应使用CRLF(\r\n)分隔多个额外的标头

因此,您的php文件应该如下所示:

<?php
$name = @trim(stripslashes($_POST['name']));
$from = @trim(stripslashes($_POST['email']));
$subject = @trim(stripslashes($_POST['subject']));
$message = @trim(stripslashes($_POST['message']));
$to = 'khurram.ansar@gmail.com';

$headers = "MIME-Version: 1.0" . "\r\n" .
        "Content-type: text/plain; charset=iso-8859-1" . "\r\n" .
        "From: {$name} <{$from}>" . "\r\n" .
        "Reply-To: <{$from}>" . "\r\n" .
        "Subject: {$subject}" . "\r\n" .
        "X-Mailer: PHP/" . phpversion();

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

die;
?>


var_dump(邮件($to,$subject,$message,$headers))的输出是什么邮件有效吗?尝试
mail('khurram)。ansar@gmail.com“,‘测试’,‘测试’–您已连接到邮件服务器,对吗?您使用的主机是什么?该函数要求
$headers
为字符串,而不是数组。更正邮件头后,请检查垃圾邮件文件夹中的邮件。因为gmail把来自未知服务器的邮件变成了垃圾邮件。