答案1
好的,您需要一个用户代理和在本地创建它的权限,因为您几乎肯定不会被允许在邮件数据库的服务器副本上创建它(除非您的 Domino 管理员是一群小丑)。这将要求在您的客户端上安装 Domino Designer,而不仅仅是 Notes。
然后,您可以设置代理按计划运行(例如,5 分钟)。然后编写一些 LotusScript 来处理已添加的相关文档。我从未成功地让我的脚本在“新邮件到达后”事件中正确运行,但您可能更幸运 :-)。
我编写的脚本都很简单,可以放入 Initialize 函数中。例如,下面的脚本会将收件箱中主题标题为“qwertyuiop”的所有邮件放入垃圾邮件文件夹。
Sub Initialize
Dim s As New notessession
Dim db As notesdatabase
Dim view As NotesView
Dim doc 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
If Instr(doc.GetFirstItem("subject").Text, "qwertyuiop") Then
Call doc.RemoveFromFolder( "($InBox)")
Call doc.PutInFolder( "junk")
End If
Set doc = view.GetNextDocument(doc)
Wend
End If
End Sub
您感兴趣的字段是subject
、inetfrom
和inetsendto
(至少在我的邮件数据库中)。您可以通过右键单击其中一封邮件、选择“文档属性”并选择列出所有文档字段的第二个选项卡(三角形)来验证这一点。
创建回复电子邮件应该很简单,只需在邮件数据库中创建一个新文档并调用“ newdoc.send(true,true)
”。我以前从来没有这样做过,但我将以下示例代码拼凑在一起,它似乎可以工作(但修复错误是您的责任,不是我的 :-)。
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 And Right(subj,8) <> " SUCCESS" 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
答案2
我对 Notes 了解不多,不知道这是 IBM 的设置问题还是普遍问题,但我们收到的“外出”代理会向邮件列表发送 OOO 消息,这是反社会的。因此,我将其配置为不响应从外部(Internet)电子邮件地址发送的消息 - 只响应内部(Notes 样式)电子邮件地址发送的消息。
您可以在邮件列表中找到 IBM 员工 - 他们是用 OOO 消息回复的人。(还有其他人,但是...)