Отправка письма Lotus от другого пользователя.

Привет друзья! Помогите с задачей: возможно ли в Lotus сделать отправку сообщения не от текущего пользователя, а от любого другого, указаного в коде? OSMOR жду твоих комментариев...
24 ответа

WRX,Письмо генерируете из Аксесса (ну или откуда угодно, но не из лотусового клиента)?1. Для того, чтобы письмо реально уходило от другого пользователя нужно создавать его из почтового ящика этого пользователя (коннектиться к конкретному файлу .nsf в каталоге \mail на сервере), и, конечно, иметь все права и роли для возможности создания сообщений.2. Если просто необходимо подменить реквизиты отправителя:
memo.SmtpOriginator="Вася Пупкин"
memo.Principal="Вася Пупкин"
Дома Лотуса нет, если нужно, завтра посмотрю, какое свойство отвечает за return-reciept.


WRX,Да. Тебе необходимо создавать письмо (документ) в базе "mail.box" серваке и сохранить его (метод Save, а не Send) . Dim session As New NotesSessionDim db As NotesDatabaseDim doc As NotesDocumentSet db = New Notesdatabase(session.CurrentDatabase.Server, "mail.box")Set doc = New NotesDocument( db )doc.Form = "Memo"doc.From = "Petrov Petr"doc.SendTo = "Ivanov Ivan"doc.Subject = "Privet Ivan"doc.Body = "Wassup man"Call doc.Save( False, False )по моему как то так...проверь


WRX,Вот поля, которые можно заполнить для подмены реквизитов отправителя:
memo.From="Вася Пупкин"
memo.Principal="Вася Пупкин"
memo.ReturnReciept=1
memo.ReplayTo="[removed_email]"


bsv067, спасибо, но ругается сразу на строки:
Set db = New Notesdatabase(session.CurrentDatabase.Server, "mail.box")
Set doc = New NotesDocument( db )


bsv067, спасибо, но ругается сразу на строки: <pre class="prettyprint linenums">Set db = New Notesdatabase(session.CurrentDatabase.Server, "mail.box") Set doc = New NotesDocument( db ) </pre>
Правильно ругается - mail.box - это транзитный почтовый ящик сервера, в нем нельзя создавать документы.Вот хороший пример:[url=]http://www-01.ibm.com/support/docview.wss?uid=swg21178583[/url]


WRX,А на чем пишете - аксесс, или лотусовый дизайнер?


bsv067, ACCESS 2003


bsv067, по ссылке прошел - там вроде стандартная отправка письма от себя - это у меня все работает


bsv067, по ссылке прошел - там вроде стандартная отправка письма от себя - это у меня все работает
Для того, чтобы отправить от имени другого пользователя нужно иметь доступ к его ящику:
Set Maildb = Session.GETDATABASE("notesservername", "\[имя файла почтового ящика].nsf")
или писать серверный агент в любой базе на сервере, но для этого нужен Lotus Designer и права администратора на сервере.По другому вы сообщения из чужой почтовой базы не отправите.Простая подмена ключевых полей не устраивает?


Простая подмена ключевых полей не устраивает?
можешь пример нарисовать с подменой?


Правильно ругается - mail.box - это транзитный почтовый ящик сервера, в нем нельзя создавать документы.To bsv067: Вы пробовали создавать или от незнания сказали?


можешь пример нарисовать с подменой?
да, мне тоже интересно будет на код посмотреть.Для WRX:Dim session As New NotesSessionDim db As NotesDatabaseDim doc As NotesDocumentSet db = New Notesdatabase(session.CurrentDatabase.Server, "mail.box")Set doc = New NotesDocument( db )doc.Form = "Memo"doc.From = "Petrov Petr" ' отправительdoc.Recipients = "Ivanov Ivan" 'получательdoc.Subject = "Privet Ivan"doc.Body = "Wassup man"Call doc.Save( False, False )только что проверил данный код, все отработало корректно. Проверял в ЛОТУСЕ. Правда в первом примере я допустил ошибку написав "SendTo" - это не правильно, правильно писать "Recipients", иначе письмо не будет доставлено адресату.Но смысл остается тем же, Вам необходимо создать документ в базе "mail.box" (она лежит в корневом каталоге "...Lotus\Domino\Data" на сервере)З.Ы. Пароли от почтовых ящиков пользователей это очень интересно, особенно если в вашей компании работает 1000 сотрудников )))


