用VBA操纵Lotusnotes发邮件Word文件下载.docx
- 文档编号:15210733
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:30
- 大小:25.22KB
用VBA操纵Lotusnotes发邮件Word文件下载.docx
《用VBA操纵Lotusnotes发邮件Word文件下载.docx》由会员分享,可在线阅读,更多相关《用VBA操纵Lotusnotes发邮件Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
&
vbCrLf&
_
Application.UserName&
"
**************************************************************************"
(This'
sanautomatede-mailnotification,pleasedonotreplythismessage.)"
DimvaRecipientAsVariant
'
InsertLotusNotesCOMobject.
SetnoSession=CreateObject("
Notes.NotesSession"
)
SetnoDatabase=noSession.GETDATABASE("
"
"
D:
\notes\data\mail3\tonyhf.nsf"
IfnoDatabase.IsOpen=FalseThennoDatabase.OPENMAIL
SetnoDocument=noDatabase.CREATEDOCUMENT
SetnoAttachment=noDocument.CREATERICHTEXTITEM("
Body"
noAttachment.EMBEDOBJECTEMBED_ATTACHMENT,"
FileSelf
WithnoDocument
.Form="
Memo"
.SendTo=vaRecipient
.Subject=stSubject
.Body=stMsg
.SAVEMESSAGEONSEND=True
.PostedDate=Now()
.SEND0,vaRecipient
EndWith
SetnoDocument=Nothing
SetnoDatabase=Nothing
SetnoSession=Nothing
AppActivate"
MicrosoftExcel"
MsgBox"
Thisfilebesent"
vbInformation
EndSub
第二种方法
DimvaFilesAsVariant
ConststMsgAsString="
Thisfileisforyou!
justforreference"
IamStanleyPan"
vaFiles=Application.GetOpenFilename(FileFilter:
="
ExcelFiler(*.xls),*.xls"
Title:
AttachfilesforoutgoingE_Mail"
MultiSelect:
=True)
IfNotIsArray(vaFiles)ThenExitSub
WithnoAttachment
Fori=1ToUBound(vaFiles)
.EMBEDOBJECTEMBED_ATTACHMENT,"
vaFiles(i)
Nexti
ThisfileissendOK"
1,返回当前数据库的信息,
a,返回当前数据库的名称,
结果,
b,返回当前数据库的文件名,
c,返回当前数据库的文件路径,
2,发送邮件的一些设置,
Subaaaaaa()
DimnoAsObject
DimdbAsObject
DimdocAsObject
DimfieldsAsObject
DimnofieldsAsObject
DimattAsVariant
att=Application.GetOpenFilename(FileFilter:
_
Title:
=True)'
添加附件
Setno=CreateObject("
notes.notessession"
)'
建立和邮件的连接
Setdb=no.CURRENTDATABASE'
建立和邮件数据库的连接
Setdoc=db.CREATEDOCUMENT'
创建一个新的邮件
Setfields=doc.CREATERICHTEXTITEM("
body"
设置新邮件的正文(附件)对象
Withfields'
设置邮件的正文和附件
.APPENDTEXT"
thise-mailisgeneratedbyanautomatedprocessjustforatest"
.ADDNEWLINE1'
增加第一行
pleasedonotreply."
.ADDNEWLINE2'
增加第二行
Fori=1ToUBound(att)'
.EMBEDOBJECT1454,"
att(i)
EndWith
Withdoc'
设置新邮件的除正文和附件外的其他信息
.form="
新邮件
.Subject="
thismailisjustfortesting"
主题
.SAVEMESSAGEONSEND=True'
是否保存发送的邮件到发件箱
.postdate=DateAdd("
d"
1,Date)'
发送日期等于当天
.SEND0'
发送
MsgBox"
successfullysentoutthemail!
Setno=Nothing'
释放内存
Setdb=Nothing
Setdoc=Nothing
Setfields=Nothing
在添加附件的时候,如果只是想将当前的活动工作薄作为附件的话,如下,
注意一下,如果是1452的话,效果如下,
会出现一个提示,询问文档包含外部对象链接,是否要更新链接,如果确定的话,效果如下,
会将EXCEL文件中的内容以图片形式打开,同时文件是只读格式的,
如果是1453,效果如下,
不会有提示,但是文件为只读,
如果为1454,则为正常的EXCEL文件格式,
3,提取邮件的一些信息,
以上的发件人,发送时间,主题等信息还可以如下表示,
运行结果,
4,指定是在收件箱,发件箱或其他自定义的文件夹,
a,收件箱等邮箱本身就存在的,
b,如果是自己创建的文件夹及子文件夹,
比如在我的邮箱中有自定义的文件夹,folders,如果要想获取其下面的子文件夹之一的相关资料,则应如下书写,
4,用上面的方法提取出来的发件人是有公司名称的,
anotes.CREATENAME(adocument.GETITEMVALUE("
from"
)(0)).ABBREVIATED
如果不使用abbreviated,则结果为,
如果想要输出的发件人只有名字,没有公司名的话,可以做如下更改,
结果为,
排版之后的效果如下所示,
5,如果想要将附件保存到指定的文件夹的话,
以上代码是将发件箱中的附件保存到D盘的新建文件夹,
以下将发件箱改成自定义的文件夹,”HR-information”
6,用以下方法也可以获得附件的名称,
也可以将oemb.source改成oemb.name,结果一样,
以上代码是获取发件箱中的第一个邮件的附件名称,
7,设置发送邮件时的邮件正文,
以上的代码中,其实withfields和withdoc都是设置邮件的正文,
withfields,是设置邮件的正文和附件信息,
withdoc,是设置邮件的发送人,是否保存到发件箱等一些其他的信息,
8,在发送邮件的时候,要注意body的问题,
a,如果自始至终都使用body来添加附件和正文的话,则添加的正文就不会出现,就只有附件,
发送后的结果,
注意,以上发送出去的邮件是没有正文的,只有附件,就是说以上的代码用withdoc添加的body正文没有添加成功,
如果想要有正文的话,有两个办法,
第一,将第一个括号里面的body改成和第三个红框里面的body不同
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBA 操纵 Lotusnotes 邮件