Создание сообщения Outlook

Автор izvne, 4 марта 2013, 15:00

0 Пользователи и 1 гость просматривают эту тему.

izvne

Цитата: Hasim от  5 марта 2013, 21:40Парадоксы OpenOffice - зависимость от регистра:
Мне бы ваше везение. Не помогла игра с регистрами букв. А какая версия ООо у вас?

Yakov

Я запускал пример на OOo 3.2 и MSO 2003

izvne

#17
Цитата: Yakov от  6 марта 2013, 12:13Я запускал пример на OOo 3.2 и MSO 2003
У меня тож изначально 3.2 был. Аутлук нужен именно 10й опять же из-за макросов.

Yakov

В конечном итоге должен быть такой код:


Sub UseOutlook( )
  Dim oOLEService
  Dim oOutlookApp
  Dim oOutlookMail

  oOLEService = createUnoService("com.sun.star.bridge.OleObjectFactory")
  oOutlookApp = oOLEService.createInstance("Outlook.Application")
  oOutlookMail = oOutlookApp.CreateItem(0)

  oOutlookMail.To = "andrew@pitonyak.org"
  oOutlookMail.Subject = "Test Subject"
  oOutlookMail.Body = "This is my body text for the email message"
  'oOutlookMail.Attachments.Add("C:\foo.txt")

   oOutlookMail.Display()
  'oOutlookMail.send()
End Sub


izvne

Спасибо, буду ковырять дальше наобум. Ругается на CreateItem(0) и всё тут :(

Yakov

Можно попробовать чуть доработать код

Counter=1
oOutlookMail = oOutlookApp.CreateItem(Counter)

Yakov

и здесь http://dev.mista.ru/topic.php?id=618541#19 ещё пишут, что надо настроить безопасность в Outlook 2010

izvne

Цитата: Yakov от  6 марта 2013, 12:47и здесь http://dev.mista.ru/topic.php?id=618541#19 ещё пишут, что надо настроить безопасность в Outlook 2010
там давно уже разрешены все макросы и отсыл от сторонних программ

izvne

#23
Начал жизнь с нуля, удалил все офисы и профили. Закатал всё по новой - всё работает. Спасибо помогавшим.

Осталось только разобраться с прикреплением открытого файла.

izvne

Как всё не логично после VBA )) Как получить URL открытого в данный момент файла? Файл сохраненный.


izvne

Цитата: Yakov от  6 марта 2013, 16:05http://www.openoffice.org/api/docs/common/ref/com/sun/star/document/XDocumentProperties.html
вывел все свойства в MsgBox, чтобы уж наверняка. но так и не вкурил, где эта урла ((

izvne

Если кто будет искать, то так:

ConvertFromURL(ThisComponent.getURL())

izvne

Вот полный текст макроса. Он создает письмо, прикрепляет файл, гадит в теме, теле и адресате. А сам файл закрывает с сохранением. Yakov, спасибо за помощь.
Sub OutlookMail( )
 
  GlobalScope.BasicLibraries.LoadLibrary("Tools")
  Dim oOLEService
  Dim oOutlookApp
  Dim oOutlookMail
  Dim oDoc

  oDoc = ThisComponent
  If (oDoc.isModified) Then If (oDoc.hasLocation AND (Not oDoc.isReadOnly)) Then oDoc.store() _
  Else oDoc.setModified(False)

  oOLEService = createUnoService("com.sun.star.bridge.OleObjectFactory")
  oOutlookApp = oOLEService.createInstance("Outlook.Application")
  oOutlookMail = oOutlookApp.CreateItem(0)

  oOutlookMail.To = "na@derevnu.babushke"
  oOutlookMail.Subject = FileNameOutOfPath(ThisComponent.getURL())
  'oOutlookMail.Body = "Здесь могла бы быть ваша реклама"
  oOutlookMail.Attachments.Add(ConvertFromURL(ThisComponent.getURL()))
  oOutlookMail.Display()
  'oOutlookMail.send()

  oDoc.close(True)
 
End Sub

spada

#29
Скажите как решить задачу с отправкой письма в Unix системе?
система - Ubuntu 14.04,   почтовый клиент  thunderbird.

вот макрос который я использую, но тело письма не добавляется и файл к письму не прикрепляется. После его выполнения вылазит окно  письма thunderbird в котором добавлен получатель и тема письма.

Sub SendSimpleMail()
Dim vMailSystem, vMail, vMessage, oMailService
rem vMailSystem = createUnoService( "com.sun.star.system.SimpleCommandMail" )
oMailService = createUnoService("com.sun.star.system.SimpleSystemMail")

If IsNull(oMailService) Then
       oMailService = createUnoService("com.sun.star.system.SimpleCommandMail")
End If

If IsNull(oMailService) Then
      MsgBox(" EROR")
End If

rem vMailSystem=createUnoService("com.sun.star.system.SimpleSystemMail")
rem vMail=vMailSystem.querySimpleMailClient()

vMail = oMailService.querySimpleMailClient()

rem Посмотреть, что еще можно сделать с этим, можно по ссылке
rem http://api.openoffice.org/docs/common/ref/com/sun/star/system/XSimpleMailMessage.html
vMessage=vMail.createsimplEmailMessage()
vMessage.setrecipient("andrew@pitonyak.org")
vMessage.setsubject("This is my test subject")
rem vMessage.setmessagebody("This is my test subject")

rem Приложения к письму заданы последовательностью, которая в языке basic означает массив array
rem Я мог бы использовать ConvertToURL() для создания адреса URL!
Dim vAttach(0)
vAttach(0) = "file:///home/.../lalala.txt"
vMessage.setAttachement(vAttach())
rem DEFAULTS означает текущие настройки почтового клиента операционной системы.
rem NO_USER_INTERFACE Не показывать интерфейс пользователю, только послать письмо!
rem NO_LOGON_DIALOG Не открывать диалог входа logon, но это приведет к ошибке, если такой диалог потребуется.
vMail.sendSimpleMailMessage(vMessage, _
com.sun.star.system.SimpleMailClientFlags.NO_USER_INTERFACE)
End Sub

Собственно понимаю, что проблема во взаимодействии Libro Calc c почтовым клиентом через систему.

Тут нарыл сопутствующие темы там как-то напрямую отправляют без почтовой программы. http://www.oooforum.org/forum/viewtopic.phtml?t=42500
Можно ли так заставить отправить?

Задача состоит в том чтоб отправлять и файл и тело сообщения в фоне по нажатию одной кнопки.