使用php+jmail组件提交表单到指定邮箱实例
因为服务器构建于IIS6.0,因此PHP无法使用mail()函数直接发送邮件,推荐使用php+jmail组件发送,具体php处理表单并发送到指定邮箱代码如下(mail.php):<?php
$title=$_POST["title"] ;
$name=$_POST["name"] ;
$tel=$_POST["tel"] ;
$Address=$_POST["Address"] ;
$mail=$_POST["mail"] ;
$Category=$_POST["Category"] ;
$Budget=$_POST["Budget"] ;
$Content=$_POST["Content"] ;
$jmail = new COM('JMail.Message') or die('无法调用Jmail组件');
$jmail->silent = true; //屏蔽例外错误
$jmail->charset = 'gb2312'; //否则中文会乱码
$jmail->From = 'abc@163.com'; //这里理论上是可以不与发件人地址相同的,但用163的试了几次都不行,改成一样的就可以了
$jmail->FromName = $name; //发件人姓名
$jmail->AddRecipient('123@163.com'); //可添加多个邮件接受者
//$jmail->AddRecipient('123456@qq.com');
//$jmail->AddRecipient('123@163.com');
$jmail->Subject = $title; //邮件标题
$jmail->HTMLBody ="
姓名:$name
电话:$tel
地址:$Address
邮箱:$mail
类别:$Category
预算:$Budget
留言:$Content
"; //邮件正文
$jmail->MailServerUserName = 'abc@163.com'; //发信邮件账号
$jmail->MailServerPassword = 'xxxxxxxxxxxx'; //账户的密码
try{
$email = $jmail->Send('smtp.163.com');
if($email) echo '发送成功,三秒后返回主页...';
else echo '发送失败,三秒后返回主页...';
} catch (Exception $e){
echo $e->getMessage();
}
header("refresh:3; url=index.html");
?>
html提交表单代码(index.html):<!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>
<TABLE border=0 cellSpacing=1 width="90%" align=center>
<FORM method="post" action="mail.php">
<TBODY>
<TR>
<TD height=20 width="29%" align=right><FONT
color=#000000>标题名称:</FONT></TD>
<TD height=20 width="71%"><INPUT name="title" type="text" class=text id="title"
size=30 maxLength=20>
<FONT color=#ff0000>*</FONT></TD></TR>
<TR>
<TD height=20 width="29%" align=right><FONT
color=#000000>你的姓名:</FONT></TD>
<TD height=20 width="71%"><INPUT class=text maxLength=20
size=30 type="text" name="name"><FONT color=#ff0000>*</FONT></TD></TR>
<TR>
<TD height=17 width="29%" align=right><FONT
color=#000000>联系电话</FONT><FONT color=#000000>:</FONT></TD>
<TD height=17 width="71%"><INPUT class=text maxLength=20
size=30 type=text name=tel><FONT color=#ff0000>*</FONT></TD></TR>
<TR>
<TD height=18 width="29%" align=right><FONT
color=#000000>详细地址:</FONT></TD>
<TD height=18 width="71%"><INPUT name=Address type=text class=text id="Address"
size=30 maxLength=20></FONT></TD></TR>
<TR>
<TD height=17 width="29%" align=right><FONT
color=#000000>E-Mail:</FONT></TD>
<TD height=17 width="71%"><INPUT class=text maxLength=30
size=30 type=text name=mail></TD></TR>
<TR>
<TD height=18 width="29%" align=right><FONT
color=#000000>摄影类别:</FONT></TD>
<TD height=18 width="71%"><SELECT size=1 name=Category >
<OPTION selected>请你选择摄影类别</OPTION> <OPTION
value=婚纱摄影>婚纱摄影</OPTION> <OPTION value=儿童摄影>儿童摄影</OPTION>
<OPTION value=艺术写真>艺术写真</OPTION> <OPTION
value=主题摄影>主题摄影</OPTION> <OPTION value=全家福>全家福</OPTION>
<OPTION value=其它>其它</OPTION></SELECT><FONT
color=#ff0000>*</FONT>(必选)</TD></TR>
<TR>
<TD height=18 width="29%" align=right><FONT
color=#000000>摄影预算:</FONT></TD>
<TD height=18 width="71%"><SELECT name=Budget size=1 id="Budget">
<OPTION
selected>请你选择摄影预算</OPTION> <OPTION
value=1000元以下>1000元以下</OPTION> <OPTION
value=1000~2000元>1000~2000元</OPTION> <OPTION
value=2000~3000元>2000~3000元</OPTION> <OPTION
value=3000~4000元>3000~4000元</OPTION> <OPTION
value=4000~5000元>4000~5000元</OPTION> <OPTION
value=5000元以上>5000元以上</OPTION></SELECT><FONT
color=#ff0000>*</FONT>(必选)</TD></TR>
<TR>
<TD height=61 width="29%" align=right><FONT
color=#ff0000>*</FONT><B><FONT
color=#000000>简短留言</FONT></B><FONT color=#000000>:</FONT></TD>
<TD height=61 vAlign=top width="71%"><TEXTAREA class=text rows=6 cols=45 name=Content></TEXTAREA><FONT
color=#ff0000>*</FONT></TD></TR>
<TR>
<TD height=23 width="29%" align=right> </TD>
<TD height=23 vAlign=top width="71%"><INPUT class=btn value=提交订单 type=submit name=submit>
<INPUT class=btn value=全部重写 type=reset name=B1></TD></TR></TBODY></FORM></TABLE>
</body>
</html>
<?php
$jmail=new COM('JMail.Message')or die('无法调用Jmail组件');
//打开 php.ini 把com.allow_dcom 设为 TRUE
$jmail->logging='true';
//JMail 手册上的东西 日志文件打开
$jmail->From='163_sina_sohu@163.com';
//JMail 手册上 发信人地址
$jmail->FromName='Jet Wang';
//JMail 手册上 发信人名字
$jmail->AddRecipient('sina_sina_sina@163.com');
//JMail 手册上 收信人地址
//AddRecipient('xxx@xxx.com'); 可以添加很多的 群发.
$jmail->Subject='PHP+Jmail测试发送邮件';
//信件名字
$jmail->Body='PHP+Jmail测试发送邮件';
//信件内容
$jmail->MailServerUserName='163_sina_sohu';
// 这个在手册上翻了半天 用户名 刚开始一直发不出去
$jmail->MailServerPassword='password';
//你的 163 密码
$jmail->Send('smtp.163.com');
// SMTP服务器 我只试了163 其他的没试~
echo 发送成功;
?>
<?php
$jmail = new COM('JMail.Message') or die('无法调用Jmail组件');
$jmail->silent = true; //屏蔽例外错误
$jmail->charset = 'gb2312'; //否则中文会乱码
$jmail->From = 'lxtdj@163.com'; //这里理论上是可以不与发件人地址相同的,但用163的试了几次都不行,改成一样的就可以了
$jmail->FromName = '这里填写发件人姓名';
$jmail->AddRecipient('53947846@qq.com'); //可添加多个邮件接受者
//$jmail->AddRecipient('53947846@qq.com');
//$jmail->AddRecipient('lxtdj@163.com');
$jmail->Subject = '这里显示的是邮件标题';
$jmail->Body = '这里显示的是邮件正文。';
$jmail->MailServerUserName = 'lxtdj@163.com'; //发信邮件账号
$jmail->MailServerPassword = 'xxxxxxxxxxxx'; //账户的密码
try{
$email = $jmail->Send('smtp.163.com');
if($email) echo '发送成功';
else echo '发送失败';
} catch (Exception $e){
echo $e->getMessage();
}
以上代码测试成功,大家可以放心使用!
页:
[1]