Отправка копии письма.

Автор Тема: Отправка копии письма.  (Прочитано 24235 раз)

ol_x

  • Специалист
  • ***
  • Сообщений: 80
    • Просмотр профиля
    • E-mail
Отправка копии письма.
« : 20 Июнь 2012, 15:47:12 »
Доброго всем времени суток!

Как реализовать теневое копирование отправленного письма. Посмотрел simple action, там отрабатывается событие при получении письма, при отправке никаких событий нет.

Мысли были переписать код "Отправить"

MEMO_SEND:="1024";
FIELD ActionInProgress:=MEMO_SEND;
@If(@Command([FileSave]);@Command([FileCloseWindow]);@Return(""))

но так и не получилось вернуть значение body

Направьте на правильный путь плиз.
« Последнее редактирование: 20 Июнь 2012, 15:49:17 от ol_x »

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Отправка копии письма.
« Ответ #1 : 21 Июнь 2012, 11:43:01 »
Добрый день!

Какая перед вами стоит задача? Вам нужно, чтобы все отправляемые письма пользователей копировались в какую-то базу?

ol_x

  • Специалист
  • ***
  • Сообщений: 80
    • Просмотр профиля
    • E-mail
Отправка копии письма.
« Ответ #2 : 21 Июнь 2012, 12:17:30 »
Не совсем так... все письма и так заносятся в журнал. Задача стоит такая: влепить теневую отправку почты недобросовестных сотрудников на определенный ящик для дальнейшего анализа, чтобы они этого не видели и не знали об этом.

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Отправка копии письма.
« Ответ #3 : 21 Июнь 2012, 12:24:27 »
Попробуйте воспользоваться серверными почтовыми правилами

ol_x

  • Специалист
  • ***
  • Сообщений: 80
    • Просмотр профиля
    • E-mail
Отправка копии письма.
« Ответ #4 : 21 Июнь 2012, 14:30:43 »
Серверные почтовые правила отрабатывают только следующие действия:

- занести это сообщение в журнал
- переместить в базу данных
- не принимать сообщение
- изменить состояние маршрутизации
- остановить обработку

Второе действия бы подошло, если бы письмо еще уходило по своему прямому адресу, а не тупо перемещало в другую базу.

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Отправка копии письма.
« Ответ #5 : 21 Июнь 2012, 14:47:26 »
А если выбрать второй пункт и указать две базы: базу куда копировать и серверный mail.box?

ol_x

  • Специалист
  • ***
  • Сообщений: 80
    • Просмотр профиля
    • E-mail
Отправка копии письма.
« Ответ #6 : 21 Июнь 2012, 15:16:01 »
Он не копирует, а перемещает. Попробовал, не то.

ol_x

  • Специалист
  • ***
  • Сообщений: 80
    • Просмотр профиля
    • E-mail
Отправка копии письма.
« Ответ #7 : 21 Июнь 2012, 17:02:39 »
Нашел подходящий кусок кода... только клиент ругается, что переменная не определена, что очень странно, ибо код брался с документации лотусни.

Sub Click(Source As Button)
 Dim session As New NotesSession
 Dim workspace As New NotesUIWorkspace
 Dim db As NotesDatabase
 Dim uidoc As NotesUIDocument
 Dim doc As NotesDocument, doc2 As NotesDocument
 Dim item As NotesItem
 Set uidoc = workspace.CurrentDocument
 Set doc = uidoc.Document
 Set db = session.CurrentDatabase
 Set doc2 = New NotesDocument(db)
 Set item = doc.GetFirstItem("Subject")
 Call item.CopyItemToDocument(doc2, "Subject")
 Set item = doc.GetFirstItem("Body")
 Call item.CopyItemToDocument(doc2, "Body")  'ругается в этом месте
 Call doc2.Send(True, "Marketing")
End Sub

В принципе, если бы был рабочий, на его основе можно было переделать Lotus Formula (кода "Отправить") в LotusScript, добавив в этот код сохранение и закрытие, чтобы юзверь не отличил на глаз изменения в действиях при отправке письма.
« Последнее редактирование: 21 Июнь 2012, 17:07:19 от ol_x »

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Отправка копии письма.
« Ответ #8 : 21 Июнь 2012, 17:33:24 »
Можно в почтовом шаблоне для кнопок отправки добавить @MailSend("Marketing")

ol_x

  • Специалист
  • ***
  • Сообщений: 80
    • Просмотр профиля
    • E-mail
Отправка копии письма.
« Ответ #9 : 21 Июнь 2012, 17:48:39 »
В таком случае письмо улетает пустым: без темы и без тела...

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Отправка копии письма.
« Ответ #10 : 21 Июнь 2012, 18:55:28 »
Ок, можно углубиться и добавить код в библиотеку отправки.

Для этого, в скриптовой библиотеке CoreEmailClasses, в функции QuerySave класса UIMemoDocument
в начале функции после строки
On Error Goto TRAP

добавить код:

Dim mdoc As NotesDocument
Set mdoc =  Me.m_db.Createdocument()

Call mdoc.Replaceitemvalue("SendTo", "Marketing")
Call mdoc.Replaceitemvalue("Body", Me.m_noteUIMemo.Fieldgettext("Body"))
Call mdoc.Replaceitemvalue("Subject", Me.m_noteUIMemo.Fieldgettext("Subject"))
Call mdoc.Send(False)

ol_x

  • Специалист
  • ***
  • Сообщений: 80
    • Просмотр профиля
    • E-mail
Отправка копии письма.
« Ответ #11 : 22 Июнь 2012, 09:10:15 »
Ругалось на m_db. Сделал вот так:

Set mdoc = Me.m_session.Currentdatabase.Createdocument()
Все классно! Но если есть вложения в письма, они не прилетают.

ol_x

  • Специалист
  • ***
  • Сообщений: 80
    • Просмотр профиля
    • E-mail
Отправка копии письма.
« Ответ #12 : 22 Июнь 2012, 10:06:34 »
        Set mdoc = Me.m_session.Currentdatabase.Createdocument() 
        Call Me.m_noteUIMemo.Document.Copyallitems(mdoc, True)

        Call mdoc.Replaceitemvalue("Body", Me.m_noteUIMemo.Fieldgettext("Body"))

        Call mdoc.Replaceitemvalue("CopyTo", "")
Call mdoc.Replaceitemvalue("BlindCopyTo", "")
        Call mdoc.Replaceitemvalue("SendTo", "10v. Marketing")
               
        Call mdoc.Send(False)

Вот так вроде все работает... хотя не уверен, что кодестайл, но это уже самое последнее дело )

ol_x

  • Специалист
  • ***
  • Сообщений: 80
    • Просмотр профиля
    • E-mail
Отправка копии письма.
« Ответ #13 : 22 Июнь 2012, 10:35:07 »
пытаюсь открыть CoreEmailClasses, открывается не понять что... Интересно, и как в первый раз открылось

%REM
   Library CoreEmailClasses_ru-RU
   Created Jun 22, 2012 by admin SYSTEM/
   Description: Comments for Library
%END REM
Option Public
Option Declare

« Последнее редактирование: 22 Июнь 2012, 10:40:31 от ol_x »

ol_x

  • Специалист
  • ***
  • Сообщений: 80
    • Просмотр профиля
    • E-mail
Отправка копии письма.
« Ответ #14 : 22 Июнь 2012, 12:39:02 »
Проглючило дизайнер.

Теперь следующий вопрос:

как от этого избавится
« Последнее редактирование: 05 Июль 2012, 13:09:21 от ol_x »