如何把php导出的Excel 作为邮件发送

hxl5u 2014-06-11 05:00:33
现在实现了点击后下载excel,和发送文本邮件的功能,怎么能结合下,把php导出的excel作为附件发送就完美了。
1 .生成excel:

header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=".$filename.".xls");
header("Pragma: no-cache");
header("Expires: 0");

if (!empty($title)){
foreach ($title as $k => $v) {
$title[$k]=iconv("UTF-8", "GB2312",$v);
}
$title= implode("\t", $title);
echo "$title\n";
}
if (!empty($data)){
foreach($data as $key=>$val){
foreach ($val as $ck => $cv) {
$data[$key][$ck]=iconv("UTF-8", "GB2312", $cv);
}
$data[$key]=implode("\t", $data[$key]);
}
echo implode("\n",$data);
}


2 . 发送邮件:
用了phpmailer类库

$mail = new PHPMailer();
$mail->CharSet = 'UTF-8';
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = '';
$mail->Host = $config['SMTP_HOST']; // SMTP 服务器
$mail->Port = $config['SMTP_PORT']; // SMTP服务器的端口号
$mail->Username = $config['SMTP_USER']; // SMTP服务器用户名
$mail->Password = $config['SMTP_PASS']; // SMTP服务器密码
$mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']);
$replyEmail = $config['REPLY_EMAIL']?$config['REPLY_EMAIL']:$config['FROM_EMAIL'];
$replyName = $config['REPLY_NAME']?$config['REPLY_NAME']:$config['FROM_NAME'];
$mail->AddReplyTo($replyEmail, $replyName);
$mail->Subject = $subject;
$mail->MsgHTML($body);
$mail->AddAddress($to, $name);
if(is_file($attachment)){ // 添加附件
$mail->AddAttachment($attachment);
}
return $mail->Send()
...全文
669 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowyzhao 2015-07-13
  • 打赏
  • 举报
回复
引用 10 楼 hxl5u 的回复:
[quote=引用 9 楼 chinmo 的回复:] 提个思路,你可参考下: 先把excel保存在服务器上,然后获得该excel的路径,然后作为附件进行email发送,如果你不需要这个文件了,然后再执行删除操作就OK了
en 就是不想生成文件 直接获取内容发送文件 然后删除临时文件。。 已经按 @xuzuning 大哥的方法实现 谢谢你[/quote] 亲,为什么我用了ob_get_clean 还弹出另存 ???
hxl5u 2014-06-27
  • 打赏
  • 举报
回复
引用 9 楼 chinmo 的回复:
提个思路,你可参考下: 先把excel保存在服务器上,然后获得该excel的路径,然后作为附件进行email发送,如果你不需要这个文件了,然后再执行删除操作就OK了
en 就是不想生成文件 直接获取内容发送文件 然后删除临时文件。。 已经按 @xuzuning 大哥的方法实现 谢谢你
  • 打赏
  • 举报
回复
提个思路,你可参考下: 先把excel保存在服务器上,然后获得该excel的路径,然后作为附件进行email发送,如果你不需要这个文件了,然后再执行删除操作就OK了
  • 打赏
  • 举报
回复
汗!那样导出的还没有路径,你如何作为附件发送呢?? 你这不是天方夜谭么?
hxl5u 2014-06-12
  • 打赏
  • 举报
回复
可能要写到磁盘上 ,在发送这个磁盘文件。。
xuzuning 2014-06-12
  • 打赏
  • 举报
回复
看了还问? ob_get_clean
hxl5u 2014-06-12
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
肯定是你哪里出错了,认真检查一下 你实际输出的是文本文件,用记事本就可打开 ob 函数的功能、用法,手册中都有
嗯嗯 看了用法 能做到禁止输出吗? 写完附件清除。。 不弹出另存
xuzuning 2014-06-12
  • 打赏
  • 举报
回复
肯定是你哪里出错了,认真检查一下 你实际输出的是文本文件,用记事本就可打开 ob 函数的功能、用法,手册中都有
hxl5u 2014-06-12
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
第7行处加入
ob_start();

第23行后加入
$s = ob_get_flush();
file_put_contents($filename.".xls", $s);
$attachment = $filename.".xls";
执行邮件发送

加了ob_start() excel打不开了,怎么能做到不弹出另存excel的输出呢,就附件只送到$s = ob_get_flush();这里。 不再浏览器界面上任何弹出
hxl5u 2014-06-11
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
第7行处加入 ob_start(); 第23行后加入 $s = ob_get_flush(); file_put_contents($filename.".xls", $s); $attachment = $filename.".xls"; 执行邮件发送
好的好的 我也试了ob_get_contents 半天还是没思路 谢谢老大指点 我试试看
xuzuning 2014-06-11
  • 打赏
  • 举报
