我有网站,我不专业,但我已经完成除了发送邮件的问题。
当我单击“立即发送”按钮时,屏幕上会显示消息“感谢您的消息”,但我没有收到任何电子邮件。
我检查了垃圾邮件箱,它不在那里
我检查了phpinfo SMTP端口打开和25
我检查了phpinfo senmail路径/usr/sbin/sendmail-t-I
我打电话给托管公司发邮件,他们说每次都可以服务器端检查你的send mail脚本。
这里是sendmail.php文件;
<?php
$name = @trim(stripslashes($_POST['name']));
$from = @trim(stripslashes($_POST['email']));
$subject = @trim(stripslashes($_POST['subject']));
$message = @trim(stripslashes($_POST['message']));
$to = 'tradertarik@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;
我需要帮助找出问题所在。我检查了其他的问题,不知怎么问,这对我没有帮助。
提前谢谢。
另外,我不确定是否有人需要表单html代码,但我认为添加它也会很好。
<div class="contact-form wow fadeIn" data-wow-duration="1000ms" data-wow-delay="600ms">
<div class="row">
<div class="col-sm-6">
<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>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<input type="email" name="email" class="form-control" placeholder="Email Address" required>
</div>
</div>
</div>
<div class="form-group">
<input type="text" name="subject" class="form-control" placeholder="Subject" required>
</div>
<div class="form-group">
<textarea name="message" id="message" class="form-control" rows="4" placeholder="Enter your message" required></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn-submit">Send Now</button>
</div>
</form>
</div>
最佳答案
$headers
参数不正确;应该是string
而不是array
。从PHP manual开始:
要插入电子邮件头末尾的字符串。
这通常用于添加额外的标题(From、Cc和Bcc)。应使用CRLF(\r\n)分隔多个额外的头。如果使用外部数据组成此头,则应清除数据,以便不会插入不需要的头。
你应该能够像这样解决问题:
mail($to, $subject, $message, implode("\r\n", $headers));