Я использую клиента заметок (v 7.0). Я создал почтовую учетную запись с почтовым идентификатором xyz@abc.com в этом клиенте (очевидно, также на сервере domino). Я хочу автоматически отвечать на почту, которая отправляется на xyz@abc.com с той же строкой темы, к которой необходимо добавить «; УСПЕХ» в конце строки темы.
2 ответа
Хорошо, вам нужен пользовательский агент и привилегии для его локального создания, поскольку вам почти наверняка не разрешат создавать его на серверной копии почтовой БД (если ваши администраторы 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
Я не знаю достаточно о Notes, чтобы понять, является ли он специфическим для установки в IBM или это общая проблема, но агент «Вне офиса», который мы получаем, отправляет сообщения о ООО в списки рассылки, что является антисоциальным. Следовательно, он настроен так, чтобы он не отвечал на людей, отправляющих сообщения с внешних (Интернет) адресов электронной почты - только на внутренние (в стиле Notes) адреса электронной почты.
Вы можете заметить сотрудников IBM в списках рассылки - именно они отвечают на сообщения ООО. (Есть и другие, но ...)