回复
第7行处加入 ob_start(); 第23行后加入 $s = ob_get_flush(); file_put_contents($filename.".xls", $s); $attachment = $filename.".xls"; 执行邮件发送
系统功能简介: 强大并免费的订单管理系统,将产品资料,产品分类,客户联系方式、下单信息、发货、物流跟踪、带有管理后台,短信发送跟进售后,订单邮件提醒,订单导出excel等功能,整合成一个系统,方便做竞价单页的创业者跟进订单及售后服务。 1、 分别有电脑版及手机wap版引用页面,无论网页使用的格式是html,asp,php还是jsp,都可以引入,都可以使用,非常适用于竞价产品单页; 2、 带有管理后台版,使用最安全的jsp技术开发,完全杜绝盗单、漏单和数据库注入,就算竞价的网站因其他被删除,也不影响后台的数据安全; 3、 丰富的产品管理功能,定义产品名称,是否在前台推荐选中,排序; 4、 产品分类管理,设置前台显示是单选按钮或下拉选择方式,设置此分类的其他信息,如网址,QQ等; 5、 强大的订单管理,系统自动记录下单时间、下单的IP、来源地址、收货信息地址等,可在后台跟进客户服务,订单备注,搜索订单等等; 6、 付款方式管理,可设置启用或停用,设置折扣,前台显示的提示内容; 7、 短信/邮件内容可自行管理,强大的内容订制功能,可个性化自行定制短信/邮件内容,可插入客户名字、显示的公司名、 订单ID、价格、支付方式、客户手机、 地址、产品网址、客服电话、客服QQ、产品名称内容 8、 增加短信提醒,系统会通过邮件或手机给您提醒及时查看。 9、 对提交的非法数据进行过滤 10、 后台可自由设置同一IP可重复下单次数,限制恶意下单 11、 后台可自由设置是否启用删除功能! 12、 后台地址随意设置。可自由在更改后台的文件名,让外人找都找不到后台登陆地址,提高安全性。 13、 订单物流进度实时查询 14、 可开启后台登陆验证码,杜绝暴力破解密码 15、 设置开启邮箱以及备用接受订单通知,双邮箱,保证一单不漏; 16、 前台购买页面嵌入简单,方便,价格会按折扣、套装自动计算,并闪动折扣,提高关注。 17、 不设置使用站点限制,可以N个站共用一套程序;后台分产品组分别管理不同产品。 18、 不设置使用期限限制,永久免费。 19、 其他超过同类软件的50项改进! (高级定制版功能) 20、 增加订单信息导出excel,更方便地管理及维护订单数据; 21、 支持各短信系统发送(如106开头短信),以便利用短信跟进客户售后服务,提高产品、网站形象及提高付款成功率。 2.5 更新日志 1、改进前台JS代码检测,防止部分浏览器的自动填入功能导致计算价格出错; 2、优化订单页面的发短信及邮件的布局; 3、去除订单搜索页面的条件限制,带来更强的订单搜索过滤管理功能; 4、添加根据下单日期搜索订单; 5、调整页面背景显示,调整后更舒适; 6、内容模板添加分类过滤功能; 7、订单页面可自行添加引入的搜索关键词; 8、强化购买页面手机号码规则的检测; 9、修复及调整其他小细节; 10、修复部分情况下安装失败的漏洞;
系统功能简介: 强大并免费的订单管理系统,将产品资料,产品分类,客户联系方式、下单信息、发货、物流跟踪、短信跟踪售后、订单资料导出等功能,整合成一个系统,带有管理后台,方便做竞价单页的创业者跟进订单及售后服务。 1、 分别有电脑版及手机wap版引用页面,无论网页使用的格式是html,asp,php还是jsp,使用iframe引入,都可以使用,非常适用于竞价产品单页; 2、 带有管理后台版,使用最安全的jsp技术开发,完全杜绝盗单、漏单和数据库注入,就算竞价的网站因其他被删除,也不影响后台的数据安全; 3、 丰富的产品管理功能,定义产品名称,是否在前台推荐选中,排序; 4、 产品分类管理,设置前台显示是单选按钮或下拉选择方式,设置此分类的其他信息,如网址,QQ等; 5、 强大的订单管理,系统自动记录下单时间、下单的IP、来源地址、收货信息地址等,可在后台跟进客户服务,订单备注,搜索订单等等; 6、 付款方式管理,可设置启用或停用,设置折扣,前台显示的提示内容; 7、 短信/邮件内容可自行管理,强大的内容订制功能,可个性化自行定制短信/邮件内容,可插入客户名字、显示的公司名、 订单ID、价格、支付方式、客户手机、 地址、产品网址、客服电话、客服QQ、产品名称内容 8、 增加短信提醒,系统会通过邮件或手机给您提醒及时查看。 9、 对提交的非法数据进行过滤 10、 后台可自由设置同一IP可重复下单次数,限制恶意下单 11、 后台可自由设置是否启用删除功能! 12、 后台地址随意设置。可自由在更改后台的文件名,让外人找都找不到后台登陆地址,提高安全性。 13、 订单物流进度实时查询 14、 可开启后台登陆验证码,杜绝暴力破解密码 15、 设置开启邮箱以及备用接受订单通知,双邮箱,保证一单不漏; 16、 前台购买页面嵌入简单,方便,价格会按折扣、套装自动计算,并闪动折扣,提高关注。 17、 不设置使用站点限制,可以N个站共用一套程序;后台分产品组分别管理不同产品。 18、 不设置使用期限限制,永久免费。 19、 其他超过同类软件的50项改进! (高级定制版功能) 20、 增加订单信息导出excel,更方便地管理及维护订单数据; 21、 支持各短信系统发送(如106开头短信),以便利用短信跟进客户售后服务,提高产品、网站形象及提高付款成功率。

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