почтовые правила

Автор Тема: почтовые правила  (Прочитано 11600 раз)

nadya

  • Специалист
  • ***
  • Сообщений: 51
    • Просмотр профиля
почтовые правила
« : 18 Август 2009, 09:28:20 »
в лотусе почтовые правила действуют только применительно к новой почте.
как сделать в лотусе так, чтобы почтовые правила пользователя применились бы и ко всей старой почте пользователя??


ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: почтовые правила
« Ответ #1 : 18 Август 2009, 09:46:35 »
Добрый день!

В принципе, аналогичные действия можно сделать при помощи полнотекстового поиска.

nadya

  • Специалист
  • ***
  • Сообщений: 51
    • Просмотр профиля
Re: почтовые правила
« Ответ #2 : 18 Август 2009, 09:51:43 »
то есть, а подробнее можно?  :)

nadya

  • Специалист
  • ***
  • Сообщений: 51
    • Просмотр профиля
Re: почтовые правила
« Ответ #3 : 18 Август 2009, 10:00:43 »
вообще, я вижу два пути решения задачи -
первое - агент на лоту скрипте - залесть в папку правила и по каждому правилу вытащить условие отбора писем, преобразовать эти условия к нормальным на лотус скрипте,
вытащить действия по данному условию и преобразовать к действию на лотус скрипте,
ко всем документам в папке входящие задать поиск по заданному условию и в случае успеха выполнить заданные действия. и так по каждому правилу. но здесь я вижу следующую проблему - необходимость преобразования условий из правила на лотус скрипт. возможно ли это все корректно будет сделать

второе - правила хранятся в профайле calendarprofile в полях $FilterFormula + номер правила на языке формул. можно попробовать вытащить эти условия оттуда,
но проблема - как это условие на языке формул применить ко всей почте в папке???

подскажите как быть пожалуйста  :)

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: почтовые правила
« Ответ #4 : 18 Август 2009, 10:03:05 »
В это случае нет такой автоматизации как с почтовыми правилами, но для разовой операции сгодится.

Открываете представление "All Documents". Открываете панель полнотекстового поиска "View->Search this view", жмете "More". Перед вами поисковая панель с разными настройками для задания разнообразных сочетаний условий выборки. Задаете нужное условие из почтового правила и отбираете документы. Отобранные документы вы можете перемещать в папки, пересылать, удалять,...

Если почтовая база не проиндексирована (красный кружочек на панели поиска), нужно проиндексировать (зеленый кружочек).

nadya

  • Специалист
  • ***
  • Сообщений: 51
    • Просмотр профиля
Re: почтовые правила
« Ответ #5 : 18 Август 2009, 10:18:30 »
пользователям нужна автоматизация, придется писать агента
думаю как лучше поступить :)

nadya

  • Специалист
  • ***
  • Сообщений: 51
    • Просмотр профиля
Re: почтовые правила
« Ответ #6 : 31 Август 2009, 13:52:29 »
Доброго времени суток всем!!!
С почтой все хорошо, но в одном месте застряла!!! помогите пожалуйста!!!

есть одна загвоздка : когда обрабатываю действие - отправить копию (только заголовки или всю)-

в библиотеке Rules_ru-RU в процедуре ActionParser выполняется
...
'//Forward to
Case "B"
Let str_tmpAppendString = |"COPYTO| + ACT_sBehavior + STR_DELIMETERSEP + Replace(ACT_sString,|:|,|,|) + |")|
s_MAINFORMULA = s_MAINFORMULA + "@SetField(""$FilterActions"";" + "@Trim($FilterActions:" + str_tmpAppendString + ");@SetField(""DisplayCopyTo_Icon"";""1"")"
...
на лотус скрипте переписала следующим образом

(беру указанное имя, проверяю - если есть в локальной адресной книге - заменяю на e-mail, если нет, оставляю таким же,в конце в цикле отсылаю все пиьсмо по указанным адресам)

str0 = ACT_sString
Dim session As New NotesSession
Set db = session.GetDatabase("", "names.nsf", False)
Set view = db.GetView("My Contacts")
sStr = Split(str1, |,|)
Forall fio In sStr
arr = Split ( fio, " ")
resim = arr (Lbound(arr))
If Ubound(arr) = 1 Then
resfam = arr (1)
Elseif Ubound(arr) = 2 Then
resfam = arr (2)
End If
If (resim <> "") And (resfam <> "") Then
res = resfam + "," + " " + resim
Elseif (resim <> "") And (resfam = "") Then
res = resim
Set docview = view.GetDocumentByKey (res, True )
If docview Is Nothing Then
result = result + fio + ","
Else
value = docview.GetItemValue ("MailAddress")(0)
result = result + value + ","
End If
End Forall
result = Left(result, Len(result)-1)
result = Split(result,",")

Forall r In result
Call indoc.Send(True, r)
End Forall

в итоге у меня отсылается по куче копий ( по три(?) копии) каждого письма - не ясно почему?? и при попытке письмо отправить выходит сообщение - вопрос
"You have requested to sign this internet message, but your current ID does not contain or does not specify an Internet sertificate for signing. Select OK to send the message anyway".
жму ОК и только тогда письмо отправляется.

и как сделать рассылку только заголовков письма??

там же, в этой процедуре указаны варианты
....
'// Journal Message
Case "5"
....
'// move to database
Case "6"
....
'// don't deliver message
Case "8"
....
'// Change routing state
Case "9"
они, если смотреть через EZ , в tokactionlist не указываются, для чего они вообще тогда нужны??

SOS, подскажите кто что знает пожалуйста!)

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: почтовые правила
« Ответ #7 : 03 Сентябрь 2009, 09:46:55 »
в result при отсылке содержатся уникальные элементы?
Можно в принципе и без forall отсылать: indoc.Send(True, result).

Еще...в коде не разбирался, но в начале бросилось в глаза:
str0 = ACT_sString, а дальше идет работа с str1.