产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请编程助手免费智能写代码、翻译NewAMYSQL 免费MySQL管理工具AMFTP 免费FTP管理客户端

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[求助帖] 帮我看看,哪里错误,也不报错,但邮件就是发不出去

zhangkan7802
铝牌会员
368.13 价值分

zhangkan7802 发表于 2013-08-15 22:14:55
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>报名表格</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="processbaoming.php">
<div>姓名:<input name="name" id="name" type="text" size="11" /></div>
<div>年龄:<input name="age" id="age" type="text" size="2" /></div>
<div>性别:<input name="sex" type="radio" value="mail" />男 <input name="sex" type="radio" value="femail" />女</div>
<div>婚否:<input name="hunfou" type="radio" value="yihun" />已婚 <input name="hunfou" type="radio" value="weihun" />未婚</div>
<div>目的:<input name="mudi" type="text" size="52" /></div>
<div>学历:<input name="xueli" type="text" size="10" /></div>
<div>地址:<input name="dizhi" type="text" size="52" /></div>
<div>手机号码:<input name="dianhua" type="text" size="12" /></div>
<div>E-mail:<input name="email" type="text" size="23" /></div>
<div>账号名(如没有就不填):<input name="id" type="text" size="12" /></div>
<div>QQ号码:<input name="qq" type="text" size="11" /></div>
<div>身体、心理状况描述:<br />
<textarea name="miaoshu" cols="82" rows="8"></textarea></div>
<div>历史:<br />
<textarea name="renshi" cols="82" rows="8"></textarea></div>
<div><input name="" type="submit" value="提交" /></div>
</form>
</body>
</html>

然后processbaoming.php文件内容
<?php
//生成变量名
$name=$_POST['name'];
$age=$_POST['age'];
$sex=$_POST['sex'];
$hunfou=$_POST['hunfou'];
$mudi=$_POST['mudi'];
$xueli=$_POST['xueli'];
$dizhi=$_POST['dizhi'];
$dianhua=$_POST['dianhua'];
$email=$_POST['email'];
$id=$_POST['id'];
$qq=$_POST['qq'];
$miaoshu=$_POST['miaoshu'];
$renshi=$_POST['renshi'];

//配置信息
$toaddress="175475892@qq.com";
$subject="周天功养生法报名表格";
$mailcontent="姓名:".$name."\n".
"年龄:".$age."\n".
"性别:".$sex."\n".
"婚否:".$hunfou."\n".
"目的:".$mudi."\n".
"学历:".$xueli."\n".
"地址:".$dizhi."\n".
"电话号码:".$dianhua."\n".
"E-mail:".$email."\n".
"ID:".$id."\n".
"QQ号码:".$qq."\n".
"身体、心理状况描述:".$miaoshu."\n".
"历史:".$renshi."\n";
//发送邮件
mail($toaddress,$subject,$mailcontent);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>周天功养生法报名表格发送</title>
</head>

<body>
<h1>报名表格已经提交!</h1>
<p>您的报名表格已经成功提交。</p>
</body>
</html>


填写好了表格,点提交,就说<h1>报名表格已经提交!</h1>
<p>您的报名表格已经成功提交。</p>
但问题是邮件没有发出去
评价: 这个问题有价值吗?  没有 (0分)   有, 感谢 (0分)
2013-08-15 22:14:55 1

zhangkan7802
铝牌会员
368.13 价值分

看了php.ini这个文件,
SMTP = localhost
是不是这个错误,要改成127.0.0.1?
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-08-15 22:15:39 2

amysql
创始人
99530.04 价值分

直接用mail的话,有没安装了邮件软件。
另外安全模式下,直接mail也有限制的。
可以切换兼容模式。

建议用SMTP发送。
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-08-15 23:46:09 3

AMH面板 - 好用高效低占用、安全可靠极稳定

zhangkan7802
铝牌会员
368.13 价值分

引用:
amysql 发表于 2013-8-15 23:46
直接用mail的话,有没安装了邮件软件。
另外安全模式下,直接mail也有限制的。
可以切换兼容模式。


邮件软件在哪安装?
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-08-16 09:31:49 4

amysql
创始人
99530.04 价值分

引用:
zhangkan7802 发表于 2013-8-16 09:31
邮件软件在哪安装?

centos sendmail
debian Exim4
等。
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-08-16 11:39:46 5

zhangkan7802
铝牌会员
368.13 价值分

