php本身提供了一个邮件发送函数mail,可以在程序中直接发送电子邮件,不过该函数要求服务器支持 sendmail 或者必须设置一台不需要中继的邮件发送服务器,但现在要找到一台不需要身份验证的邮件发送中继几乎不可能,所以服务器如果没有安装sendmail服务使用mail函数往往无法成功发送email。
自己如果熟悉SMTP协议,结合socket功能就可以编写高效稳定的邮件发送程序,但对一般用户来说太困难.好在互联网上已经有很多别人编写好的邮件发送模块,我们只需要下载后简单调用即可,十分方便。在此我们给用户推荐一个php下功能十分强大,易用且免费的SMTP类模块-PHPMailer。
下载地址 http://downinfo.myhostadmin.net/phpMailer_v2.3.zip
PHPMailer是一个用于发送电子邮件的PHP函数包。它提供的功能包括:
*.在发送邮时指定多个收件人,抄送地址,暗送地址和回复地址
*.支持多种邮件编码包括:8bit,base64,binary和quoted-printable
*.支持SMTP验证
*.支持冗余SMTP服务器
*.支持带附件的邮件和Html格式的邮件
*.自定义邮件头
*.支持在邮件中嵌入图片
*.调试灵活
*.经测试兼容的SMTP服务器包括:Sendmail,qmail,Postfix,Imail,Exchange等
*.可运行在任何平台之上
下载该组件后,然后把
class.phpmailer.php
class.pop3.php
class.smtp.php
三个class.***.php文件放到网站根目录下,按如下示例编写代码即可实现php在线发送邮件。
一、前台表单,另存为index.html文件- <p><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>">
- <html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>在线留言</title>
- </head></p><p><body>
- <TABLE border=0 cellSpacing=1 width="90%" align=center>
- <form name="phpmailer" action="mail.php" method="post">
- <TBODY>
- <TR>
- <TD height=20 width="29%" align=right><FONT
- color=#000000>收件人邮箱:</FONT></TD>
- <TD height=20 width="71%"><INPUT name="address" type="text" class=text id="title" value="<a href="mailto:lxtdj@163.com">lxtdj@163.com</a>"
- size=30 maxLength=20>
- <FONT color=#ff0000>*</FONT></TD></TR>
- <TR>
- <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=17 width="29%" align=right><FONT
- color=#000000>我的邮箱:</FONT></TD>
- <TD height=17 width="71%"><INPUT class=text maxLength=30
- size=30 type=text name=mymail>
- <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></p>
复制代码 二、后台PHP程序,另存为mail.php文件
<?php
$address = $_POST['address'];
$title = $_POST['title'] ;
$name = $_POST['name'] ;
$tel = $_POST['tel'] ;
$mymail = $_POST['mymail'] ;
$Content = $_POST['Content'] ;
require("class.phpmailer.php"); //下载的文件必须放在该文件所在目录
$mail = new PHPMailer(); //建立邮件发送类
$mail->IsSMTP(); // 使用SMTP方式发送
$mail->Host = "smtp.163.com"; // 您的企业邮局域名
$mail->SMTPAuth = true; // 启用SMTP验证功能
$mail->Username = "jsshedu@163.com"; // 邮局用户名(请填写完整的email地址)
$mail->Password = "53947846"; // 邮局密码
$mail->From = "jsshedu@163.com"; //邮件发送者email地址
$mail->FromName = $name;
$mail->AddAddress("$address", "$name");//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
//$mail->AddReplyTo("", "");
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 添加附件
$mail->IsHTML(true); // set email format to HTML //是否使用HTML格式
$mail->Subject = $title; //邮件标题
$mail->Body ="
姓名:$name <br>
电话:$tel <br>
邮箱:$mymail <br>
内容:$Content
"; //邮件内容
$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //附加信息,可以省略
if(!$mail->Send())
{
echo "邮件发送失败,三秒后返回主页... <p>";
echo "错误原因: " . $mail->ErrorInfo;
exit;
}
header("refresh:3; url=index.html");
echo "邮件发送成功,三秒后返回主页...";
?>
|