1、下载最新版PHPMailer,解压后将class.phpmailer.php,class.pop3.php,class.smtp.php三个文件复制到/includes/目录下。
2、详细修改说明:
修改说明:改造原来的send_mail为使用phpmailer,支持发送附件
修改文件:/includes/lib_base.php
修改函数:function send_mail
替换函数代码为:
/*
* 邮件发送(采用PHPMailer类)
*
* @param: $name[string] 接收人姓名
* @param: $email[string] 接收人邮件地址
* @param: $subject[string] 邮件标题
* @param: $content[string] 邮件内容
* @param: $type[int] 0 普通邮件, 1 HTML邮件
* @param: $notification[bool] true 要求回执, false 不用回执
* @param: $attach_file[string or array] 附件文件,可以是字串或文件路径数组
*
* @return boolean
*/
function send_mail_ex($name, $email, $subject, $content, $type = 0, $notification=false, $attach_file='')
{
//AUTHOR: HTTP://WWW.G58.NET
/* 如果邮件编码不是EC_CHARSET,创建字符集转换对象,转换编码 */
if ($GLOBALS['_CFG']['mail_charset'] != EC_CHARSET)
{
$name = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $name);
$subject = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $subject);
$content = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $content);
$GLOBALS['_CFG']['shop_name'] = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'],
$GLOBALS['_CFG']['shop_name']);
}
$charset = $GLOBALS['_CFG']['mail_charset'];
$body = eregi_replace("[\]",'',$content);
require_once('class.phpmailer.php');
$mail = new PHPMailer();
/**
* 使用smtp服务发送邮件
*/
if ($GLOBALS['_CFG']['mail_service'] == 1 || !function_exists('mail'))
{
//smtp 发送时的参数
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = $GLOBALS['_CFG']['smtp_host']; // SMTP server
$mail->SMTPAuth = true;
$mail->Username = $GLOBALS['_CFG']['smtp_user'];
$mail->Password = $GLOBALS['_CFG']['smtp_pass'];
//检测环境
if (empty($GLOBALS['_CFG']['smtp_host']) || empty($GLOBALS['_CFG']['smtp_port']))
{
// 如果没有设置主机和端口直接返回 false
$GLOBALS['err'] ->add($GLOBALS['_LANG']['smtp_setting_error']);
return false;
}
else
{
// 发送邮件
if (!function_exists('fsockopen'))
{
//如果fsockopen被禁用,直接返回
$GLOBALS['err']->add($GLOBALS['_LANG']['disabled_fsockopen']);
return false;
}
}
}
//采用mail发送或SMTP发送时的共同参数
$mail->CharSet = $charset;
$mail->From = $GLOBALS['_CFG']['smtp_mail'];
$mail->FromName = $GLOBALS['_CFG']['shop_name'];
$mail->Subject = $subject;
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional,
comment out and test
$mail->MsgHTML($body);
$mail->AddAddress($email, $name);
//处理附件,判断是路径字串还是路径数组
if($attach_file!=''){
if(is_array($attach_file)){
foreach($attach_file as $val){
$mail->AddAttachment($val); // attachment
}
}else{
$mail->AddAttachment($attach_file); // attachment
}
}
if(!$mail->Send()) {
$GLOBALS['err']->add($mail->ErrorInfo);
} else {
return true;
}
}
适用版本:>= 2.62
发布作者:http://www.g58.net



