PHP邮件功能不起作用,我无法从我的域test@test.com收到电子邮件。它在几天之前就完美地运行了,但现在还没有。
尝试了Stack Overflow上的所有解决方案,但仍未解决。
HTML表单代码:1.html
<form method="post" name="from" action="2.php">
Company Name : <input type="text" name="cname"><input type="submit" value="submit" name="submit">
</form>
PHP邮件代码:2.php
<?php
if(isset($_POST['submit']))
{
$cname=trim($_POST['cname']);
//$cname='"'.$cname.'"';
echo $cname;
/* mail to Admin */
$to = 'test@test.com';
$subject = 'Details : From $cname';
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers = 'From: $cname';
$message = 'Company name : $cname';
if(mail($to, $subject, $message, $headers))
{
echo "Mailer sent!";
} else {
echo "Message Error:";
}
}
?>
答案 0 :(得分:0)
<强> EDIT2:强>
以下是我测试并正在运行的确切代码。
<?php
if(isset($_POST['submit']))
{
$cname=trim($_POST['cname']);
//$cname='"'.$cname.'"';
echo $cname;
/* mail to Admin */
$to = 'test@test.com';
$subject = 'Details : From '.$cname;
$headers = 'From: '.$cname;
$message = 'Company name : '.$cname;
if(mail($to,$subject,$message,$headers))
{
echo "Mailer sent!";
} else {
echo "Message Error:";
}
}
?>
除了标题变量中的额外空格之外,我改变的唯一另一件事是变量与输入数据($ cname)的串联。
电子邮件仍会在没有连接更改的情况下发送,但会显示“$ cname”而不是输入的数据。
编辑:对于标头变量:
$headers = 'From : $cname';
实际应该是:
$headers = 'From: $cname';
我没有注意到From和:之间的额外空间,但是在我测试之后我注意到了它。除非删除了空格,否则未收到电子邮件。
试试这个。
此外,如果发送消息,则mail函数的if语句将触发为true。所以你想交换回波线,因为“错误”输出应该在else部分下面。
<?php
if(isset($_POST['submit']))
{
$cname=trim($_POST['cname']);
//$cname='"'.$cname.'"';
echo $cname;
/* mail to Admin */
$to = 'test@test.com';
$subject = 'Details : From $cname';
$headers = 'From: $cname';
$message = 'Company name : $cname';
if(mail($to,$subject,$message,$headers))
{
echo "Mailer sent!";
} else {
echo "Message Error:";
}
}
?>
答案 1 :(得分:0)
你的2.php应该是这样的:(你在错误的地方打印信息)
$ to应该是一些可以查看电子邮件的工作电子邮件地址。它也适用于LIVE服务器。大部分都没有使用localhost。
<?php
if(isset($_POST['submit']))
{
$cname=trim($_POST['cname']);
//$cname='"'.$cname.'"';
echo $cname;
/* mail to Admin */
$to = 'test@test.com';
$subject = 'Details : From $cname';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: ' . strip_tags($cname) . "\r\n";
$message = 'Company name : $cname';
if(mail($to,$subject,$message,$headers))
{
echo "Message sent!";
} else {
echo "Mailer Error: ";
}
}
?>