是否可以通过电子邮件更新Lotus Notes中的条目?

时间:2009-02-25 07:20:26

标签: email lotus-notes

是否可以通过电子邮件更新Lotus Notes中的条目,就像posterous一样? 如果有可能,我该怎么做? 感谢。

2 个答案:

答案 0 :(得分:2)

非常简单。

您需要做的是在邮件数据库中创建一个代理,该代理将处理传入的邮件(这将需要Domino Designer以及邮件数据库中的相应权限)。

根据您的要求,您可以定期(例如,每小时一次)或特定事件(例如,当新邮件到达时)触发代理。

我写过的所有代理都是LotusScript(有点像VBA),他们可以扫描数据库中的文档,检查状态,标题等,以决定做什么。

我最近为某人写的一篇文章如下。调用时,它基本上通过InBox检查每个文档,检查包含“qwertyuiop”的主题标题,并创建一个回复发件人的响应电子邮件,其中包含附加了“SUCCESS”的相同主题。

然后它将文档从InBox移动到垃圾文件夹。由于不需要立即响应,因此该特定代理每60分钟运行一次。您应该能够从代码中获取意图。

Sub Initialize
    Dim s As New notessession
    Dim db As notesdatabase
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim olddoc As NotesDocument
    Dim subj As String
    Dim newdoc As NotesDocument

    Set db = s.CurrentDatabase
    Set view = db.GetView("($InBox)")
    If Not view Is Nothing Then
        Set doc = view.GetFirstDocument
        While Not doc Is Nothing
            Set olddoc = doc
            Set doc = view.GetNextDocument(doc)
            subj = olddoc.GetFirstItem("subject").Text
            If Instr(subj, "qwertyuiop") > 0 Then
                Set newdoc = New NotesDocument(db)
                newdoc.SendTo = olddoc.GetFirstItem("inetfrom").Text
                newdoc.subject = subj & " SUCCESS"
                newdoc.form = "Memo"
                Call newdoc.send(True,True)
                Call olddoc.RemoveFromFolder( "($InBox)")
                Call olddoc.PutInFolder( "junk")
            End If
        Wend
    End If
End Sub

您可能需要对此稍作修改,这将打开一个不同的数据库,并根据邮件文档更改其中的文档。

您真正需要的只是电子邮件中的一个键,可以识别辅助数据库中应该更改哪个文档,以及一些可以根据邮件内容应用更改的逻辑。

这是留给读者的练习。我给你的东西应该足以开始了(当你玩这个时再问一个问题)。

答案 1 :(得分:1)

很简单。在Notes中,您可以将任何数据库设置为电子邮件的目标。它有自己的电子邮件ID(例如productupdates@acme.com)。然后你编写一个代理,运行“新电子邮件到达时”。新文档位于session.currentdatabase.unprocesseddocuments集合中。您的电子邮件当然必须包含允许您确定要更新的文档的内容。 Notes在内部使用NotesDocumentUniqueID作为主键,但我想您更愿意选择业务字段。使用NotesMimeEntry,您可以访问电子邮件中的HTML格式的内容,以防您通过电子邮件发送表格。