<?php
require_once 'Mail.php';//引入发送邮件的类
require_once 'Mail/mime.php';//引入发送邮件附件的类
/***************************************************************************/
//定义变量
$mailpro = 'smtp'; //邮件发送协议类型
$smtpserver = $_POST['smtpserver'];//smtp服务器
$smtpport = $_POST['smtpport'];//smtp端口号
$smtpauth = true;//smtp服务器是否需要验证
$smtpusername = $_POST['user'];//用户名
$smtppass = $_POST['smtppass'];//邮箱密码
$smtpusermail = $_POST['smtpusermail'];//发件人的邮箱地址
$smtpto = $_POST['to'];//收信人地址
$mailsubject = $_POST['subject'];//邮件标题
$mailbody = $_POST['body'];//邮件内容
//$addfile = 'test.txt'; //邮件附件路径
//附件变量的定义……
$addfile = $_FILES["upfile0"]['tmp_name'];//上传附件的路径和文件名
$addfiletype = $_FILES["upfile0"]['type'];//邮件附件的格式
$addfilerename = $_FILES["upfile0"]['name']; //邮件附件重命名
$addfilecode = 'quoted-printable';//邮件附件的编码方式
/**************************************************************************/
//定义一个二维数组
$conf['mail'] = array(
'host' => $smtpserver, //smtp服务器地址,可以用ip地址或域名
'port' => 25,//端口号
'auth' => true, //true表示smtp服务器需要验证,false代码不需要
'username' => $smtpusername, // 用户名
'password' => $smtppass //密码
);
/***
*使用$headers数组,可以定义邮件头的内容,比如使用$headers['Reply-To']可以定义回复地址
*通过这种方式,可以很方便的定制待发送邮件的邮件头
***/
$headers['From'] = $smtpusermail;//发信地址
$headers['To'] = $smtpto; //收信地址
$headers['Subject'] = $mailsubject; //邮件标题
$mail_object = &Mail::factory($mailpro, $conf['mail']);//创建一个mail类对象的引用
//$body = 'hello world!!!'; //邮件正文
/*******************************************************************************/
//邮件附件
$mime = new Mail_Mime("/r/n");//创建一个新的Mail_Mime类的实例
$mime->setTXTBody($mailbody);//邮件显示内容
$mime->addAttachment(
$addfile,//上传的附件的路径和文件名
$addfiletype, //上传的附件的格式
$addfilerename,//上传后附件重命名
TRUE,//上传附件后,是true,附件内容显示的是附件内容;是false,附件内容显示的是文件名
$addfilecode//文件数据的编码方式,默认是base64,文本文件(eg. scripts/html etc.)编码方式为:quoted-printable
);
$body = $mime->get();//邮件内容赋给变量body
$hdrs = $mime->headers($headers);//返回一个数组,这个数组包涵发送邮件的发信地址、收信地址、和邮件标题等内容
//$mail_res = $mail_object->send($headers['To'], $headers, $body); //发送
$mail_res = $mail_object->send($headers['To'], $hdrs, $body);//实现带附件的邮件发送
if(PEAR::isError($mail_res)){ //检测错误
die($mail_res->getMessage());
}
else
echo "You Have Send a Email!";
?>