<span style="color: #6600ff; font-family: Verdana;">$filename = $this->EncodeHeader( basename( iconv('GB2312', 'UTF-8', $path) ) );
$filename = "=?UTF-8?B?".base64_encode( basename( iconv('GB2312', 'UTF-8', $path) ) )."?=";</span>
以上两句任选其中一句,第一句用到了PHPMailer自带的EncodeHeader()方法,第二句是手动构造smtp协议头部信息。
文件名是中文的时候is_file()不能判断出文件是否存在,所以要转码为GB2312,然后发送的时候编码都是utf-8,所以构造smtp头信息的时候又得换码为utf-8编码。
