1. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Первый товар уже в продаже: Консультация на тему ИБ от Ondrik8

    Скрыть объявление
  2. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Второй товар маркетплейса: Надёжная обфускация вашей программы от PingVinich

    Скрыть объявление

Почта Lotus

Тема в разделе "Lotus - Программирование", создана пользователем sanch, 8 авг 2006.

  1. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    Доброго времени суток!!!
    Задача: необходимо почту сортировать по папкам. к примеру письма от Иванова сохранять в папку Иванов. (Вариан с правилами не катит).Нужен агент который запускается при новом письме,проверяет если от папок с фамилией чела нет то создает новую папку и перебрасывает письмо в папку, если есть то просто перебрасывает.
    Подскажите как правильней реализовать данную задачу, или поделитесь скриптом.
     
  2. Elena Nefedova

    Elena Nefedova Гость

    Репутация:
    0
    Думаю, надо не папки создавать, а фильтр применять к представлению, раз у вас ключ только один.
    Отлично подходит формула @SetViewInfo
     
  3. GROMILA

    GROMILA Well-Known Member

    Репутация:
    0
    Регистрация:
    8 апр 2004
    Сообщения:
    297
    Симпатии:
    0
    Ты же все правильно написал.
    В чем вопрос/проблема или тебе просто скрипт нужен?
     
  4. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    Человек попросил чтоб были папки(на каждую фамилию - папка).Можно было бы решить проблему "правилом" 100-400 правил писать для каждого это не дело просто нужен гибкий скрипт

    Если чесно, да, нужен скрипт.Поделитесь если есть )
     
  5. nor

    nor Гость

    Репутация:
    0
    Не думаю, что 100-400 папок в почтовой бд будет тоже удобно. Попробуй категоризовать колонку "Who" в папке Inbox - тогда все письма от определенного человека будут отображаться в одной категории, от другого человека - в другой. Например, у меня так сделано, очень удобно.
     
  6. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    Этот вариант я сразу предложил, но человек просит чтоб именно папки были((
     
  7. Elena Nefedova

    Elena Nefedova Гость

    Репутация:
    0
    1) Если пользователь в лотусе не понимает, надо эмулировать папки. На самом деле это будут Action-ы, применяющие фильтр
    2) А если понимает и все равно требует, значит, плохо он понимает, но сделать придется именно так, как он сказал

    Чем хорош первый случай - нельзя перепутать документы, перетащив их в "чужую" папку.
    Главная же радость от него - легко реализовать чтоб автоматически и все отправленные сообщения раскладывались по этим папкам.

    Если уж второй придется реализовывать, то в агенте на приход почты надо использовать следующие свойства и методы
    Код (Text):
    notesViewArray = notesDatabase.Views  
    flag = notesView.IsFolder
    Set notesView = notesDatabase.CreateView(...)
    Call notesDocumentCollection.PutAllInFolder( folderName$ [, createonfail ] )
    Call notesDocumentCollection.RemoveAllFromFolder( folderName$ )
    3) Сама я влезла в их библиотки почтовых правил и приписала себе там достаточно.
    Если не боитесь сломать - можете тоже поручть свои проблемы роутеру :)
     
  8. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    Большое спасибо. Но я не знаю LotusScript, а начальство давит.Если есть возможность пришлите пожалуйста весь скрипт.Если можно с небольшим описанием ) .Заранее благодарен
     
  9. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    Вчера сидел "грыз LotusScript" вроде чего то получилось. Но есть небольшая проблемка.Открываю базу, запускаю агента, агент нормально отработал,НО!!! увидеть новую созданную папку можно только после повторного открытия базы.Может ее можно програмно обновить? или как?.( Пробовал решить проблему на Java, но с папками проблема была еще хуже(папки появлялись только после создания новой папки, в базе ,руками).)
    И еще вопрос.Как указать в скрипте что надо проверять только папку Index(Входящие)?
    И последний )).скрипт создает папку и копит туда письма.Что он копит весь документ или ссылку?
     
  10. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    И еще )) .Как в LotusScript в строку передать двойные кавычки?
     
  11. morpheus

    morpheus скриптописец

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.920
    Симпатии:
    1
    явно прописать в переменной
    Set view = db.GetView( "($Inbox)" )

    Код (Text):
    Dim db As New NotesDatabase( "Havana","mail\cbanner.nsf" )
    Dim view As NotesView
    Dim doc As NotesDocument
    Set view = db.GetView( "($Inbox)" )
    Set doc = view.GetFirstDocument
     
  12. Elena Nefedova

    Elena Nefedova Гость

    Репутация:
    0
    При использовании PutInFolder помещаются ссылки. При использовании любых видов копирования в базе создается копия, а ссылка на копию уже размещается в нужной папке.
    Вот так:
    Код (Text):
    s_quotes1 = "Я люблю шоколад ""Аленка"" и ириски"
    s_quotes2 = {Мой брат не любит ни "Аленку" ни ириски}
     
  13. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    Большое спасибо!!!! :(
     
  14. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    И еще вопросик! как работать со строками? к примеру есть строка "cn=vasya/o=rabota" как сделать чтоб осталось только "vasya"?
     
  15. morpheus

    morpheus скриптописец

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.920
    Симпатии:
    1
    Из справка Lotus

    @Name([CN];@UserName)
     
  16. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    Блин, вроде все правильно делаю.
    Dim session As New NotesSession
    Dim user As String
    user = session.UserName
    К примеру CN=Stew Malone/OU=Editorial/O=Acme то я должен получить "Stew Malone" но я все павно получаю "CN=Stew Malone/OU=Editorial/O=Acme"
    как быть?
     
  17. morpheus

    morpheus скриптописец

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.920
    Симпатии:
    1
    Из справки Lotus (стоит читать)


    CommonUserName
    Код (Text):
    Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim user As String
    user = session.CommonUserName
    End Sub
     
  18. sanch

    sanch Well-Known Member

    Репутация:
    0
    Регистрация:
    17 июл 2006
    Сообщения:
    216
    Симпатии:
    0
    Я читал.Все равно выводится "необрезанное имя".Поставлю вопрос иначе. необходимо из письма вытащить имя отправителя в норамальном формате на LotusScript.
     
  19. morpheus

    morpheus скриптописец

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.920
    Симпатии:
    1
    Взято из справки Lotus


    Set nam = session.CreateName( "qwerty" )

    Вместо "qwerty" вставить то имя (строковое) CN которого необходимо узнать,

    например session.UserName сойдёт как для примера и понимания

    Код (Text):
    Dim session As New NotesSession
    Dim nam As NotesName
    Dim msg As String
    REM Create a NotesName from user name
    Set nam = session.CreateName( "qwerty" )
    REM Display common, abbreviated, and canonical formats
    msg = nam.Common & Chr(13)
    msg = msg & nam.Abbreviated & Chr(13)
    msg = msg & nam.Canonical
    Messagebox msg,, "User name"
     
  20. Elena Nefedova

    Elena Nefedova Гость

    Репутация:
    0
    Надо использовать класс NotesName
    Код (Text):
    Set notesName = New NotesName( name$)
    string$ = notesName.Common
     
Загрузка...

Поделиться этой страницей