我没有收到此联系表单上的电子邮件,但邮件似乎发送正常,它还会将我重定向到已发送的页面。 我只能通过FTP访问服务器。
PHP
<?php
$to = 'test@gmail.com';
$subject = $_POST['subject'];
$name = $_POST['name'];
$email = $_POST['email'];
$comment = $_POST['comment'];
$body = <<<EMAIL
<html>
<p><h3>Email Submited From Website.</h3></p>
<p><strong>Name:</strong> $name</p>
<p><strong>Email:</strong> $email</p>
<p><strong>Subject:</strong> $subject</p>
<p><strong>Message:</strong> $comment</p>
</html>
EMAIL;
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'To: test email' . "\r\n";
$headers .= 'From: <website@mt.co.uk>' . "\r\n";
//$headers .= 'Cc: noreply@example.com' . "\r\n";
//$headers .= 'Bcc: noreply@example.com' . "\r\n";
if ($_POST['submit']){
mail($to, $subject, $body, $headers);
header ("Location: message-sent.php");
die();
} else {
header ("Location: message-failed.php");
die();
}
?>
答案 0 :(得分:0)
检查邮件是否实际发送:
if (mail($to, $subject, $body, $headers)===false) {
echo "Not sent!";
} else {
echo "Sent!";
}
答案 1 :(得分:0)
改变这个:
$headers .= 'To: test email' . "\r\n";
$headers .= 'From: <website@mt.co.uk>' . "\r\n";
对此:
$headers .= "To: $to <test email>\r\n";
$headers .= "From: website@mt.co.uk <website@mt.co.uk>\r\n";
此外,您需要清理电子邮件的主题和正文以便电子邮件到达,但这通常会在email()报告成功后反映在结果中,在这种情况下,电子邮件会反弹,转到spambox,或者只是被拒绝。
答案 2 :(得分:-1)
如果您的托管服务提供商没有电子邮件服务器,您可以尝试使用免费的电子邮件服务器和phpMailer。 https://github.com/PHPMailer/PHPMailer