最近工作中有用到生成word文档及发送该附件的邮件。先说说我的思路和流程吧;

1.在后台用PHP将数据组合拼接成HTML格式;

2.生成带数据(HTML)的word文档(生成到项目对应的目录下);

3.配置发送邮件的信息(如邮件的host/port/username等);

第一步:我们先将数据组装拼接成HTML格式  代码如下:

header("Cache-Control: no-cache, must-revalidate");

header("Pragma: no-cache");

//有了这些,可以把带html标签的html源码导入到word里,并且可以保持html的样式。

$wordStr = '<html xmlns:o="urn:schemas-microsoft-com:office:office"xmlns:w="urn:schemas-microsoftcom:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>

</head><body>';

$wordStr .= '<div class="print-container"><div class="print-header"><h1>家访记录汇总</h1></div><div class="print-content">';

for($i=1;$i<=14;$i++){

$wordStr .= $this->getWordContent($i,$roomid); //拼接数据

}

$wordStr .= '</div></div>';

$wordStr .= '</body></html>';

第2步.生成word文件到项目对应的目录下;

$file = rand(10000000,99999999).'.docx';

//保存文件到目录

$savefile = $file;

$attachDir = C("resourceFilesUpload");//上传文件保存路径,结尾不要带/

$attachDir_show = C("resourceFilesView");

$attachSubDir = 'visitdoc_'.date('ymd');

$attachDir = $attachDir.'/'.$attachSubDir;

if(!is_dir($attachDir))

{

@mkdir($attachDir, 0777);

}

$tempPath = $attachDir.'/'.$savefile;

file_put_contents($tempPath,file_get_contents("php://input"));

$myfile = fopen($tempPath, "a");

fwrite($myfile, $wordStr);//写入内容

fclose($myfile);//关闭该操作

3.配置发送邮件的信息(如邮件的host/port/username等);

//获取保存文件后的地址

$fileurl = $_SERVER["DOCUMENT_ROOT"]."/Public/upload/".$attachSubDir.'/'.$savefile;

//注意这里不能用网络地址 如www.baidu.com/image/xxx.jpg

//邮件title

$emaildesc = "您好:<br/>";

$emaildesc .= "<b>家访记录汇总, 请打开附件查看</b><br/>";

$emaildesc .= "此致,晓黑板";

//引用邮件发送类

require THINK_PATH.'Extend/Emailsend/MySendMailNew.php';

$mail = new MySendMailNew();

$mail->setServer($this->emailhost, $this->username, $this->password); //你的邮件配置

$mail->setFrom($this->fromemail);

$mail->setReceiver($email);

$mail->setMailInfo($fileName, $emaildesc, $fileurl);

$mail->sendMail();

//$this->success("邮件发送成功,请及时打开邮箱查看");

return true;

效果如下:

1.生成的word文件

2.邮件发送后效果:

邮寄发送类的代码见下面附件

H5页面生成word文件及发送邮件相关推荐

  1. h5页面打开word文档ios_H5页面生成word文件及发送邮件

    最近工作中有用到生成word文档及发送该附件的邮件.先说说我的思路和流程吧; 1.在后台用PHP将数据组合拼接成HTML格式: 2.生成带数据(HTML)的word文档(生成到项目对应的目录下): 3 ...

  2. Java使用iText生成word文件的完美解决方案(亲测可行)

    JAVA生成WORD文件的方法目前有以下种: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案 一种是pio但是他的excel处理很程序 wor ...

  3. PHP导出word【 直接生成word文件 】

     使用composer安装PHPword: composer require phpoffice/phpword  直接生成word文件: public function makePhpWord(){ ...

  4. SpringBoot集成Freemarker,并使用API生成word文件

    Spring Boot 集成 Freemarker spring boot 集成 freemarker 的简单使用 使用freemarker生成word文件 目录 Spring Boot 集成 Fre ...

  5. Java使用iText生成word文件的完美解决方案

    Java生成WORD文件的方法目前有以下种: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案 一种是pio但是他的excel处理很程序 wor ...

  6. JSP生成word文件

    1.jsp生成word文件,直接改动jsp格式: <%@ page contentType="application/vnd.ms-word;charset=GB2312"% ...

  7. Java技术:SpringBoot集成FreeMarker生成word文件

                    今天给大家分享SpringBoot集成FreeMarker模板引擎生成word文件的用法,感兴趣的可以学一下,完整源码地址在文章末尾处,欢迎互相沟通交流! 一.什么是F ...

  8. php如何生成本地文档,php如何生成word文件

    php生成word文件的方法: 需求: 甲方爸爸说"我有一个word文件,里面是关于用户信息的表格,你帮我把系统里面所有用户数据都按照这个文件导出来给我": 我当时就不乐意了,啪的 ...

  9. Java使用iText生成word文件的解决方案

    JAVA生成WORD文件的方法目前有以下种: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案 一种是pio但是他的excel处理很程序 wor ...

最新文章

  1. 项目实施中应该注意的事项
  2. java 执行cmd 堵塞_java中调用cmd命令被阻塞无法返回和继续执行
  3. 开始了大概三四天的Rails学习之路
  4. Linux 内核开发资料
  5. ubuntu下安装vim失败
  6. 搭建Angular2环境
  7. rxlifecycle 框架的使用
  8. 你的IT运维管理,是否只是“看起来很美”?
  9. shell中字符串操作【转】
  10. 安卓TCP通信版本2
  11. 大数据学习笔记51:Flume Channel Selectors(Flume通道选择器)
  12. Python标准库中的shutil
  13. java sqlserver 图书馆管理系统_基于JAVA+SQLServer的图书馆管理系统.doc
  14. win7查找计算机图片,win7系统全盘搜索图片的操作方法
  15. imagenet ILSVRC2012下载及其matlab处理方法
  16. 什么是实验室人员比对人员_实验室人员比对分析方法的讨论
  17. 计算机无法安装64位操作系统,细说64位电脑怎么安装32位系统
  18. 用友U9sv服务打开时报错内存入口检查失败,因为可用内存(371662848 字节)少于总内存的 5%
  19. jQuery、Ajax分页
  20. 室内场馆360全景拍摄的注意事项

热门文章

  1. jsp 引用配置 ueditor富文本编辑器
  2. python如何自制音乐软件_Python开发制作酷狗和QQ音乐下载器
  3. Task02:数据库的基本使用(Redis)
  4. 5w字总结 Unix系统编程学习笔记(面试向)(Unix环境高级编程/Unix环境程序设计)
  5. 微信读书APP协议阅读 2021-2-26
  6. 嵌入式linux/android alsa_aplay alsa_amixer命令行用法
  7. 【luogu P4183】Cow at Large P(点分治)(图论)(树状数组)
  8. Python面向对象进阶与异常、模块以及包管理
  9. 荣耀畅玩4X鸿蒙,华为荣耀畅玩4X
  10. ERR_ACTION_ACCESS_UNDEFINED: Are you trying to access this.someMutation() or this.someGetter inside