php中的 mail问题

小黑哥 2008-12-29 01:44:31
各位大哥,这是小弟的一条发送信息到服务器上的语句。没有收到邮件。。请问有什么问题吗?
<!-- Mail -->
<?php
// check if all entries are write
$empty ="";
if (empty($name)) {
$empty = $empty."<li> Ihr Name ist nicht ausgefüllt";
}
if(empty ($mail)) {
$empty = $empty."<li>Ihre Mail-Adresse ist nicht ausgefüllt";
}
if (empty ($subject)) {
$empty = $empty."<li>Betreffzeile ist nicht ausgefüllt";
}
if (empty ($message)) {
$empty = $empty."<li>Ihre Nachricht an uns ist leer";

}
if(!empty($empty)) {
echo "Ihre Nachricht könnte nicht verschickt werden.<br>";
echo "Bitte füllen Sie folgende Angabefelder aus:<br><br>";
echo "$empty <br><br>";
echo "Bitte gehen Sie zurück zum Formular.";
}
else {

// Mailbasic
$text = $_POST[name]."\n".$_POST[mail]."\n".$_POST[subject]."\n".$_POST[message]."\n".$_POST[datum];
$s = mail("customer@german-service.cn", "Anfrage Shop", $text);
echo $s;
/*
$CR = chr(13); //Zeilenwechsel
$LF = chr(10); //Wagenruecklauf
$Ret = $CR.$LF;
$Space = chr(32);
$DRet = $Ret.$Ret;
$breakpoint = chr(7); //Absatzmarke
$message = str_replace($DRet.$breakpoint.$message);
$message = str_replace(Ret.$Space.$message);
$breakpoint = explode($breakpoint.$message);
$max = count($breakpoint);
$Message = "";
for ($i = 0; li <$max; $i++);
$string = format($breakpoint[$i],55); //55 Zeichen, danach kommt ein Zeilenumbruch
$Message = $Message.$string.$DRed;
function format ($string,$size) {
GLOBAL $Ret;
GLOBAL $Space;
$Giveback ="";
$fertig = fase;
while (!$fertig) {
//part 1
$pos = $size;
if (strlen($string)<=$pos) {
$newline = trim ($string);
$Giveback = $Giveback.$newline;
$finish = true;
}else{
// part 2
$out = false;
while (!out) {
// part 3
$Zeichen = substr($string,$pos,1);
$is_blank = ($Zeichen == $Space);
if ($is_blank) {
$newline = trim(substr($string, 0, $pos));
$Giveback = $Giveback.$newline.$Ret;
$string =substr($string,$pos);
$out = true;
} else {
$pos--;
}
$a1="Absender; $Name $Ret";
$a2="E-Mail Adresse: $Mail $Ret";
$a3="date: $date $Ret";
$a4="time: $time $Ret";
$a5="subject: $subject $DRet";
$Message = $a1.$a2.$a3.$a4.$a5.$Message;
mail ($An, $subject, $Message);
echo"<b> Vielen Dank, Ihre Nachricht vom <br>";
echo "$date, $time Uhr wurde versandt.</b>";
}
}
}
return $Giveback;
}

*/
}

?>
...全文
83 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小黑哥 2008-12-30
  • 打赏
  • 举报
回复
各位大侠。。。小弟求救了。。。整了一天一夜也没找出问题在哪。。 菜啊。。
shazhumaiyou 2008-12-30
  • 打赏
  • 举报
回复
先检查程序的核心能否正常发信。

然后再判断其他的东西。

另外 还有可能是被收件的系统认为是垃圾邮件。

测试的时候,一次多发给几个不同的邮箱。测试全面点还是有好处地
小黑哥 2008-12-29
  • 打赏
  • 举报
回复
先整理下格式

<?php
$name = $_POST[name];
$mail = $_POST[mail];
$subject = $_POST[subject];
$message = $_POST[message];

?>

<!-- Mail -->
<?php
// check if all entries are write
$empty ="";
if (empty($name)) {
$empty = $empty."<li> Ihr Name ist nicht ausgefüllt";
}
if(empty ($mail)) {
$empty = $empty."<li>Ihre Mail-Adresse ist nicht ausgefüllt";
}
if (empty ($subject)) {
$empty = $empty."<li>Betreffzeile ist nicht ausgefüllt";
}
if (empty ($message)) {
$empty = $empty."<li>Ihre Nachricht an uns ist leer";

}
if(!empty($empty)) {
echo "Ihre Nachricht könnte nicht verschickt werden.<br>";
echo "Bitte füllen Sie folgende Angabefelder aus:<br><br>";
echo "$empty <br><br>";
echo "Bitte gehen Sie zurück zum Formular.";
}


else {

// Mailbasic

//$text = $_POST[name]."\n".$_POST[mail]."\n".$_POST[subject]."\n".$_POST[message]."\n".$_POST[datum];
//$s = mail("customer@german-service.cn", "Anfrage Shop", $text);
//echo $s;

$CR = chr(13); //Zeilenwechsel
$LF = chr(10); //Wagenruecklauf
$Ret = $CR.$LF;
$Space = chr(32);
$DRet = $Ret.$Ret;
$breakpoint = chr(7); //Absatzmarke
$message = str_replace($DRet.$breakpoint.$message);
$message = str_replace(Ret.$Space.$message);
$breakpoint = explode($breakpoint.$message);
$max = count($breakpoint);
$Message = "";
for ($i = 0; li <$max; $i++);
$string = format($breakpoint[$i],55); //55 Zeichen, danach kommt ein Zeilenumbruch
$Message = $Message.$string.$DRed;
function format ($string,$size) {
GLOBAL $Ret;
GLOBAL $Space;
$Giveback ="";
$fertig = fase;
while (!$fertig) {
//part 1
$pos = $size;
if (strlen($string)<=$pos) {
$newline = trim ($string);
$Giveback = $Giveback.$newline;
$finish = true;
}else{
// part 2
$out = false;
while (!out) {
// part 3
$Zeichen = substr($string,$pos,1);
$is_blank = ($Zeichen == $Space);
if ($is_blank) {
$newline = trim(substr($string, 0, $pos));
$Giveback = $Giveback.$newline.$Ret;
$string =substr($string,$pos);
$out = true;
} else {
$pos--;
}
$a1="Absender; $Name $Ret";
$a2="E-Mail Adresse: $Mail $Ret";
$a3="date: $date $Ret";
$a4="time: $time $Ret";
$a5="subject: $subject $DRet";
$Message = $a1.$a2.$a3.$a4.$a5.$Message;
mail ($An, $subject, $Message);
echo"<b> Vielen Dank, Ihre Nachricht vom <br>";
echo "$date, $time Uhr wurde versandt.</b>";
}
}
}
return $Giveback;
}


}

?>



显示http500错误。
The website cannot display the page
HTTP 500
Most likely causes:
The website is under maintenance.
The website has a programming error.



想是上面的语句出了问题。小弟排查了几个小时,依然没有找到问题的根源。还劳烦哪位过路的大哥帮忙看看阿。。
SICTXK 2008-12-29
  • 打赏
  • 举报
回复
楼上例子 我用过 没用问题
小黑哥 2008-12-29
  • 打赏
  • 举报
回复
用了一个测试的例子,可以成功运行。。




$to = 'customer@german-service.cn';
$subject = 'the subject';
$message = 'hello';

$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();



$s=mail($to, $subject, $message, $headers);
echo $s;

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