korespondencja seryjna

Użytkowanie edytora dokumentów
magdalena.r
Posty: 4
Rejestracja: pn mar 14, 2011 9:56 pm

korespondencja seryjna

Post autor: magdalena.r »

dobry,

chcę wysłać maila w korespondencji seryjnej z tekstem w mailu i z załącznikiem w formie pdf (utworzonym z właśnie otwartego dokumentu we writerze).
jak to zrobić?

z góry dziękuję za pomoc.
OpenOffice 3.3.0 na Windows XP
Jan_J
Posty: 4576
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: korespondencja seryjna

Post autor: Jan_J »

Wg mojej wyobraźni tylko makrem. Tu są pewne wskazówki http://www.oooforum.org/forum/viewtopic.phtml?t=2732. Zdaję sobie sprawę, że dla tzw. "zwykłego użytkownika" nie na wiele się one przydadzą. W wolnej chwili mogę spróbować wysmażyć przykład dopasowany do zapytania.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
magdalena.r
Posty: 4
Rejestracja: pn mar 14, 2011 9:56 pm

Re: korespondencja seryjna

Post autor: magdalena.r »

to ja czekam na przykład :)
OpenOffice 3.3.0 na Windows XP
Jan_J
Posty: 4576
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: korespondencja seryjna

Post autor: Jan_J »

Takie coś. Pochodzi z http://www.oooforum.org/forum/viewtopic.phtml?t=94257, zostało napisane przez niejakiego zenlord w styczniu 2010 r..
Cytuję dosłownie, z wyjątkiem zdublowanej deklaracji zmiennej oraz odmowy obsługi przypadku, kiedy dokument nie jest zapisany.
Nie biorę żadnej odpowiedzialności za to, do kogo wyśle się wiadomość podczas testowania. W zamyśle makra jest tak, żeby najpierw stworzyć w dokumencie nazwane pole tekstowe i wpisać do niego adresy docelowe. To się oczywiście da zmienić.

Kod: Zaznacz cały

Sub ExportAsPdfAndSendEmail
' ------------------------------
' This macro converts the active document to PDF and then adds the PDF
' to a new emailmessage. The recipientaddress and subject are taken
' from a textfield inside the document
'
' This macro assumes the default email application is set
' in Tools -> Options -> OpenOffice.org -> External Programs.
'
' This macro uses SimpleCommandMail, which might not work in windows
' Try SimpleSystemMail instead
' ------------------------------
   DIM oDoc, MailClient, MailAgent, MailMessage AS Object
   DIM sDocURL, sPDFURL, sTo, sSubject AS String

   REM Get location of the doc
   oDoc = ThisComponent
   If (oDoc.hasLocation()) Then
      sDocURL = oDoc.getURL()
   else
      msgbox("Najpierw zapisz plik")
      exit sub()
   End if

   REM Replace .odt with .pdf
   sPDFURL = Left$(sDocURL,Len(sDocURL)-4) + ".pdf"

   REM Save as PDF
   DIM args(0) AS NEW com.sun.star.beans.PropertyValue
   args(0).Name = "FilterName"
   args(0).Value = "writer_pdf_Export"
   oDoc.storeToURL(sPDFURL,args())

   REM Get the values of the textfields inside the document to form the subject line
   DIM enuTF, aTextField AS Object
   DIM sDosName, sDosNum, sDosUref AS String
   enuTF = oDoc.TextFields.createEnumeration
      Do While enuTF.hasMoreElements
      aTextField = enuTF.nextElement
         if aTextField.supportsService("com.sun.star.text.TextField.Input") then
            if (aTextField.getPropertyValue("Hint") = "DOS_NAAM") Then
               sDosName = aTextField.getPropertyValue("Content")
            End If
            if (aTextField.getPropertyValue("Hint") = "DOS_NUM") Then
               sDosNum = aTextField.getPropertyValue("Content")
            End If
            if (aTextField.getPropertyValue("Hint") = "UREF") Then
               sDosUref = aTextField.getPropertyValue("Content")
            End If
            if (aTextField.getPropertyValue("Hint") = "EMAIL_ADDR") Then
               sTo = aTextField.getPropertyValue("Content")
            End If
         end if
      Loop
   sSubject = sDosName + " - " + sDosUref + " - " + sDosNum

   REM Send the PDF as an attachment
   MailAgent = CreateUnoService("com.sun.star.system.SimpleCommandMail")
   MailClient = MailAgent.querySimpleMailClient()
      MailMessage=MailClient.createSimpleMailMessage()
      MailMessage.setRecipient(sTo)
      MailMessage.setSubject(sSubject)
      MailMessage.setAttachement(array(sPDFURL))
   MailClient.sendSimpleMailMessage(MailMessage, 0)

   REM Save and close the document after opening the email application
   oDoc.store()
   oDoc.close(True)
End Sub
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Arghil
Posty: 112
Rejestracja: sob lip 04, 2009 7:39 pm
Kontakt:

Re: korespondencja seryjna

Post autor: Arghil »

Mnie się wydaje (nie sprawdzałem tego), że przy wersji 3.3 można za pomocą samego OO.org.
Na samym końcu w kreatorze korespondencji seryjnej jest wybór "Wyślij jako" i wybieramy PDFa, dodatkowo za pomocą przycisku właściwości dopisujemy treść emaila.
LibreOffice || Microsoft Office
Jan_J
Posty: 4576
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: korespondencja seryjna

Post autor: Jan_J »

Istotnie. Także w Plik/Wyślij jest opcja PDF.
Wg wyobraźni napisałem asekurancko, i okazało się, że słusznie. W takim razie próbuj sposobów standardowych.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
magdalena.r
Posty: 4
Rejestracja: pn mar 14, 2011 9:56 pm

Re: korespondencja seryjna

Post autor: magdalena.r »

dzięki! takie to proste :)
OpenOffice 3.3.0 na Windows XP
magdalena.r
Posty: 4
Rejestracja: pn mar 14, 2011 9:56 pm

Re: korespondencja seryjna

Post autor: magdalena.r »

i jeszcze mam pytanie gdzie (o ile) są zapisywane wysłane maile? czy należy opróżniać to miejsce by wysyłać kolejne?
OpenOffice 3.3.0 na Windows XP
ODPOWIEDZ