我每天所收到的e-mail中,订阅的电子杂志占了很大的比例。其中既有新闻也有电脑技术或娱乐性文章,加在一起竟有上百封。后来我知道单位里许多人同我一样也喜欢看,而且有的人还订了同样的杂志,所以我就每天收到邮件后把它们整理到局域网上去。只是这么多的邮件,整理起来工作量可不小,怎么解决一下呢?

   这些邮件通常都是HTML格式的,用Outlook通常的方法不能正确的导出,而且分布在许多下层子夹中,导出很麻烦。我在OUTLOOK中,用VBA实现了HTML邮件导出并自动发布到网络上。

   要对邮件箱里的邮件进行操作,首先要取得Outlook MAPI名字空间。可以使用下面的语句:

   Dim mobjOutlook As Outlook.NameSpace

   Dim objOutlook As New Outlook.Application

   mobjOutlook=objoutlook.GetNameSpace(“MAPI”)

   用mobjOutlook的GetDefaultFolder方法。可以取得收件箱的MAPIFolder对象:

   Dim objFolder As Outlook.MAPIFolder

   ObjFolder=mobjOutlook.GetDefaultFolder(6)

   其中参数6代表收件箱,其他参数的意义如下表:

常量

数值

描述

   OlFolderDeletedItems

3

已删除邮件

OlFolderOutbox

4

发件箱

OlFolderSentMail

5

已发件邮件

olFolderInbox

6

收件箱

OlFolderCalendar

9

日历

OlFolderContacts

10

联系人

olFolderJournal

11

日记

olFolderNotes

12

便笺

olFolderTasks

13

任务

olFolderDrafts

16

草稿

   在objFolder的属性包含邮件项集合即ITEMS,也包含所有下一级子夹的集合Folders。

   对每一个邮件,首先取得邮件的接收时间,如果是当天收到的就创建并打开一个HTML文件,以其主题Subject为文件名,把它的HTML格式的内容,即HTMLBody属性的值写入这个文件,然后关闭并处理下一个。

   对下一级子夹,用递归调用的方式,可以遍历收件箱中每一层夹中的所有邮件。在生成邮件文件时,还同时生成索引文件。

完整的程序如下:

   Private mobjOutlook As Outlook.NameSpace

   Private fs, fo

   Private Sub GetOutlook()

   Dim objOutlook As New Outlook.Application

   Set mobjOutlook = objOutlook.GetNamespace("MAPI")

   End Sub

   Sub ListMailFolders(objFolder As Outlook.MAPIFolder)

   Dim objItem As Object

   Dim f

   Dim str1, str2, str3 As String

   For Each objItem In objFolder.Items

   If (FormatDateTime(objItem.ReceivedTime, vbShortDate) = FormatDateTime(Date, vbShortDate)) Then

   str2 = objItem.Subject

   str1 = "j:wwwrootnews" + str2 + ".htm"

   Set f = fs.OpenTextFile(str1, 2, True, TristateFalse)

   f.Write objItem.HTMLBody

   f.Close

   str3 = "< p>< a href='" + objItem.Subject + ".htm'>" + objItem.Subject + "< /a>< /p> "

   fo.Write str3

   End If

   Next

   Dim objf As Outlook.MAPIFolder

   For Each objf In objFolder.Folders

   ListMailFolders objf

   Next

   Set objItem = Nothing

   End Sub

   Sub ListMailItems(longFolder As Long)

   Dim objFolder As Outlook.MAPIFolder

   Dim f

   If mobjOutlook Is Nothing Then

   GetOutlook

   End IF

   Set objFolder = mobjOutlook.GetDefaultFolder(longFolder)

   ListMailFolders objFolder

   End Sub

   Private Sub storemail()

   Set fs=CreateObject(“Scripting.FileSystemObject”)

   Set fo=fs.OpenTextFile(“j:wwwrootnewsindex.html”,2,True,TristateFalse)

   fo.Write “< HTML>< HEAD>< META content=’text/html; charset=gb2312’ http-equiv=Content-Type> < TITLE>< /TITLE>< /HEAD>< BODY>

   ListMailItems(6)

   fo.Write “< /BODY>< /HTML>”

   fo.Close

   End Sub

   在Outlook2000中创建一个新的宏,用VB编辑器编辑它,把上面的程序拷贝到同一模块,注意把生成文件的目录名改为自己WEB服务器上的WWW服务根文件夹名。在宏中调用storemail,执行宏,就可以导出当天收到的所有邮件。

   所有指向这些HTML文件的链接放在同一目录下的index.html中,这样每个人都可以在网上浏览这些文章了。

