【发布时间】:2015-04-23 06:46:39
【问题描述】:
电子邮件正在到达目标地址,但字段为空白。是什么原因?
我对@987654321@的使用如下:
<?php
header('Content-type: application/json');
$status = array(
'type'=>'success',
'message'=>'Email sent!'
);
$name = @trim(stripslashes($_POST['name']));
$email = @trim(stripslashes($_POST['email']));
$subject = @trim(stripslashes($_POST['subject']));
$message = @trim(stripslashes($_POST['message']));
$email_from = $email;
$email_to = 'info@siteaddress.com';
$body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message;
$success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
echo json_encode($status);
die;
?>
HTML 的形式是:
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php" role="form">
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<input type="text" class="form-control" required placeholder="Name" name="name" id="name">
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<input type="text" class="form-control" required placeholder="Email address" name="email" id="email">
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="form-group">
<textarea name="message" id="message" required class="form-control" rows="8" placeholder="Message" name="message" id="message"></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn btn-danger btn-lg">Send Message</button>
</div>
</div>
</div>
</form>
【问题讨论】:
-
为什么在邮件功能前面加了@? - 另外,当您说空白字段时,是整个邮件/正文都为空,还是您仍然收到邮件中的硬编码文本?
-
可能是编码? $_POST 变量的编码是什么?
-
尝试
echo $body; exit;并检查您是否获得了价值。 -
你错过了
headers。尝试包含此 ` $headers.= "MIME-Version: 1.0\r\n"; $headers .= "内容类型: text/html; charset=iso-8859-1\n"; $headers.= "X 优先级:1\r\n"; ` 并检查 -
开启错误报告,不要使用
@抑制错误消息
标签: php email error-handling sendmail