тут завелся лотусист?


конечно не в теме. но как понял.отправлять хоть от кого можно. из веба. при включенных на сервере возможностях (редко когда они не включены, но если что, за деньги включат). и пароли ненужны )


bsv067, спасибо, но ругается сразу на строки: <pre class="prettyprint linenums">Set db = New Notesdatabase(session.CurrentDatabase.Server, "mail.box") Set doc = New NotesDocument( db ) </pre>
Дело в том что данная строка написана для выполнения в лотусе. Честно говоря с Access никогда не работалПопробуй таким способом:Dim db As ObjectDim doc As ObjectDim Body As ObjectDim Session As ObjectSet Session = CreateObject("Lotus.NotesSession")Call Session.InitializeUsingNotesUserName("Ivan Ivanov - логин", "secretPassword - пароль")Set db = Session.GETDATABASE("", "mail.box")If Not db.IsOpen = True ThenCall db.OpenEnd IfSet doc = db.CREATEDOCUMENTCall doc.ReplaceItemValue("Form", "Memo")Call doc.ReplaceItemValue("From", "Petrov Petr")Call doc.ReplaceItemValue("Recipients", "Ivanov Ivan")Call doc.ReplaceItemValue("Subject", "Privet Ivan")Set Body = doc.CREATERICHTEXTITEM("Body")Call Body.APPENDTEXT("Wassup man")Call doc.Save( False, False )


тут завелся лотусист?
:) на работе возникли проблемы с базой в Access (переполнилась :) ) разработчика нет, я в этом деле ни чего не понимаю. вот решил немного разобраться что к чему. а увидев близкую для меня тему (как раз и работаю на лотусе) решил помочь


Lotusist,compact and repair на нее натравить )


Lotusist,compact and repair на нее натравить )
подскажите плиз можно ли вместо вложений использовать ссылки на них? или ткните носом где об этом почитать


Lotusist,про картинки?


ILL HEAD,да. все записи хранят в себе вложения в виде jpg и pdf файлов. думаю могу ли я выгрузить их например на сетевой диск, а вместо их использовать ссылки


Lotusist, можно, а потом использовать код: http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=860676&msg=11032107


Правильно ругается - mail.box - это транзитный почтовый ящик сервера, в нем нельзя создавать документы.To bsv067: Вы пробовали создавать или от незнания сказали?
Если честно, то не пробовал. Если не прав, виноват. Всегда думал, что mail.box нельзя так использовать. С Лотусом, к сожалению, не работаю уже лет шесть. Все, что писал здесь - по старой памяти.


[quot Lotusist]
пропущено...можешь пример нарисовать с подменой?
memo.From="Вася Пупкин"memo.Principal="Вася Пупкин"memo.ReturnReciept=1memo.ReplayTo="[removed_email]"Call memo.send(True)Документ memo можно создавать в любой базе, на которую есть права у отправителя.
да, мне тоже интересно будет на код посмотреть.З.Ы. Пароли от почтовых ящиков пользователей это очень интересно, особенно если в вашей компании работает 1000 сотрудников )))
1. Можно создать группу, и прописать ее во все ящики с нужными правами. 2. Можно написать серверный агент, который будет отсылать сообщение непосредственно из ящика пользователя без его участия.Но это неважно. Эти варианты не для начального программирования.Суть в том, что насчет mail.box Вы скорее всего правы, а я ошибся. Всегда использовал метод отправки, о котором написал чуть выше.


Lotusist,Да и еще вопрос - насколько я помню, агент "Before new mail arrives" в mail.box не успевает обрабатывать транзитные сообщения. Я прав? Если бы успевал, можно было бы создать в нем код, который правит реквизиты определенных сообщений на лету?P.S.Вопрос праздный. Испытываю жуткую ностальгию по Лотусу, а занимаюсь им только тогда, когда возникает необходимость помогать бывшим коллегам. Но люблю его :)