我正在设置Lotus Notes帐户以接受来自客户端的电子邮件,并自动将每封电子邮件另存为纯文本文件以供其他应用程序处理。Lotus Notes - 将电子邮件导出为纯文本文件
因此,我试图在Lotus中创建我的第一个Agent,以自动将电子邮件导出为文本。
有没有一个标准的,最佳实践的方式来做到这一点?
我创建了一个几乎可以工作的LotusScript代理。但是,有一个错误 - 一旦备忘录正文超过32K字符,就会开始插入额外的CR/LF对。
我正在使用Lotus Notes 7.0.3。
这里是我的脚本:
Sub Initialize
On Error Goto ErrorCleanup
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uniqueID As Variant
Dim curView As NotesView
Dim docCount As Integer
Dim notesInputFolder As String
Dim notesValidOutputFolder As String
Dim notesErrorOutputFolder As String
Dim outputFolder As String
Dim fileNum As Integer
Dim bodyRichText As NotesRichTextItem
Dim bodyUnformattedText As String
Dim subjectText As NotesItem
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
'INPUT OUTPUT LOCATIONS
outputFolder = "\\PASCRIA\CignaDFS\CUser1\Home\mikebec\MyDocuments\"
notesInputFolder = "IBEmails"
notesValidOutputFolder = "IBEmailsDone"
notesErrorOutputFolder="IBEmailsError"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set db = session.CurrentDatabase
Set curview = db.GetView(notesInputFolder)
docCount = curview.EntryCount
Print "NUMBER OF DOCS " & docCount
fileNum = 1
While (docCount > 0)
'set current doc to
Set doc = curview.GetNthDocument(docCount)
Set bodyRichText = doc.GetFirstItem("Body")
bodyUnformattedText = bodyRichText.GetUnformattedText()
Set subjectText = doc.GetFirstItem("Subject")
If subjectText.Text = "LotusAgentTest" Then
uniqueID = Evaluate("@Unique")
Open "\\PASCRIA\CignaDFS\CUser1\Home\mikebec\MyDocuments\email_" & uniqueID(0) & ".txt" For Output As fileNum
Print #fileNum, "Subject:" & subjectText.Text
Print #fileNum, "Date:" & Now
Print #fileNum, bodyUnformattedText
Close fileNum
fileNum = fileNum + 1
Call doc.PutInFolder(notesValidOutputFolder)
Call doc.RemoveFromFolder(notesInputFolder)
End If
doccount = doccount-1
Wend
Exit Sub
ErrorCleanup:
Call sendErrorEmail(db,doc.GetItemValue("From")(0))
Call doc.PutInFolder(notesErrorOutputFolder)
Call doc.RemoveFromFolder(notesInputFolder)
End Sub
更新 显然,32KB的问题是不相符的 - 迄今为止,它只是一个文件,启动后的32K获得额外的回车。
谢谢你。顺便说一下,你有没有遇到过一个在线示例脚本来保存电子邮件到文本文件?我发现的所有示例都涉及将附件保存到文件,而不是电子邮件的正文。 – mbeckish 2010-02-18 20:19:16
我没有,但我只是做了一个快速搜索,发现了几个例子。一个看起来像使用Notes的DXL功能:http://tech.niques.info/projects/lotus-notes-email-export/另一个是用Perl编写的,但可能有一些逻辑可以提取http:// www.perlmonks.org/?node_id=136382 – 2010-02-19 14:34:06