Помогите новичку

Тема в разделе "Lotus - Программирование", создана пользователем Frusty, 3 сен 2008.

  1. Frusty

    Frusty Гость

    Прошу меня не сильно не ругать, в лотусе разбираюсь вторую неделю
    вопрос в следующем Хотелось бы отправить письмо к адрессату изходя из хелпа выполняю следующий код в Агенте
    Код (Text):
                     Dim dbMail As NotesDatabase
    Set dbMail = New NotesDatabase( "", "")
    Call dbMail.Open( "Lotussrv", "ZayavkaIT.nsf" )
    Dim MailDoc As NotesDocument
    Set MailDoc = New NotesDocument(dbMail)
    [u] MailDoc.Form = "NotifHardware"[/u]
      MailDoc.SendTo="xxxx@com.ru"
      MailDoc.Principal = "HelpDesk"
      MailDoc.ReplyTo = "HelpDesk"
      MailDoc.SMTPOriginator = "HelpDesk"
      MailDoc.Subject ="Алеша Привет"
      MailDoc.Body = "Добрый День!"
    Call MailDoc.Send(True)
    В отладке показывается что MailDoc создается но после исполнения 6 строчки генерится ошибка
    Variant does not contain object
    PS
    Форма NotifHardware создана.
    Пожалуйста будьте добры, помогите новичку, обьясните что я делаю не так и как мне послать письмо правильно
     
  2. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    1. чиатайте правила форума. это я про тему
    2. ошибка похоже связана с тем что MailDoc is Nothing . Тоесть документ не создался
    Вы уверенны что правильно прописаны сервер и пути к БД
     
  3. Frusty

    Frusty Гость

    1)Извиняюсь за не правильно созданную тему
    2) Обьект создался в отладке видно.
     
  4. D!m@n

    D!m@n Гость

    Задайте здесь иерархическое имя сервера.
    Т.е. Lotussrv/Оргюнит/Организация/Страна.

    По-моему, это не сработает.
    Надо сделать так:
    Код (Text):
    Dim RTBody As NotesRichTextItem
    Set RTBody=MailDoc.CreateRichTextItem("Body")
    RTBody.AppendText("Превед!")
     
  5. NetWood

    NetWood Lotus team
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    308
    Симпатии:
    0
    IMHO самый правильный и простой путь поместить документ прямо в mail.box и роутер его отправит куда надо.
    Более того есть возможность задать любой адрес отправителя, поскольку при отправке из любой базы или из вашего персономайла
    ReplyTo и From берутся из настроек AK

    Код (Text):
    Sub Initialize
    Dim db As NotesDatabase
    Dim dbm As NotesDatabase    
    Dim session As New NotesSession
    Dim note As NotesDocument
    Dim mail As NotesDocument
    Dim view As NotesView
    Dim homepage As NotesDocument
    Set db = session.CurrentDatabase
    Set note = session.DocumentContext ' это если забираем все items например из веба
    Set dbm = New NotesDatabase( db.Server, "mail.box" )

    ' ========= помещаем док в mail.box и роутер отправляет
    Set view = db.GetView( "HomePage" )
    Set homepage = view.GetFirstDocument ' док с настройками
    feedback=homepage.FeedBack(0) ' от кого
    email=homepage.Email(0) ' кому

    Set mail= New NotesDocument(dbm)
    Call note.CopyAllItems(mail, True) ' скопировать ВСЕ с аттачами и ричтекстами
    Call mail.ReplaceItemValue("Form","Memo")
    Call mail.ReplaceItemValue("Subject", "Сообщение / "+ note.Subject (0)+" / "+ note.Email (0))
    Call mail.ReplaceItemValue("From", feedback)
    Call mail.ReplaceItemValue("ReplyTo", feedback)
    Call mail.ReplaceItemValue("Recipients", email)
    Call mail.ReplaceItemValue("SendTo",email)

    Call mail.Save (True,True)  

    Еnd Sub
     
  6. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Сработает.

    Вообще чтобы отправить письмо кому-то, можно создать письмо в текущей базе. Т.е.:
    Код (Text):
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim MailDoc As NotesDocument
    Set db = session.CurrentDatabase
    Set MailDoc = db.CreateDocument()
    MailDoc.Form = "NotifHardware"
    MailDoc.SendTo="xxxx@com.ru"
    MailDoc.Principal = "HelpDesk"
    MailDoc.ReplyTo = "HelpDesk"
    MailDoc.SMTPOriginator = "HelpDesk"
    MailDoc.Subject ="Алеша Привет"
    MailDoc.Body = "Добрый День!"
    Call MailDoc.Send(True)
    Ну насчет правильного это еще можно поспорить.
    А самый простой, имхо, это:
    Код (Text):
    Dim f As Variant
    f = Evaluate({@MailSend(...)})
    :)
     
  7. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    удобный способ, но не самый простой и не правильный в принципе, т.к. при каких-либо изменениях в работе роутера это может перестать работать...
    команды отправки доков сделаны как раз для того, чтобы правильно подготовить отправляемый документ
     
  8. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Medevic
    ну так можно ж вообще на собаках попробовать

    Код (Text):
    Address := "xxxx@com.ru";
    @Command([MailComposeMemo]);
    @UpdateFormulaContext;
    @SetField("EnterSendTo"; Address);
    @SetField("Form"; "NotifHardware");
    @SetField("Principal"; "HelpDesk");
    @SetField("Principal"; "HelpDesk");
    @SetField("Principal"; "HelpDesk");
    и т.д.
    100%
     
  9. NetWood

    NetWood Lotus team
    Lotus team

    Регистрация:
    17 апр 2008
    Сообщения:
    308
    Симпатии:
    0
    :) не буду спорить, но просьба прокомментировать.
    Это какие такие изменения в роутере. Он или работает или нет. Его работа задается настройками глобал домейна и пр. бубнами
    "mail.box - собствнность и забота роутера". Читайте классику :) - Ионцева например.
    И что это за правильная подготовка? Есть поля которые надо заполнить по шаблону и форма memo. Это стандарт. Сделано - извольте отправить :)
    Вся правильность заключается в заполнении четырех указанных полей. Отправка из баз автозаполняет некотрые поля данными из АК и все. Не надо мистифицировать простые вещи. Примерчик. Тормозните любойл майл в боксе и гляньте свойства дока и поля. Все будет ясно от кого кому...
     
Загрузка...
Похожие Темы - Помогите новичку
  1. rn3rjd
    Ответов:
    9
    Просмотров:
    1.231
  2. maxiik
    Ответов:
    3
    Просмотров:
    1.575
  3. zaza41rus
    Ответов:
    0
    Просмотров:
    1.054
  4. Radion2
    Ответов:
    0
    Просмотров:
    1.669
  5. forem0st
    Ответов:
    6
    Просмотров:
    3.540

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