引用:
amysql 发表于 2013-8-16 11:39
centos sendmail
debian Exim4
等。


我是centos系统,麻烦老大帮我找个靠谱教程,我看看
菜鸟接触这些就晕了
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-08-16 12:25:41 6

amysql
创始人
99530.04 价值分

引用:
zhangkan7802 发表于 2013-8-16 12:25
我是centos系统,麻烦老大帮我找个靠谱教程,我看看
菜鸟接触这些就晕了


推荐用SMTP,简单发邮件函数。
$bfconfig = Array (
'sitename' => '网站名称',
);

$mail = Array (
'state' => 1,
'server' => 'smtp.abc.com',
'port' => 25,
'auth' => 1,
'username' => 'admin@abc.com',
'password' => '123456',
'charset' => 'gbk',
'mailfrom' => 'admin@abc.com'
);

function sendmail($mail_to, $mail_subject, $mail_message) {

global $mail, $bfconfig;

date_default_timezone_set('PRC');

$mail_subject = '=?'.$mail['charset'].'?B?'.base64_encode($mail_subject).'?=';
$mail_message = chunk_split(base64_encode(preg_replace("/(^|(\r\n))(\.)/", "\1.\3", $mail_message)));

$headers .= "";
$headers .= "MIME-Version:1.0\r\n";
$headers .= "Content-type:text/html\r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "From: ".$bfconfig['sitename']."<".$mail['mailfrom'].">\r\n";
$headers .= "Date: ".date("r")."\r\n";
list($msec, $sec) = explode(" ", microtime());
$headers .= "Message-ID: <".date("YmdHis", $sec).".".($msec * 1000000).".".$mail['mailfrom'].">\r\n";

if(!$fp = fsockopen($mail['server'], $mail['port'], $errno, $errstr, 30)) {
exit("CONNECT - Unable to connect to the SMTP server");
}

stream_set_blocking($fp, true);

$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != '220') {
exit("CONNECT - ".$lastmessage);
}

fputs($fp, ($mail['auth'] ? 'EHLO' : 'HELO')." befen\r\n");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 220 && substr($lastmessage, 0, 3) != 250) {
exit("HELO/EHLO - ".$lastmessage);
}

while(1) {
if(substr($lastmessage, 3, 1) != '-' || empty($lastmessage)) {
break;
}
$lastmessage = fgets($fp, 512);
}

if($mail['auth']) {
fputs($fp, "AUTH LOGIN\r\n");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 334) {
exit($lastmessage);
}

fputs($fp, base64_encode($mail['username'])."\r\n");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 334) {
exit("AUTH LOGIN - ".$lastmessage);
}

fputs($fp, base64_encode($mail['password'])."\r\n");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 235) {
exit("AUTH LOGIN - ".$lastmessage);
}

$email_from = $mail['mailfrom'];
}

fputs($fp, "MAIL FROM: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $email_from).">\r\n");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 250) {
fputs($fp, "MAIL FROM: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $email_from).">\r\n");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 250) {
exit("MAIL FROM - ".$lastmessage);
}
}

foreach(explode(',', $mail_to) as $touser) {
$touser = trim($touser);
if($touser) {
fputs($fp, "RCPT TO: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $touser).">\r\n");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 250) {
fputs($fp, "RCPT TO: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $touser).">\r\n");
$lastmessage = fgets($fp, 512);
exit("RCPT TO - ".$lastmessage);
}
}
}

fputs($fp, "DATA\r\n");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 354) {
exit("DATA - ".$lastmessage);
}

fputs($fp, $headers);
fputs($fp, "To: ".$mail_to."\r\n");
fputs($fp, "Subject: $mail_subject\r\n");
fputs($fp, "\r\n\r\n");
fputs($fp, "$mail_message\r\n.\r\n");
$lastmessage = fgets($fp, 512);
if(substr($lastmessage, 0, 3) != 250) {
exit("END - ".$lastmessage);
}

fputs($fp, "QUIT\r\n");

}
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-08-16 21:53:36 7

zhangkan7802
铝牌会员
368.13 价值分

本帖最后由 zhangkan7802 于 2013-8-19 12:48 编辑

引用:
amysql 发表于 2013-8-16 21:53
推荐用SMTP,简单发邮件函数。

谢谢老大
评价: 这个答复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-08-19 11:59:04 8
 1  (总1页)
AMH社区列表
用户服务中心