• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Unable To Send Mail

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

1KIA

подскажите пожалуйста
Есть база , в ней заполняется поле ФИО, после на данное поле отправляются уведомление.
Появилась проблема с 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
7 940
609
BIT
210
сделайте так, чтобы не было дублирования, но луче адресовать это админу
 
1

1KIA

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

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
а случаем, в локальной настройке, не подключаются к-л диркатовские базы? (сморите преференсы клиента, там д.б. тока names.nsf, в большинстве случаев)
 
1

1KIA


вот здесь тоже пишется про такую же проблему, но я не могу от нее избавиться

добавляю перед отправкой
Код:
		On Error 4294 Goto AmbiguousError 
Call note.Send( False, False )
в дебагере видно как попадает на строку On Error 4294 Goto AmbiguousError, а на следующей выдает ошибку
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
вы на мой вопрос не ответили
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
а на следующей выдает ошибку
это должно быть, просто в обработчике ошибки - другой код (как по ссылке)
если в обработчик не попадает (по к-л причине)
поставьте "общий" OnError Goto ErrH
и посмотрите номер ошибки
 
1

1KIA

спасибо ,ошибка 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

1KIA

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

nvyush

Может на следующей строке даёт ошибку из-за Persondoc = Nothing?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 940
609
BIT
210
"верните" общий обработчик в этом участке кода... (после метки)
 
1

1KIA

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

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

nvyush

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 затирать
 
H

hosm

А это что за 2-й параметр у метода?
Call memo.Send( False, False )
Тут так:
__ - строка Set memo= namesdb.getview("($User)").getdocumentbykey(memo.SendTo(0))
в коде выше у вас немного другой объект:
Set Persondoc= namesdb.getview("($Users)").getdocumentbykey(memo.SendTo(0))
Либо вы запутались в коде - смотрите внимательней код сами тогда, либо выложите не разрозненными кусками, а каким-то более-менее осмысленным блоком...
 
1

1KIA

Код:
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))
 
N

nvyush

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 могут содержать несколько адресатов, правильней было бы обрабатывать их все в цикле.
 
H

hosm

мб, таки так:
Код:
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
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!