免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2304 | 回复: 1
打印 上一主题 下一主题

php发mail时的问题(附源码),附件为tar包,但是收到确打不开,tar包名字也是乱码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-26 10:55 |只看该作者 |倒序浏览
小弟想在linux下用php发mail,用的是默认的sendmail配置,信是可以正常发,附件为一个tar包,但是收到后却发现tar包名字是乱码,而且在windows下无法打开那个tar附件,winrar报错说文件损坏,以下是小弟代码

//文本内容
$text = "\n系统日志报告\n";
//标题
$subject = "=?UTF-8?B?".base64_encode("系统日报"."?=";
//发送者
$from = "nobody@streamfount";
//接受者
$to = "hjxisking@gmail.com";
//附件
$day_name = date("Ymd".".tar";
$file = "/tmp/".$day_name;
// 定义分界线
$boundary = uniqid( "";
$headers = "Content-type: multipart/mixed; boundary= $boundary\r\n";
$headers .= "Fromfrom\r\n";
//确定上传文件的MIME类型
//if($_FILES['upload_file']['type'])
$mimeType = "application/x-tar";//$_FILES['upload_file']['type'];
//else
//$mimeType ="application/unknown";
//文件名
$fileName = "=?UTF-8?B?".base64_encode("日报"."?=";

// 打开文件
$fp = fopen($file, "r";
// 把整个文件读入一个变量
$read = fread($fp, filesize($file));
//我们用base64方法把它编码
$read = base64_encode($read);
//把这个长字符串切成由每行76个字符组成的小块
$read = chunk_split($read);
//现在我们可以建立邮件的主体
$body = "--$boundary
Content-type: text/plain; charset=utf-8;
Content-transfer-encoding: 8bit
$text
--$boundary
Content-type: $mimeType; name=$fileName;
Content-disposition: attachment; filename=$fileName
Content-transfer-encoding: base64
$read
--$boundary--";
//echo $body;
//发送邮件
//mb_language(’Neutral’);
//mb_internal_encoding(”UTF-8″);
//mb_http_input(”UTF-8″);
//mb_http_output(”UTF-8″);
if(mail($to, $subject,$body,$headers))
print "OK! the mail $from --- $to has been send<br>";
else
print "fail to send mail <br>";


请各位高手解决一下,急!!!

论坛徽章:
0
2 [报告]
发表于 2006-09-26 13:06 |只看该作者

回复 1楼 hjxisking 的帖子

附件tar包乱码问题,如果将
--$boundary
Content-type: $mimeType; name=$fileName;
Content-disposition: attachment; filename=$fileName
Content-transfer-encoding: base64
$read
--$boundary--";
里面的name改成英文的名字就可以了,但是保存下来的附件却还是打不开
另有一个奇怪的现象,如果改一下mimetype,是发text/plain文本的话,收到的文件可以打开,但是,文件头上会少掉1到2行字,我猜是tar包也是因为这个原因,头上少了点东西,所以导致tar包损坏无法打开
但是问题该如何解决呢,没有人发表一下意见吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP