使用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时没有邮件发送[重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 mail() PHP 脚本的 jQuery AJAX 表单发送电子邮件,但来自 HTML 表单的 POST 数据未定义
我如何使用 php 发送电子邮件,包括 mail.php 文件