在Outlook中用VBA导出HTML格式邮件相关推荐

  1. Outlook 批量导出多个邮件的附件

    Outlook 批量导出多个邮件的附件 1.需求描述 2.实现步骤 3.升级:导出附件到以主题命名的文件夹 系统:Win10 Outlook:Microsoft Office 2016 1.需求描述 ...

  2. 163邮箱导出eml格式文件

    突然被要求既往邮件导出eml格式文件,懵逼了,百度了一圈,以作记录

  3. Win7 Office Outlook客户端报没有默认的邮件客户端,或当前客户端无法实现该邮件的请求。

    ** Win7 Office Outlook客户端报没有默认的邮件客户端,或当前客户端无法实现该邮件的请求. ** 我们可以打开 开始>设置>程序>默认程序.往下拉,点击根据文件类型 ...

  4. 三星手机通讯录导出 .spb格式转.vcf

    三星手机通讯录导出 .spb格式转.vcf 三星GALAXY S4手机屏幕损坏,能正常开机,无法进行其他操作,拿去修屏幕已经没必要,现在主要把通讯录和照片导出到另一部安卓手机. 导出照片比较容易,手机 ...

  5. mail message 支持html,html格式邮件发送通过stmp

    importjava.io.FileOutputStream; importjava.util.Date; importjava.util.Properties; importjavax.mail.M ...

  6. EXCEL VBA 导出高清图片方法

    EXCEL VBA 导出高清图片方法 将EXCEL表格内容另存为图片的方法有很多种,简单的比如"复制为图片格式并另存","打印成XPS"等等,本文着重的是利用V ...

  7. 【Python】导出docx格式Word文档中的文本、图片和附件等

    [Python]导出docx格式Word文档中的文本.图片和附件等 零.需求 为批量批改学生在机房提交的实验报告,我需要对所有的实验文档内容进行处理.需要批量提取Word文档中的图片和附件以便进一步检 ...

  8. DataSet导出CSV格式(ASP.NET,C#)

    DataSet导出CSV格式(ASP.NET,C#)   作者:Not MSN:notking@hotmail.com Email:nots@sohu.com   本文引用下面的 Microsoft ...

  9. blender 导出 obj 格式,3dsmax 导入3ds max obj 格式数据

    blender 导出 obj 格式,3dsmax 导入3ds max obj 格式数据 blender 导出 3dsmax 导入

最新文章

  1. 空地通信传输详解——飞机是这样和地面通信的
  2. 皮一皮:钢铁直女?鉴定了,钢的不能再钢!
  3. 用python画万花筒写轮眼_万花筒写轮眼画法教程
  4. 京东大型API网关实践之路
  5. python画日漫_不能错过的Python漫画
  6. MyBatis 源码解读-XMLConfigBuilder
  7. 安卓使用jdbc连接mysql_Android:使用JDBC连接MySql
  8. [html] 实现九宫格布局
  9. [css] 举例说明与打印有关的属性有哪些?
  10. activiti7流程设计器_消防水泵结合器怎么安装,水泵结合器安装工艺分享
  11. php-ftm,FTM/MTF的激素种类
  12. infer的用法_infer运用实践
  13. js监听浏览器tab页面变化
  14. 关于爱情和婚姻的经典故事
  15. Python综合评价模型(二)灰色关联度法
  16. GYM 101128H Sheldon Numbers
  17. python之getattr()函数和importlib库的使用
  18. 支招:苹果电脑Mac版如何快速解压缩软件
  19. CheckBox复选框
  20. 苹果官方付费升级内存_新芯片、新电脑,或许还有苹果的新未来

热门文章

  1. 0基础学习数据分析必须掌握的技能有哪些?
  2. 如何判断 cxgrid 双击了哪一列_唐卡的价值主要体现在哪 如何判断唐卡的价值
  3. eclipse新建python文件夹_eclipse 如何创建python文件
  4. 简单介绍python连接telnet和ssh的两种方式
  5. 英国工程巨头遭勒索攻击:运营临时中断 至少损失4亿元
  6. STM32单片机真的落后?
  7. 二分图 ---- 树的二分图性质 2020icpc 济南 J Tree Constructer(构造)
  8. anaconda 升级jupyter notebook_搭建 Python 轻量级编写环境(WSL2+Jupyter 自动开启本地浏览器)
  9. c语言aba字母塔,打印字母金字塔,昨晚看到某个帖子的题目
  10. BZOJ 1592. Making the Grade(思维,数据结构优化DP,以及三个拓展问题)[Usaco2008 Feb]【BZOJ计划】