是否可以像 posterous 一样通过电子邮件更新 Lotus Notes 中的条目?如果可能的话,我该怎么做?谢谢。
2 回答
很容易。
您需要做的是在邮件数据库中创建一个代理来处理传入的邮件(这将需要 Domino Designer 和邮件数据库中的适当权限)。
根据您的要求,您可以定期(例如,每小时一次)或在特定事件(例如,当新邮件到达时)触发代理。
我写过的所有代理都是用 LotusScript(一种 VBA)编写的,它们可以扫描数据库中的文档,检查状态、标题等,以决定做什么。
我最近为这里的某个人写的一篇如下。当被调用时,它基本上会通过收件箱检查每个文档是否有包含“qwertyuiop”的主题标题,并创建一封回复电子邮件给发件人,其中包含带有“SUCCESS”的相同主题。
然后它将文档从收件箱移动到垃圾文件夹。由于不需要立即响应,因此该特定代理每 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
您可能需要对此稍作修改,这将打开一个不同的数据库并根据邮件文档更改其中的文档。
您真正需要的只是电子邮件中的一个键,它可以识别辅助数据库中的哪个文档应该更改,以及一些可以根据邮件内容应用更改的逻辑。
这留给读者作为练习。我给你的应该足以让你开始(当你玩过这个时再问一个问题)。
好简单。在 Notes 中,您可以将任何数据库设置为电子邮件的目标。它有自己的电子邮件 ID(例如 productupdates@acme.com)。然后,您编写一个在“新电子邮件到达时”运行的代理。新文档在session.currentdatabase.unprocesseddocuments
集合中。您的电子邮件当然必须包含一些内容,以便您确定要更新的文档。Notes 在内部使用 NotesDocumentUniqueID 作为主键,但我想您更愿意选择一个业务领域。使用 NotesMimeEntry,您可以在电子邮件中访问 HTML 格式的内容,以防您通过电子邮件发送表单左右。