此代码无法为我发送电子邮件有什么问题?
if (isset($_POST['name']) and (isset($_POST['email'])) and (isset($_POST['text']))) {
$name = $_POST['name'];
$email = $_POST['email'];
$text = $_POST['text'];
if (!empty($name) and !empty($email) and !empty($text)) {
$to = 'info@test34.com';
$subject = 'Testing';
$body = $text;
$headers = 'From : test@test.com';
if(mail($to, $subject,$body,$headers)) {
echo 'Email Has bin sent.';
}
else echo "Can't Send mail";
}
}
我已尝试多次,但代码无效。
HTML是:
<html>
<form action="" method="POST">
Name : <br>
<input type="text" name="name">
<br><br>
Email : <br>
<input type="email" name="email">
<br><br>
Message : <br>
<textarea name="text" rows="6" cols="30"></textarea>
<Br><br>
<input type="submit" value="Send">
</form>
</html>
我现在该怎么办? 请帮帮我:(
答案 0 :(得分:3)
经过测试(完全按照发布使用)
问题似乎是由From
与<{p>}中的:
之间的空格引起的
$headers = 'From : test@test.com';
^-- right there
经过测试,直到我删除它们之间的空格才收到电子邮件。
我还为添加name="submit"
的提交按钮添加了额外的条件语句。
使用以下内容,已成功发送和接收电子邮件。
<?php
if (isset($_POST['submit'])){
if (isset($_POST['name']) && (isset($_POST['email'])) && (isset($_POST['text']))) {
$name = $_POST['name'];
$email = $_POST['email'];
$text = $_POST['text'];
if (!empty($name) && !empty($email) && !empty($text)) {
$to = "info@test34.com";
$subject = 'Testing';
$body = $text;
$headers = 'From: test@test.com';
if(mail($to, $subject,$body,$headers)) {
echo 'Email has been sent.';
}
else { echo "Can't Send mail"; }
}
}
} // closing brace for if (isset($_POST['submit']))
?>
<html>
<form action="" method="POST">
Name : <br>
<input type="text" name="name">
<br><br>
Email : <br>
<input type="email" name="email">
<br><br>
Message : <br>
<textarea name="text" rows="6" cols="30"></textarea>
<Br><br>
<input type="submit" name="submit" value="Send">
</form>
</html>
脚注:如果您不希望在用户点击提交后重新显示该表单,则可以使用以下内容:
if(mail($to, $subject,$body,$headers)) {
echo 'Email has been sent.';
echo "<br>";
echo '<a href="index.php">Click here</a> to return to our Website.';
exit; // this is the command to use in order not to show the form after
}
答案 1 :(得分:1)
试试这个。将and
更改为AND
if (isset($_POST['name']) AND (isset($_POST['email'])) AND (isset($_POST['text']))) {
$name = $_POST['name'];
$email = $_POST['email'];
$text = $_POST['text'];
if (!empty($name) AND !empty($email) AND !empty($text)) {
$to = 'info@test34.com';
$subject = 'Testing';
$body = $text;
$headers = 'From : test@test.com';
if(mail($to, $subject,$body,$headers)) {
echo 'Email Has bin sent.';
}
else echo "Can't Send mail";
}
}