Могу ли я использовать Lotus Notes для отправки почты? - PullRequest
2 голосов
/ 22 июня 2009

Мне нужно закодировать приложение, которое в какой-то момент времени должно будет отправлять некоторые отчеты с помощью Lotus Notes.

Мои вопросы:

  1. Могу ли я отправлять почту через клиент Lotus Notes или что-то связанное с Lotus Notes (возможно, из командной строки?)? Если да, где я могу найти информацию, связанную с этим? Я бы предпочел не делать этого на C / C ++, но если бы не было других опций, это бы сработало.

  2. Как узнать адрес сервера? Графический интерфейс не интуитивно понятен, и я не могу найти адрес сервера. Сервер расположен на другом компьютере в сети.

Ответы [ 8 ]

3 голосов
/ 22 июня 2009

Вот пример полувекового старого кода для отправки почты Notes из Excel VBA с использованием объектов OLE Notes - возможно, они могут использоваться на большинстве ваших предпочитаемых платформ:

Dim session As Object
Dim maildb As Object
Dim maildoc As Object
Dim body As Object

Public Sub send(subject, recipient, filename)
    On Error GoTo errorhandler
    Const EMBED_ATTACHMENT = 1454
    Call maildb.OpenMail

    If Not maildb.IsOpen Then Call maildb.Open("", "")

    Set maildoc = maildb.createdocument
    Set body = maildoc.createrichtextitem("body")

    Call maildoc.replaceitemvalue("form", "memo")
    Call maildoc.replaceitemvalue("subject", subject)

    Call body.EmbedObject(EMBED_ATTACHMENT, "", filename, subject)
    Call maildoc.send(false,recipient)
End Sub

Private Sub Class_Initialize()
    Set session = CreateObject("Notes.NotesSession")
    Set maildb = session.getDatabase("", "")
End Sub

Документацию по различным объектам Notes можно найти здесь: Документация Lotus Domino Designer

3 голосов
/ 22 июня 2009

Понятия не имею о Lotus Notes. Но для отправки электронной почты из кода я не уверен, зачем вам нужен клиент. В случае Exchange вам просто нужны данные сервера (или любой SMTP-сервер), а затем кодируйте его на нужном вам языке. Вам нужно перейти туда, где клиент Lotus Notes настроен для почтовых учетных записей, чтобы узнать подробности о сервере.

3 голосов
/ 22 июня 2009

Да, вы можете отправлять электронную почту через клиент Lotus Notes. Мне приходилось делать это раньше в приложении .NET, потому что многие наши клиенты использовали Lotus Notes.

Lotus Notes публикует SDK для этого.

Вот ссылка .

Мы использовали Interop, чтобы все заработало. Также убедитесь, что вы выбрали правильную версию SDK. Он должен соответствовать версии Lotus Notes, которую использует ваш клиент. Если вы используете не тот, то он не будет работать на их машинах.

2 голосов
/ 10 ноября 2010

попробуй https://rubygems.org/gems/notes_mailer (отказ от ответственности: я автор)

3 <</p>

1 голос
/ 22 октября 2010

Существует сборка Domino .NET от Notes версии 6.5 и выше, которая предоставляет вам довольно простые способы использования объектной модели Lotus Notes в вашем приложении .NET (так что вы можете писать код на C #), однако некоторые общие знания оСама объектная модель и как программировать классы Notes.Однако вы можете найти много ответов на DeveloperWorks IBM для Lotus (http://www.notes.net).

). Вы также можете поместить свои данные на жесткий диск и создать локальный агент LotuScript, чтобы забрать их и отправить по электронной почте. Для этого вам понадобится LotusScriptЗнание. Локальные агенты могут быть легко запланированы, но клиент Notes должен постоянно работать на этом компьютере.

Адрес сервера не требуется при отправке сообщений электронной почты из кода Notes (приложения .NET или кода LotusScript). Всеадреса настраиваются в документах конфигурации Notes, называемых местоположениями и соединениями. Эти документы можно найти в приложении локальной адресной книги, в разделе «Дополнительно». Вы также можете управлять местоположениями через меню «Файл» (я полагаю, начиная с версии 8).простой, но не «стиль Microsoft», и поэтому вы называете его «не интуитивным».

Но обычно клиент Notes не используется для отправки автоматических писем, если это не делается во время взаимодействия пользователя с самим приложением Notes.отправлять письма over вы можете интегрироваться с сервером Domino и отправлять почту оттуда с помощью запланированных агентов.Но в случае, если вы используете код .NET, он также может использовать клиентский API для этого, но на компьютере, где вы запускаете приложение, отправляющее почту, вам нужно будет установить клиент Notes.

Последний вариант будетчтобы отправить его через SMTP.Это потребует настройки ретрансляции SMTP на сервере и не будет поддерживать шифрование, предоставляемое «из коробки» Lotus Notes / Domino.

1 голос
/ 26 июня 2009

Требуются дополнительные сведения о параметрах почты, но самые простые из них:

1) Использовать @Function - пример @MailSend Это встроенная функция в заметках, которую можно использовать в форме. Например, когда вы нажимаете кнопку или сохраняете документ. Вы можете открыть дизайнер заметок лотоса и посмотреть справку для получения всей информации.

2) Вы можете использовать скрипт лотоса, чтобы создать свою собственную отправку электронной почты.

Вот ссылка на форум заметок, на который вы найдёте ответ. http://www -10.lotus.com / LDD / 46dom.nsf? OpenDatabase

1 голос
/ 22 июня 2009

Вот инструмент командной строки для отправки SMTP-сообщений. Просто поместите IP-адрес SMTP-сервера в файл конфигурации и используйте операторы командной строки для создания выходного файла, который используется для отправки.

Помните: если вы пишете код, который на самом деле использует клиент Notes, клиент должен быть установлен везде, где этот код выполняется.

http://glob.com.au/sendmail/

Что касается адреса SMTP-сервера, я бы предложил связаться с любым сотрудником вашей организации, который занимается обменом сообщениями. Иногда компании используют отдельный внутренний SMTP-сервер для этой цели. В противном случае вам нужно будет перейти в раздел «Конфигурация \ Серверы \ Все документы сервера» в каталоге Notes, чтобы найти адрес SMTP-серверов.

0 голосов
/ 18 мая 2010

Чтобы ответить на вопрос 2. Вы можете получить имя сервера, то есть имя лотосных нот, следующим образом:

Private Sub Class_Initialize()

    Set session = CreateObject("Notes.NotesSession")
    dim strServerName as string
    strServerName = session.CurrentDatabase.Server
    If ( strServerName  = "" ) Then
        Messagebox( "This database is local." )
    Else
       Messagebox( "This database is on a server named "+ strServerName +"." )
    End If

End Sub
...