使用mail.php时没有邮件发送[重复]

Posted

技术标签:

【中文标题】使用mail.php时没有邮件发送[重复]【英文标题】:No mail were delivered when used mail.php [duplicate] 【发布时间】:2020-03-09 23:57:30 【问题描述】:

我有 Index.html,我在其中创建了包含一些基本字段的表单

 <form class="modal-content animate" action="mail.php" method="post">


        <div class="container-form">
          <label for="full_Name"><b>Full Name</b></label>
          <input type="text" placeholder="Full Name" id="full_Name" name="full_Name" required>

          <label for="telephone_Number"><b>Mobile Number</b></label>
          <input type="text" placeholder="Mobile Number" name="telephone_Number" required>

          <label for="message"><b>Email Id</b></label>
          <input type="text" placeholder="Email Id" name="email_Address" required>
          <button type="submit" name = "submit" id="submit" class="read-more">Submit</button>
        </div>
      </form>

我已经包含了 mail.php

     <?php 
if(isset($_POST['submit']))
    $to = $_POST['email_Address']; // this is your Email address
    $from = $_POST['xyz@gmail.com']; // this is the sender's Email address
    $full_Name = $_POST['full_Name'];
    $telephone_Number = $_POST['telephone_Number'];
    $subject = "Form submission";
    $message = " Dear". "$full_Name . ". "Thanks for contacting " . $telephone_Number . " wrote the following:" . "\n\n" . $_POST['message'];

    $headers[] = 'MIME-Version: 1.0';
    $headers[] = 'Content-type: text/html; charset=iso-8859-1';

    // Additional headers . Your to email id.
    $headers[] = 'From:  <'.$from.'>'; 

    // If you want to add To, Cc and Bcc use this additional headers
    $headers[] = 'To: <'.$to.'>'; 

// Mail it
mail($to, $subject, $message, implode("\r\n", $headers));
    echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
    // You can also use header('Location: thank_you.php'); to redirect to another page.
    // You cannot use header and echo together. It's one or the other.
    
?>

但是当我点击提交按钮时它显示 “邮件已发送,谢谢,我们会尽快与您联系。” 但没有收到任何邮件。

【问题讨论】:

我相信您的邮件功能返回 true 但收件人没有收到任何邮件,在这种情况下,link 会有所帮助 【参考方案1】:

1).你怎么能得到这个$from = $_POST['abc@gmail.com'];?从您的表单代码中,我认为您应该像这样使用$from = $_POST['email_Address'];

2) 来自 PHP 手册 https://www.php.net/manual/en/function.mail.php。

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

更新: 您在这里没有使用标题并将错误的参数传递给mail() 函数。使用下面的代码

// To send HTML mail, the Content-type header must be set. I think you are missing this
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';

// Additional headers . Your to email id.
$headers[] = 'From:  <'.$to.'>'; 

$cc_email= "somecc@email.id"
$bcc_email = "somebcc@email.id"
// If you want to add To, Cc and Bcc use this additional headers
$headers[] = 'To: Mary <'.$to.'>'; // to email ID
$headers[] = 'Cc: '.$cc_email; // Cc email ID
$headers[] = 'Bcc: '.$bcc_email; // Bcc email ID

// Mail it
mail($to, $subject, $message, implode("\r\n", $headers));

【讨论】:

你能简单解释一下吗?根据我的mail.php我哪里出错了? 我已经更新了我的答案检查代码以及 cmets。 它可以工作,但在这种情况下,如果我通过硬编码的电子邮件 ID。 哪个电子邮件 id ? 我已经更新了我的答案,并在上面的答案中替换为您的抄送和密送电子邮件 ID

以上是关于使用mail.php时没有邮件发送[重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法在实时服务器中从Laravel发送邮件[重复]

使用 mail() PHP 脚本的 jQuery AJAX 表单发送电子邮件,但来自 HTML 表单的 POST 数据未定义

我如何使用 php 发送电子邮件,包括 mail.php 文件

如何使用带有附件的 PEAR Mail 包使用 PHP 发送电子邮件

如何使用 phpmailer 从本地主机发送电子邮件?

发送的电子邮件没有数据