@mailsend-Как сделать в нём массовую рассылку

Тема в разделе "Lotus - Программирование", создана пользователем Sandro, 26 ноя 2009.

  1. Sandro

    Sandro Гость

    И снова не умный вопрос))) Есть задача разослать ссылку на документ нескольким адресатам, ну я сделал кнопочку с выбором пользователей из базы, которая добавляет почтовый адрес (через запятую, а ля родная почта), потом делаю @MailSend(поле со списком...
    Короче @MailSend пытается адрес воспринять как один (((

    В мануале писшут

    sendTo
    Text or text list. The primary recipient(s) of the mail memo.

    Не могу догнать , как этот text list организовать
     
  2. Klido

    Klido Гость

    список построй через ":" должны быть элементы
     
  3. Sandro

    Sandro Гость

    Через ":" не помогло :-( , сделал стандартную выборку через свойства поля name
     
  4. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Если вбивать адреса "ручками", то в свойствах у поля должно быть на первой заклдке включено "Allow multiple values", на третьей выбраны допустимые разделители (зпт, тчк с зпт и т.п.).
    Если загонять значения "собаками", то через двоеточие.
    Если скриптом - то сперва генерить массив или юзать функции типа ArrayAppend, Split. Лотус-имена д.б. в канонической форме иначе возможны траблы.
     
  5. xKlonx

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    Sandro
    Код (Text):
    adrress1:="адрес1";
    addres2:="адрес2";
    @MailSend(adrress1:addres2;"";"";"Новое мероприятие")
    Попробуй так

    Добавлено: Sandro
    Код (Text):
                    Dim w As New NotesUIWorkspace    
    Dim uidoc As NotesUIDocument       
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim rtitem As NotesRichTextItem
    Dim Line1 As String
    Dim address(1 To 50) As String 

    address(1) = "адрес1"
    address(2) = "адрес2"

    line1 = "Нажмите на иконку чтобы открыть документ --> "
    Set db = session.CurrentDatabase
    Set uidoc = w.CurrentDocument  
    Set doc = uidoc.Document
    doc.Form = "Memo"
    doc.SendTo = address
    Set rtitem = New NotesRichTextItem( doc, "Body" )
    Call rtitem.AddNewline(1)
    Call rtitem.AppendText( line1 )
    Call rtitem.AppendDocLink( doc,"" )
    doc.Subject = "Новое мероприятие "
    Call doc.Send( False )
    doc.Save True, True
    uidoc.Close
    Так на скрипте,работает проверял)
     
  6. xKlonx

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    Sandro
    Получилось?
    Есть ещё вариант,тоже проверял работает:
    Создаёте поле типа DialogList, в свойствах поставте галочку Allow multiple values, на второй табе указывайте Use Address dialog for choices.
    На кнопку или событие вешаете код:
    Код (Text):
    @MailSend(address;"";"";"Новое мероприятие";"")
    Где address - наше поле.Вот и всё
     
  7. Sandro

    Sandro Гость

    Короче не получалось у меня , по причине того что док отсылаемый создаётся через dialogbox, добавил твой код для отправки почты, всё нормально, но при открытии 3-раза выдаёт ошибку "Не удаётся найти форму :", потом открывается и всё нормально, с какого перепугу он форму f_plan то требует?
    Код (Text):
    Sub Initialize
    Dim WS As New NotesUIWorkspace

    Set ND= ws.CurrentDocument.Document
    Set doc = New notesdocument(ws.currentdatabase.database)
    Call doc.MakeResponse(ND)
    Continue=ws.DialogBox("f_plan",,,False,False,False,False,"Введите данные",doc,True,False,True)
    If Not Continue Then
    Call doc.RemovePermanently(True)
    Exit Sub
    End If

    doc.form="f_plan"
    Call doc.ComputeWithForm(True,False)
    Call doc.Save(True,True,True)

    Dim rtitem As NotesRichTextItem
    Dim Line1 As String
    Dim address(1 To 50) As String 
    address(1) = "- - -"
    REM address(2) = ""
    line1 = "Нажмите на иконку чтобы открыть документ --> "
    doc.SendTo = address
    Set rtitem = New NotesRichTextItem( doc, "Body" )
    Call rtitem.AddNewline(1)
    Call rtitem.AppendText( line1 )
    Call rtitem.AppendDocLink( doc,"" )
    doc.Subject = "Новое мероприятие "
    Call doc.Send( False )

    Messagebox "Отработало",, "Success"


    End Sub
     
  8. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Sandro
    Почитайте в справке про NotesUIWorkspace.DialogBox.
    А ругается, видимо, на строчке

    Continue=ws.DialogBox("f_plan",,,False,False,False,False,"Введите данные",doc,True,False,True)

    Форма "f_plan" есть в базе, откуда идёт отправка или нет?
     
  9. xKlonx

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    Sandro
    Посмотри под дебагом на чём вылетает
     
  10. Sandro

    Sandro Гость

    Так оно и не вылетает, ошибка при открытии письма в клиенте
     
  11. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    В почту шлем? Тогда "Memo", например.
    Код (Text):
        call doc.ReplaceItemvalue("Form", "Memo")
    Call doc.Send( False )
    Добавлено: Формы f_plan нет в почтовой БД :rolleyes: Я угадала?
     
  12. xKlonx

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    OKEN
    здесь doc.form="f_plan" замени на doc.form="memo"

    Добавлено: Sandro
    Ну как?
     
  13. Sandro

    Sandro Гость

    XRomaX респект , человек, ни одной догадки они 100% ответы
     
  14. xKlonx

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    Sandro
    Здесь нужно OKEN благодарить,я сразу и сам не заметил,думаю она + заработала?
    Sandro
    А вы не бойтесь спрашивайте
     
  15. Sandro

    Sandro Гость

    OKEN еспешили, спасибо

    Добавлено: Народ, может подскажите ещё , как из поля (Name) с множественным значением получить массив ?
     
  16. Klido

    Klido Гость

    оно и есть массив только в понимании список :) дальше - смотря что делать с ним надо....
     
  17. xKlonx

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    Конкретнее опишите что хотите сделать
     
  18. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    В принципе любое поле простого типа (текст, число, дата) и есть одномерный массив. Если флаг многозначности сброшен, то с одним значением. При работе с Names полями надо иметь ввиду, что получаем массив строк с именами в канонической форме, для перевода в другие формы нужно пользовать NotesName или собак+evaluate.
     
  19. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    На скрипте лучше всё-таки NotesName
     
  20. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    :ya_za: но...
    Код (Text):
    dim v as Variant
    v = Evaluate("@Name([CN]; @GetField({MyNames}))")
    даёт сразу список имён в общей (Common Name) форме. С NotesName только циклом...
     
Загрузка...

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