Unable To Send Mail

Тема в разделе "Lotus - Программирование", создана пользователем 1KIA, 17 янв 2011.

  1. 1KIA

    1KIA Гость

    подскажите пожалуйста
    Есть база , в ней заполняется поле ФИО, после на данное поле отправляются уведомление.
    Появилась проблема с 8.5.2 у них ошибка unable to send mail, multiple matches found in Name
    Просто вариант, что поставить в "Recipient Name Lookup:" "Stop after first match" не подходит, может кто-то еще сталкивался с данной проблемой
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    сделайте так, чтобы не было дублирования, но луче адресовать это админу
     
  3. 1KIA

    1KIA Гость

    так дублирование происходит из-за локальной бд скорее, так как в серверной АК нет проблем
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    а случаем, в локальной настройке, не подключаются к-л диркатовские базы? (сморите преференсы клиента, там д.б. тока names.nsf, в большинстве случаев)
     
  5. 1KIA

    1KIA Гость

    http://www-01.ibm.com/support/docview.wss?uid=swg21316108
    вот здесь тоже пишется про такую же проблему, но я не могу от нее избавиться
    http://www-01.ibm.com/support/docview.wss?...uid=swg21153854
    добавляю перед отправкой
    Код (Text):
            On Error 4294 Goto AmbiguousError
    Call note.Send( False, False )
    в дебагере видно как попадает на строку On Error 4294 Goto AmbiguousError, а на следующей выдает ошибку
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    вы на мой вопрос не ответили
     
  7. 1KIA

    1KIA Гость

    только names.nsf
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    это должно быть, просто в обработчике ошибки - другой код (как по ссылке)
    если в обработчик не попадает (по к-л причине)
    поставьте "общий" OnError Goto ErrH
    и посмотрите номер ошибки
     
  9. 1KIA

    1KIA Гость

    спасибо ,ошибка On Error 4295 Goto AmbiguousError, т.е 4295

    теперь след. проблема:
    Код (Text):
        Set memoSendTo = New NotesItem( memo, "SendTo", sendTo )
    .......
    Call memo.Send( False, False )
    это так заполнялось кому отправить письмо
    теперь ставлю:
    Код (Text):
    AmbiguousError:
    Dim persondoc As NotesDocument
    Dim namesdb As NotesDatabase
    Set namesdb= session.getdatabase(db.server, "names.nsf")
    Set Persondoc= namesdb.getview("($Users)").getdocumentbykey(memo.SendTo(0))
    memo.SendTo = Persondoc.fullname(0) & "@" & Persondoc.MailDomain(0)
    Call memo.Send(True)
    Resume Next
    в строке Set Persondoc= namesdb.getview("($Users)").getdocumentbykey(memo.SendTo(0)) выдает ошибку Object variable not set
     
  10. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Скорее всего memo = Nothing

    Или namesdb = Nothing, или представление "($Users)") не найдено. Пройдитесь отладчиком
     
  11. 1KIA

    1KIA Гость

    namesDB есть ($User), memo.SendTo заполнен ФИО, namesdb- определил АК
     
  12. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Может на следующей строке даёт ошибку из-за Persondoc = Nothing?
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    "верните" общий обработчик в этом участке кода... (после метки)
     
  14. 1KIA

    1KIA Гость

    да Persondoc пустое, но почему оно не заполняется?

    ошибку показывает следующую Error 91 on line __: Object variable not set
    __ - строка Set memo= namesdb.getview("($User)").getdocumentbykey(memo.SendTo(0))
     
  15. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Set memo= namesdb.getview("($User)").getdocumentbykey(memo.SendTo(0))
    Попробуйте заменить на
    Код (LotusScript):
    Dim tmpDoc As NotesDocument
    Set tmpDoc = namesdb.getview("($User)").getdocumentbykey(memo.SendTo(0))
    Set memo = tmpDoc
    Хотя совсем непонятно, зачем memo затирать
     
  16. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    А это что за 2-й параметр у метода?
    Тут так:
    в коде выше у вас немного другой объект:
    Либо вы запутались в коде - смотрите внимательней код сами тогда, либо выложите не разрозненными кусками, а каким-то более-менее осмысленным блоком...
     
  17. 1KIA

    1KIA Гость

    Код (Text):
    On Error 4295 Goto AmbiguousError
    Dim memo As New NotesDocument( db )
    memo.Form = "Bookmark"

    Dim memoSendTo As NotesItem
    Set memoSendTo = New NotesItem( memo, "SendTo", sendTo )

    Dim memoCopyTo As NotesItem
    Set memoCopyTo = New NotesItem( memo, "CopyTo", copyTo )

    …..      

    'Отправка сообщения
    If (memo.SendTo(0) <> "") Or (memo.CopyTo(0) <> "") Then
    Call memo.Send( False, False )


    AmbiguousError:
    Dim persondoc As NotesDocument
    Dim namesdb As NotesDatabase
    Set namesdb= session.getdatabase(db.server, "names.nsf")
    Dim tmpDoc As NotesDocument
    Set tmpDoc = namesdb.getview("($User)").getdocumentbykey(note.SendTo(0))
    Set memo = tmpDoc
    ‘ memo.SendTo = memo.fullname(0) & "@" & memo.MailDomain(0)

    Call memo.Send(True)

    Exit Sub
    Resume Next

    End Sub
    ошибку выдает вот здесь Set tmpDoc = namesdb.getview("($User)").getdocumentbykey(note.SendTo(0))
     
  18. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    это кто?
    может, memo вместо этого?
     
  19. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Код (Text):
    Set tmpDoc = namesdb.getview("($User)").getdocumentbykey(memo.SendTo(0))
    memo.SendTo = tmpDoc.fullname(0) & "@" & tmpDoc.MailDomain(0)
    Добавлено
    Следует обратить внимание, что memo.SendTo + memo.CopyTo могут содержать несколько адресатов, правильней было бы обрабатывать их все в цикле.
     
  20. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    мб, таки так:
    Код (LotusScript):
    Exit Sub
    AmbiguousError:
    Dim namesdb As NotesDatabase
    Set namesdb= session.getdatabase(db.server, "names.nsf")
    Dim persondoc As NotesDocument
    Set persondoc = namesdb.getview("($User)").getdocumentbykey(memo.SendTo(0))
    if not persondoc is Nothing then
    memo.SendTo = persondoc.fullname(0) & "@" & persondoc.MailDomain(0) ' мб и правильно   
    Call memo.Send(False) ' раньше (выше в коде) посылали без формы, тут она, мб, тоже не нужна
    end if 
    Resume Next
     
Загрузка...

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