PHP 邮件功能无法使用
PHP mail function dosen't work
我在下面的 PHP 文件中找不到我的错误。我猜 POST 或 SUBMIT 操作有误:
<?php
// Initialize all variables
$name = $email = $betreff = $message = $tel = "";
$destination = 'mymailaddress@host.com';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (!empty($_POST["name"])){
$name = $_POST["name"];
}
if (!empty($_POST["email"])) {
$email = $_POST["email"];
}
if (!empty($_POST["message"])){
$message = $_POST["message"];
}
if (!empty($_POST["subject"])) {
$subject = $_POST["subject"];
}
if (!empty($_POST["tel"])) {
$tel = $_POST["tel"];
}
}
if (isset($_POST['submit'])) {
if ($_POST['name'] && $_POST['email'] && $_POST['message'] !=""){
mail($destination, $subject, $message."\n \n \n Phone#:".$tel, "From: ".$name."<".$email.">");
$mailSent = TRUE;
}
}
if ($mailSent == TRUE){
echo "Thank you!" ;
}
?>
对应HTML代码:
<form method="post" action="">
Name:*</br>
<input name="name" type="text" size="50" maxlength="60" value="<?php echo htmlspecialchars($name);?>"></br>
E-Mail:*</br>
<input name="email" type="text" size="50" maxlength="40" value="<?php echo htmlspecialchars($email);?>"></br>
Phone #:</br>
<input name="tel" type="text" size="50" maxlength="15" value="<?php echo htmlspecialchars($tel);?>"></br>
Subject:</br>
<input name="subject" type="text" size="50" maxlength="50" value="<?php echo htmlspecialchars($subject);?>"></br>
Message:*</br>
<textarea name="message" cols="50" rows="10" wrap="virtual"><?php echo htmlspecialchars($message);?></textarea></br>
<input type="submit" value="Send">
<submit>
</form>
我尝试了几次,但从未收到电子邮件...有什么建议吗?
if (isset($_POST['submit']))
POST 数组是什么样的?上面这行看起来应该是
if (isset($_POST['Send']))
邮件依赖于您的条件语句if (isset($_POST['submit']))
所以给你的提交按钮一个相同的名称属性。
<input type="submit" value="Send" name="submit">
条件语句中的所有内容都没有被执行。
使用错误报告,会抛出 Undefined index submit...
将 error reporting 添加到您的文件的顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告只能在试运行中进行,绝不能在生产中进行。
我还注意到一个杂散的 <submit>
标签;你可以删除它。
我在下面的 PHP 文件中找不到我的错误。我猜 POST 或 SUBMIT 操作有误:
<?php
// Initialize all variables
$name = $email = $betreff = $message = $tel = "";
$destination = 'mymailaddress@host.com';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (!empty($_POST["name"])){
$name = $_POST["name"];
}
if (!empty($_POST["email"])) {
$email = $_POST["email"];
}
if (!empty($_POST["message"])){
$message = $_POST["message"];
}
if (!empty($_POST["subject"])) {
$subject = $_POST["subject"];
}
if (!empty($_POST["tel"])) {
$tel = $_POST["tel"];
}
}
if (isset($_POST['submit'])) {
if ($_POST['name'] && $_POST['email'] && $_POST['message'] !=""){
mail($destination, $subject, $message."\n \n \n Phone#:".$tel, "From: ".$name."<".$email.">");
$mailSent = TRUE;
}
}
if ($mailSent == TRUE){
echo "Thank you!" ;
}
?>
对应HTML代码:
<form method="post" action="">
Name:*</br>
<input name="name" type="text" size="50" maxlength="60" value="<?php echo htmlspecialchars($name);?>"></br>
E-Mail:*</br>
<input name="email" type="text" size="50" maxlength="40" value="<?php echo htmlspecialchars($email);?>"></br>
Phone #:</br>
<input name="tel" type="text" size="50" maxlength="15" value="<?php echo htmlspecialchars($tel);?>"></br>
Subject:</br>
<input name="subject" type="text" size="50" maxlength="50" value="<?php echo htmlspecialchars($subject);?>"></br>
Message:*</br>
<textarea name="message" cols="50" rows="10" wrap="virtual"><?php echo htmlspecialchars($message);?></textarea></br>
<input type="submit" value="Send">
<submit>
</form>
我尝试了几次,但从未收到电子邮件...有什么建议吗?
if (isset($_POST['submit']))
POST 数组是什么样的?上面这行看起来应该是
if (isset($_POST['Send']))
邮件依赖于您的条件语句if (isset($_POST['submit']))
所以给你的提交按钮一个相同的名称属性。
<input type="submit" value="Send" name="submit">
条件语句中的所有内容都没有被执行。
使用错误报告,会抛出 Undefined index submit...
将 error reporting 添加到您的文件的顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告只能在试运行中进行,绝不能在生产中进行。
我还注意到一个杂散的 <submit>
标签;你可以删除它。