Скрытие поля Principal

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

1KIA

#1
помогите пожалуйста
НЕобходимо письмо отправлять без указания ОТ , т.е. без Principal
Пробую сделать кнопку с след. кодом, но не могу понять как из текущего письма взять данные из полей Subject и SendTo
Код:
	Dim s As New NotesSession
Dim db As NotesDatabase
Dim mailDoc As NotesDocument
Set db = s.CurrentDatabase	
Set mailDoc = db.CreateDocument


mailDoc.Form = "Memo"
mailDoc.Principal = ""
mailDoc.SMTPOriginator = ""
mailDoc.DisplaySent = ""
mailDoc.Subject = "TEST"
mailDoc.Importance = "1"

Dim otpr As Variant
otpr = maildoc.getItemValue("SendTo")(0)

Call mailDoc.Replaceitemvalue("SendTo", otpr)
Call mailDoc.Send(False)
 

hosm

* so what *
18.05.2009
2 442
6
#2
что есть из "текущего письма"?

(0) не надо, если адресатов несколько.
maildoc - это вновь созданный документ, нет у него этого поля, оно заполяется в следующем далее коде.
Могу предложить смотреть поле в NotesUIWorkSpace.CurrentDocument.Document (текущий в уи) или текущих во вьюхе (NotesUIView.CaretNoteID или Documents - выделенных галкой)
 
1

1KIA

#3
OKEN
может я вообще не с той стороны подошла. Мне надо просто при отправке писем не заполнять Principal . Может тогда есть другой вариант?

может можно как-то на кнопке Отправить переделать :
Код:
Principal:=" ";
SMTPOriginator:=" ";
MEMO_SEND:="1024";
FIELD ActionInProgress:=MEMO_SEND;
@If(@Command([FileSave]);@Command([FileCloseWindow]);@Return(""))
Все равно приходит от кого именно отправилось
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 569
263
#4
какая цель письма без ОТ?
 

hosm

* so what *
18.05.2009
2 442
6
#5
может.
У меня просто другая проблема была - как раз надо было заполнять поля Principal и INetFrom, так как отправка шла в агенте.
 
1

1KIA

#6
lmike
цель такая, что из почтовой базы отправляют письма, а приходить они на внешнюю и внутреннюю почту от определенного адреса (email компании)
 

nvyush

Lotus team
22.04.2009
2 317
0
#8
цель такая, что из почтовой базы отправляют письма, а приходить они на внешнюю и внутреннюю почту от определенного адреса (email компании)
Непосредственно класть в mail.box. doc.Send, насколько я помню, сам проставляет отправителя.
 

xKlonx

Lotus team
10.09.2009
410
0
#9
Код:
Dim s As New NotesSession
Dim db As NotesDatabase
Dim mailDoc As NotesDocument
Set db = s.CurrentDatabase	
Set mailDoc = db.CreateDocument


mailDoc.Form = "Memo"
Call	mailDoc.ReplaceItemValue("Principal"," ")  ' в скобки пробел, таким образом скрывает принципал 
mailDoc.SMTPOriginator = ""
mailDoc.DisplaySent = ""
mailDoc.Subject = "TEST"
mailDoc.Importance = "1"

Dim otpr As Variant
otpr = maildoc.getItemValue("SendTo")(0)

Call mailDoc.Replaceitemvalue("SendTo", otpr)
Call mailDoc.Send(False)
 
1
#12
nvy
я поиском уже находила данные ссылки
Я просто из такого метода не могу понять, как взять значение из полей. Т.е. чтобы не вручную вводить SendTo и Subject
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 569
263
#14
ябы письмо без обратного адреса выкинул не читая, большинство "нормальных" фильтров - тоже его выкинут
это пр-ло хорошего тона - д.б. сабж и от кого
если компанейское письмо - заведите общий адрес (с юзером) подпишите юзером агент (или исполняйте от его имени)
 
1
#17
если компанейское письмо - заведите общий адрес (с юзером) подпишите юзером агент (или исполняйте от его имени)
так все равно приходит подпись, т.е. указан отправитель (база ) и тот кто нажал кнопку
А мне не надо чтобы писало кто именно нажал кнопку, а надо чтобы отправлялось от владельца базы
 
1
#18
:what?: может еще как-то можно отправить письмо без Principal??? :(
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 569
263
#19
а надо чтобы отправлялось от владельца базы
если агент исполняется от имени к-л (это задаётся в дизайнере) - он и будет в поле from, а не нажавший кнопку, в случае запуска на сервере!

Добавлено: -создаем агент с вашим кодом (назовём mailsend тип запуска - agent list)
-заводим юзера для отправки таких мэйлов (в базе, у него, д.б. соответ права)
-ставим этого юзера в "Run on behalf of" агента
-создаем второй агент (или кнопку) с кодом
Код:
Dim s As New NotesSession
Dim db As NotesDatabase
Set db = s.CurrentDatabase
Dim agent As NotesAgent
Set agent=db.GetAgent("(mailsend)")
Call agent.RunOnServer
 
1
#20
lmike
тогда пишу, как сделала, может не правильно
- на форме кнопка, при нажатии которой запускается агент
- агент:
Код:
MEMO_SEND:="1024";
FIELD ActionInProgress:=MEMO_SEND;
@If(@Command([FileSave]);@Command([FileCloseWindow]);@Return(""));
свойства агента: target - None
Run on behalf of - тот от кого хочу отправлять письма
Агент изменен и сохранен тоже тем же пользователем (от кого хочу отправлять письма)