ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: willin2000

[求助][已解决]EXCEL用LOTUS NOTES发邮件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-8-20 21:40 | 显示全部楼层
本帖已被收录到知识树中,索引项:邮件应用开发
QUOTE:
以下是引用tonyibm在2008-8-20 21:31:20的发言:

多谢,我找找看,

不知道我提的那个问题,版主您有没有办法,

批量导出指定邮件的附件到指定文件夹,

等明天上班时看看,还不知道怎么导出附件。。。

TA的精华主题

TA的得分主题

发表于 2008-8-20 22:15 | 显示全部楼层

用下面这个方法导出指定邮件数据库的Inbox中最后一个邮件的所有附件到C盘下。

Sub GetAttachement()
    Dim aNotes
    Dim aDataBase
    Dim aDocument
    Dim aDocCollect
    Dim aView
    Dim rtItem
    Dim oEmb
   
    Set aNotes = CreateObject("Notes.NotesSession")
    Set aDataBase = aNotes.GetDatabase("", "yourdatabase.nsf")
    Set aView = aDataBase.GetView("($Inbox)")
    If (aView Is Nothing) Then
        MsgBox "Inbox view don't exist!"
    Else
        Set aDocument = aView.GETLASTDOCUMENT
        Set rtItem = aDocument.GetFirstItem("Body")
        If (rtItem.Type = 1) Then
            For Each oEmb In rtItem.EmbeddedObjects
                If (oEmb.Type = 1454) Then
                    Call oEmb.ExtractFile("c:\" & oEmb.Source)
                End If
            Next
        End If
    End If
    Set aNotes = Nothing
    Set aDataBase = Nothing
    Set aView = Nothing
    Set aDocument = Nothing
End Sub

如果你需要指定某些特征的邮件,需要使用一些方法找出这些NotesDocument,例如下面的代码是获得指定View下面所有的邮件。

iTotal = aView.AllEntries.Count
Set aDocument = aView.GetFirstDocument
For i = 1 To iTotal
    On Error Resume Next
    'do what you want to do...
    Set aDocument = aView.GetNextDocument(aDocument)
Next i

TA的精华主题

TA的得分主题

发表于 2008-8-20 23:01 | 显示全部楼层
谢谢,版主您真是太强大了,能否告知一下这些信息是哪里来的,我试着在notes里面找帮助文件,但是在帮助文件里面好像搜不到与script相关的文件,
[此贴子已经被作者于2008-8-20 23:05:43编辑过]

TA的精华主题

TA的得分主题

发表于 2008-8-20 23:41 | 显示全部楼层
QUOTE:
以下是引用tonyibm在2008-8-20 23:01:52的发言:
谢谢,版主您真是太强大了,能否告知一下这些信息是哪里来的,我试着在notes里面找帮助文件,但是在帮助文件里面好像搜不到与script相关的文件,

一般就是帮助文件加搜索。

前面我提过的那个文件你找不找得到?客户端本地帮助文件只是一些Notes操作方面的帮助。需要找Designer的帮助文件,你可以从菜单"File"-->"Database"-->"Open..."里去查找服务器端的一些帮助文件数据库看看,那个文件是help65_designer.nsf。

TA的精华主题

TA的得分主题

发表于 2008-8-20 23:55 | 显示全部楼层
QUOTE:
以下是引用winland在2008-8-20 23:41:58的发言:

一般就是帮助文件加搜索。

前面我提过的那个文件你找不找得到?客户端本地帮助文件只是一些Notes操作方面的帮助。需要找Designer的帮助文件,你可以从菜单"File"-->"Database"-->"Open..."里去查找服务器端的一些帮助文件数据库看看,那个文件是help65_designer.nsf。

谢版主,我去找找看,

TA的精华主题

TA的得分主题

发表于 2008-8-21 09:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用winland在2008-8-20 18:16:31的发言:

关于nNotes.GETDATABASE("",""),刚才看了一下filename和filepath属性,居然是空字符串,这样应该同CurrentDatabase属性不同。明天查查帮助文件看看。

上班时试了一下,nNotes.GETDATABASE("","")还真的和CurrentDatabase属性一样获取当前数据库,但Filename和Filepath属性是空的,很奇怪。

TA的精华主题

TA的得分主题

发表于 2008-8-21 09:47 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2008-8-21 10:31 | 显示全部楼层
QUOTE:
以下是引用winland在2008-8-21 9:38:26的发言:

上班时试了一下,nNotes.GETDATABASE("","")还真的和CurrentDatabase属性一样获取当前数据库,但Filename和Filepath属性是空的,很奇怪。

我用nNotes.GETDATABASE("","")去获取当前的邮件数据库出错,因为取到的是另外一个用户的nsf数据库,可能是我的机子上面以前有过其他人的数据,可能我的用户权限是后面添加的,就不是默认的当前数据库了,只有手动将自己的数据库地址加到第二个空格里面,

TA的精华主题

TA的得分主题

发表于 2008-8-21 11:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:
以下是引用winland在2008-8-20 22:15:57的发言:

用下面这个方法导出指定邮件数据库的Inbox中最后一个邮件的所有附件到C盘下。

Sub GetAttachement()
    Dim aNotes
    Dim aDataBase
    Dim aDocument
    Dim aDocCollect
    Dim aView
    Dim rtItem
    Dim oEmb
   
    Set aNotes = CreateObject("Notes.NotesSession")
    Set aDataBase = aNotes.GetDatabase("", "yourdatabase.nsf")
    Set aView = aDataBase.GetView("($Inbox)")
    If (aView Is Nothing) Then
        MsgBox "Inbox view don't exist!"
    Else
        Set aDocument = aView.GETLASTDOCUMENT
        Set rtItem = aDocument.GetFirstItem("Body")
        If (rtItem.Type = 1) Then
            For Each oEmb In rtItem.EmbeddedObjects
                If (oEmb.Type = 1454) Then
                    Call oEmb.ExtractFile("c:\" & oEmb.Source)
                End If
            Next
        End If
    End If
    Set aNotes = Nothing
    Set aDataBase = Nothing
    Set aView = Nothing
    Set aDocument = Nothing
End Sub

如果你需要指定某些特征的邮件,需要使用一些方法找出这些NotesDocument,例如下面的代码是获得指定View下面所有的邮件。

iTotal = aView.AllEntries.Count
Set aDocument = aView.GetFirstDocument
For i = 1 To iTotal
    On Error Resume Next
    'do what you want to do...
    Set aDocument = aView.GetNextDocument(aDocument)
Next

版主,还有一个问题,能否将附件所对应的发件人,主题,接收时间,日期也一起导出来,多谢,

TA的精华主题

TA的得分主题

发表于 2008-8-21 17:13 | 显示全部楼层

多谢版主,按照你的方法指定路径就可以了,两个参数为空也行,而且速度更快,估计是Lotus要打开本地数据库需要更长时间。

但是现在出现了另外一个问题,宏代码运行到“nDcoument.SAVEMESSAGEONSEND = True”时就会提示“Object required”(我的系统是英文版),去掉这一句就可以正常运行,不知道是为什么。

关于Lotus开发我搜集了几个网站:http://bbs.chinalotus.comhttp://tech.it168.com/zt/lotus/index.html,供Lotus用户参考,我的基础太差,几乎都没看懂,希望有志同道合者共勉。

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-16 13:12 , Processed in 0.041431 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表