Unable To Send Mail

  • Автор темы 1KIA
  • Дата начала
1

1KIA

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#2
сделайте так, чтобы не было дублирования, но луче адресовать это админу
 
1

1KIA

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#4
а случаем, в локальной настройке, не подключаются к-л диркатовские базы? (сморите преференсы клиента, там д.б. тока names.nsf, в большинстве случаев)
 
1

1KIA

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#6
вы на мой вопрос не ответили
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#8
а на следующей выдает ошибку
это должно быть, просто в обработчике ошибки - другой код (как по ссылке)
если в обработчик не попадает (по к-л причине)
поставьте "общий" OnError Goto ErrH
и посмотрите номер ошибки
 
1

1KIA

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

теперь след. проблема:
Код:
	Set memoSendTo = New NotesItem( memo, "SendTo", sendTo )
.......
Call memo.Send( False, False )
это так заполнялось кому отправить письмо
теперь ставлю:
Код:
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
 
1
#11
namesDB есть ($User), memo.SendTo заполнен ФИО, namesdb- определил АК
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#13
"верните" общий обработчик в этом участке кода... (после метки)
 
1
#14
да Persondoc пустое, но почему оно не заполняется?

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

nvyush

Lotus team
22.04.2009
2 317
0
#15
Set memo= namesdb.getview("($User)").getdocumentbykey(memo.SendTo(0))
Попробуйте заменить на
Код:
Dim tmpDoc As NotesDocument
Set tmpDoc = namesdb.getview("($User)").getdocumentbykey(memo.SendTo(0))
Set memo = tmpDoc
Хотя совсем непонятно, зачем memo затирать
 

hosm

* so what *
18.05.2009
2 442
6
#16
А это что за 2-й параметр у метода?
Тут так:
__ - строка Set memo= namesdb.getview("($User)").getdocumentbykey(memo.SendTo(0))
в коде выше у вас немного другой объект:
Set Persondoc= namesdb.getview("($Users)").getdocumentbykey(memo.SendTo(0))
Либо вы запутались в коде - смотрите внимательней код сами тогда, либо выложите не разрозненными кусками, а каким-то более-менее осмысленным блоком...
 
1
#17
Код:
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))
 

nvyush

Lotus team
22.04.2009
2 317
0
#19
Set tmpDoc = namesdb.getview("($User)").getdocumentbykey(note.SendTo(0))
Set memo = tmpDoc
memo.SendTo = memo.fullname(0) & "@" & memo.MailDomain(0)
Код:
Set tmpDoc = namesdb.getview("($User)").getdocumentbykey(memo.SendTo(0))
memo.SendTo = tmpDoc.fullname(0) & "@" & tmpDoc.MailDomain(0)
Добавлено
Следует обратить внимание, что memo.SendTo + memo.CopyTo могут содержать несколько адресатов, правильней было бы обрабатывать их все в цикле.
 

hosm

* so what *
18.05.2009
2 442
6
#20
мб, таки так:
Код:
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