Pannello di Controllo Moderatore ]

[Risolto] Inoltro automatico dati via e-mail

Discussioni sull'applicazione per i fogli di calcolo

[Risolto] Inoltro automatico dati via e-mail

Messaggioda pimarco1959 » venerdì 31 gennaio 2014, 18:29

Ho un file in CAL con diversi fogli + un foglio riepilogativo. Dei singoli fogli ho necessità di estrapolare dei dati (racchiusi dalla colonna “A” a colonna “K”) ed inviarli via e-mail a diversi indirizzi. Quindi mi serve una macro che faccia tutto. Allego una tabella per effettuare degli esempi e nel foglio 13 riporto un fac simile di come vorrei inviare l'e-mail e ulteriori dettagli.
Nel foglio “Cliente Avellino” riporto la macro da perfezionare da un errore nella compilazione. Premetto che ho come gestore della posta elettronica “OUTLOOK EXPRESS”.
Allego anche un file dell'errore della macro.
Allegati
Immagine.jpg
FOGLIO GENERALE TABELLE 30-01-2014.ods
(38.27 KiB) Scaricato 161 volte
Ultima modifica di charlie il domenica 2 marzo 2014, 15:19, modificato 2 volte in totale.
Motivazione: Aggiunto segno di spunta verde
pimarco1959
 
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggioda unlucky83 » venerdì 31 gennaio 2014, 19:46

Ti suggerisco inoltre le seguenti discussioni:
https://forum.openoffice.org/it/forum/viewtopic.php?f=9&t=5183 <- E' una discussione recente e interessante
https://forum.openoffice.org/it/forum/viewtopic.php?t=4305#p20616 <-Avevo delle necessità simili alle tue e in questa discussione ho trovato le mie risposte
http://www.oooforum.org/forum/viewtopic.phtml?p=122360 <-Forum straniero in cui ho trovato le macro che hanno risolto il mio problema
LibO5.1.6.2-Ubuntu 16.04.2 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
unlucky83
Volontario
Volontario
 
Messaggi: 2241
Iscritto il: lunedì 7 gennaio 2013, 2:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggioda pimarco1959 » venerdì 31 gennaio 2014, 22:15

Buona sera Gaetanopr
ho allegato il file con la macro da te creata per l'inoltro via e-mail mi dà un errore come da immagine allegata.
ho modificato il percorso della cartella \INVII\ lo messa direttamente su "C". come programma di posta elettronica ho Outlook Express
OpenOffice 3.3 e 4
pimarco1959
 
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggioda Gaetanopr » domenica 2 febbraio 2014, 12:21

pimarco1959 ha scritto:Buona sera Gaetanopr
ho allegato il file con la macro da te creata per l'inoltro via e-mail mi dà un errore come da immagine allegata.
ho modificato il percorso della cartella \INVII\ lo messa direttamente su "C". come programma di posta elettronica ho Outlook Express


Non so che dirti, io l'ho provata e mi funziona, naturalmente usando outlook, potresti provare le macro di uno dei link che ti ha proposto unlucky83 oppure prova registrando una macro a vedere cosa succede.
Openoffice 4.1 su windows xp
Gaetanopr
Volontario
Volontario
 
Messaggi: 2903
Iscritto il: mercoledì 21 novembre 2012, 21:07

Re: Inoltro automatico dati via e-mail

Messaggioda unlucky83 » domenica 2 febbraio 2014, 13:10

Guardando questa pagina
https://wiki.openoffice.org/wiki/Documentation/DevGuide/Database/The_SDBC_Driver_for_address_books
credo proprio che il nome corretto di Outlook Express sia outlookexp
Forse questa osservazione è banale, ma è ovvio che trattandosi di applicazioni diverse (outlook non è outlook express), debbano avere nomi differenti.
Forse il nome che ti ho suggerito è quello corretto, ma se non lo fosse o continui a cercarlo sul web o cambi il client, per esempio inizi ad usare Outlook
LibO5.1.6.2-Ubuntu 16.04.2 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
unlucky83
Volontario
Volontario
 
Messaggi: 2241
Iscritto il: lunedì 7 gennaio 2013, 2:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggioda pimarco1959 » domenica 2 febbraio 2014, 21:10

Ho variato il client inserito nella macro da "Outlook" a "Outlookexp" (come sopra detto io ho Outlook Express) quando avvio la macro mi evidenzia questa stringa <oMail = AppOutlookexp.CreateItem(0)> e mi da questo errore <Errore di runtime BASIC. Variabile dell'oggetto non impostato> (cfr file allegato) :crazy:
Chi mi può aiutare?
allego la tabella di prova + copia dell'errore
Allegati
FOGLIO GENERALE TABELLE 02-02-2014.ods
(43.01 KiB) Scaricato 130 volte
errore 02-02-2014.doc
(43.5 KiB) Scaricato 107 volte
pimarco1959
 
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggioda unlucky83 » domenica 2 febbraio 2014, 22:30

Credo che il nome da me suggerito non vada bene...in rete non si trova nulla...incredibile!
Eppure outlook express per anni è stato un programma preistallato di windows.
Dovresti controllare il task manager mentre outlook express è in esecuzione...così sappiamo con quale nome windows lo gestisce.
LibO5.1.6.2-Ubuntu 16.04.2 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
unlucky83
Volontario
Volontario
 
Messaggi: 2241
Iscritto il: lunedì 7 gennaio 2013, 2:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggioda pimarco1959 » lunedì 3 febbraio 2014, 10:09

Nel foglio “Cliente Avellino”ho creato una formula che mi permette di avviare Outlook Express per inoltrare le e-mail. Chi mi può dare un aiuto a collegare al testo anche la tabella che va dal rigo 11 della colonna “A” sino a colonna “K” va da se solo le celle con i dati e non tutto il foglio anche senza dati. Potrebbe andare bene anche trasformare la tabella in PDF e inviarla come allegato alla e-mail di cui sopra
allego file
Allegati
TABELLA + E-MAIL DA CAL 3-02-2014.ods
(44.28 KiB) Scaricato 135 volte
pimarco1959
 
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggioda Gaetanopr » lunedì 3 febbraio 2014, 10:53

Ciao, prova il file che ti allego, tramite il pulsante inserito "dovrebbe" aprirsi la maschera per il pdf, scegli selezione e fai invio
Allegati
TABELLA %2B E-MAIL DA CAL 3-02-2014.ods
(38.45 KiB) Scaricato 158 volte
Openoffice 4.1 su windows xp
Gaetanopr
Volontario
Volontario
 
Messaggi: 2903
Iscritto il: mercoledì 21 novembre 2012, 21:07

Re: Inoltro automatico dati via e-mail

Messaggioda pimarco1959 » lunedì 3 febbraio 2014, 12:20

ciao Gaetano
Puoi provare ad inserire la tabella nella e-mail senza fare il PDF? in questo modo dovrei risolvere tutti i problemi in quanto se clicco sul tasto giallo invio l'e-mail (quello da me fatto) parte tranquillamente con Outlook express. Quindi se si può collegare la tabella da "A" a "K" (eventualmente con il comandao di farlo rientrare tutte le colonne in un foglio) andra' bene così
Grazie
pimarco1959
 
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggioda Gaetanopr » lunedì 3 febbraio 2014, 14:36

Ciao, hai provato il file che ti ho allegato, io l'ho provato adesso su un pc dove c'è configurato outlook express e funziona bene.

pimarco1959 ha scritto:ciao Gaetano
Puoi provare ad inserire la tabella nella e-mail senza fare il PDF? in questo modo dovrei risolvere tutti i problemi in quanto se clicco sul tasto giallo invio l'e-mail (quello da me fatto) parte tranquillamente con Outlook express. Quindi se si può collegare la tabella da "A" a "K" (eventualmente con il comandao di farlo rientrare tutte le colonne in un foglio) andra' bene così
Grazie

Senza fare il pdf intendi come corpo del testo? oppure inviare direttamente il file ods?
nel secondo caso credo che non puoi usare il sistema da te adottato(pdf o ods è sempre un allegato)
nel primo caso dovresti inserire tutti i dati in una cella......magari concatenandoli tramite una macro ma con tanti dati avresti sicuramente problemi per non parlare dell'aspetto estetico e anche funzionale
Openoffice 4.1 su windows xp
Gaetanopr
Volontario
Volontario
 
Messaggi: 2903
Iscritto il: mercoledì 21 novembre 2012, 21:07

Re: Inoltro automatico dati via e-mail

Messaggioda pimarco1959 » lunedì 3 febbraio 2014, 18:43

ciao Gaetano
Ho avviato la macro è ho notato quanto segue:
se sulla cella E1 è inserito l'indirizzo e-mail mi dà l'errore (non fa partire alcuna e-mail)
se non inserisco nulla sulla E1 si apre outlook express e riporta l'oggetto "informativa" mi allega il PDF ma non riporta il testo inserito nel riquadro "E4"
a te è andato tutto bene?
pimarco1959
 
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggioda Gaetanopr » lunedì 3 febbraio 2014, 20:01

Premendo il pulsante mi figura la maschera per le opzioni Pdf, scelgo selezione faccio Ok e mi figura la maschera Outlook Express per l'invio dell'email, quindi "INVIA" e il gioco è fatto
Invece usando outlook con la precedente macro, l'invio è completamente automatico, premendo il pulsante non devi dare ulteriori Ok.
allego l'immagine
Allegati
outlook express.PNG
Openoffice 4.1 su windows xp
Gaetanopr
Volontario
Volontario
 
Messaggi: 2903
Iscritto il: mercoledì 21 novembre 2012, 21:07

Re: Inoltro automatico dati via e-mail

Messaggioda pimarco1959 » lunedì 3 febbraio 2014, 20:44

l'immagine è la stessa, non so perchè ma quando do invio il messaggio non parte e mi dà l'errore in Outlook Express.
Tu non hai verificato se il teso di colonna "E4" viene inserito nella e-mail. Fai una prova non inserire l'indirizzo e-mail e lancia la macro in questo modo puoi verificare se ti riporta il testo.
Se non riesco mi accontento di scrivere manualmente gli indirizzi e-mail ma il grosso di selezionare trasformare in pdf+allegare file+scrivere testo avviene in automatico.
Se riscrivi una nuova macro la invii?
Grazie
pimarco1959
 
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggioda Gaetanopr » martedì 4 febbraio 2014, 14:06

Hai ragione in merito al corpo dell'email, come puoi vedere dall'immagine non l'ho avevo inserito e non mi ero accorto della mancanza(mi ero concentrato sul funzionamento dell'allegato), oltretutto andando a leggere il link di unlucky83 anche lui fà presente questo.
Potresti inserire sia il destinatario che il corpo dell'email facendo copia incolla, considerando che si tratta di copiare solamente il contenuto di due celle.
Altrimenti sempre nel link suggerito da unlucky83 è presente una macro a fondo pagina che funziona perfettamente, tutto viene impostato da macro, però non puoi inserire il CC e il CCN.
Ti allego il file, devi sempre lanciare la macro "Email_PDF" oppure in maniera indipendente la macro "Testmail" che si trova nel Module1.
Ricordati di impostare i parametri con i tuoi dati.
Allegati
TABELLA E-MAIL DA CAL 3-02-2014.ods
(40.04 KiB) Scaricato 160 volte
Openoffice 4.1 su windows xp
Gaetanopr
Volontario
Volontario
 
Messaggi: 2903
Iscritto il: mercoledì 21 novembre 2012, 21:07

Re: Inoltro automatico dati via e-mail

Messaggioda pimarco1959 » martedì 4 febbraio 2014, 17:37

forse c'è un errore nella macro atteso che pur avendo inserito i miei dati le macro non funzionano c'è un errore <ERRORE DI SINTASSI BASIC ATTESO:=> che non riesco a togliere
pimarco1959
 
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggioda Gaetanopr » martedì 4 febbraio 2014, 20:14

Oltre ai tuoi dati devi inserire i dati del server del tuo provider.
Dovresti dirmi quali dati hai inserito, password a parte naturalmente.
Openoffice 4.1 su windows xp
Gaetanopr
Volontario
Volontario
 
Messaggi: 2903
Iscritto il: mercoledì 21 novembre 2012, 21:07

Re: Inoltro automatico dati via e-mail

Messaggioda pimarco1959 » mercoledì 5 febbraio 2014, 8:04

Ciao Gaetano,
Ho riprovato e forse va bene ero io che commettevo un errore nel variare i dati. Solo due cose, è possibile aggiungere il “CC”? servirebbe per portare a conoscenza i rappresentanti o altri soggetti interessati. In ultimo, penso che ante tu ti sei accordo di questa cosa, basta pigiare anche in maniera involontaria il pulsante e parte la e-mail. E’ possibile inserire una stringa che blocchi l’invio accidentale?
OpenOffice 3.3 e 4
pimarco1959
 
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggioda unlucky83 » mercoledì 5 febbraio 2014, 13:49

Se si usa un array contenente tutte le email a cui inviare lo stesso messaggio, si ha l'invio multiplo del messaggio, ma ciascun destinatario non vede le email degli altri destinatari. Quindi se quello che cerchi è proprio il CC, con le seguenti modifiche non risolvi.
 Editato: Guardare suggerimento di Gaetano 

Provo a documentarmi un pò su come modificare la macro per avere il CC (ci dovrebbe essere un modo, perchè sarebbe strano che non ci abbiano pensato)
Ultima modifica di unlucky83 il mercoledì 5 febbraio 2014, 15:50, modificato 1 volta in totale.
LibO5.1.6.2-Ubuntu 16.04.2 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
unlucky83
Volontario
Volontario
 
Messaggi: 2241
Iscritto il: lunedì 7 gennaio 2013, 2:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggioda Gaetanopr » mercoledì 5 febbraio 2014, 14:20

Ciao anch'io avevo pensato ad un invio multiplo, avevo dato un'occhita al servizio "com.sun.star.mail.MailMessage.createWithAttachment"
http://www.openoffice.org/api/docs/comm ... ssage.html
tra i parametri disponibili manca CCN e CC, però l'interfaccia XmailMessagge lo prevede
http://www.openoffice.org/api/docs/comm ... ssage.html

per quanto riguarda l'invio accidentale aggiungi questa riga ad inizio macro
Codice: Seleziona tutto   Espandi visualeStringi visuale
If Msgbox ("Vuoi procedere con l'invio ? ", 33, "Invio Email") = 2 Then Exit Sub
Openoffice 4.1 su windows xp
Gaetanopr
Volontario
Volontario
 
Messaggi: 2903
Iscritto il: mercoledì 21 novembre 2012, 21:07

Re: Inoltro automatico dati via e-mail

Messaggioda unlucky83 » mercoledì 5 febbraio 2014, 14:22

 Editato: Questo messaggio confonde solo le idee. Guardare il messaggio seguente di Gaetanopr 
Ultima modifica di unlucky83 il mercoledì 5 febbraio 2014, 15:56, modificato 1 volta in totale.
LibO5.1.6.2-Ubuntu 16.04.2 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
unlucky83
Volontario
Volontario
 
Messaggi: 2241
Iscritto il: lunedì 7 gennaio 2013, 2:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggioda Gaetanopr » mercoledì 5 febbraio 2014, 14:46

Io invece avevo pensato a fare un ciclo da E1 a E3 modificando soltanto la sub Testmail
Codice: Seleziona tutto   Espandi visualeStringi visuale
sub Testmail
Dim oObj As Object
Dim oMail As Object, Sh As Object
If Msgbox ("Vuoi procedere con l'invio ? ", 33, "Invio Email") = 2 Then Exit Sub
Doc = ThisComponent
Controller = Doc.CurrentController
Sh = Controller.ActiveSheet
Body = Sh.getCellRangeByName("E4").String

   For i = 0 To 2
     If Sh.getCellByPosition(4, i).String <> "" then
        testRecipient = Sh.getCellByPosition(4, i).String
        Trovato = True
        smtpPassword = "XXXXXXX"   ' INDICARE LA TUA PASSWORD
        attachmentType = "application/pdf"
        sendMail(testRecipient, "Informativa", Body, _
        ConvertToUrl("C:\Invii\" & Sh.Name & ".pdf")) '
      ' sendMail(testRecipient, "No attachment", "Test the second") per inviare senza allegato
    End if
   Next i   

    If Trovato = False Then
       MsgBox "Manca Destinatario"
       Exit Sub
    End if   
end sub
Openoffice 4.1 su windows xp
Gaetanopr
Volontario
Volontario
 
Messaggi: 2903
Iscritto il: mercoledì 21 novembre 2012, 21:07

Re: Inoltro automatico dati via e-mail

Messaggioda unlucky83 » mercoledì 5 febbraio 2014, 15:08

Hai ragione, è sufficiente seguire le tue indicazioni e ignorare le mie
Hehe..è che a suo tempo, quando avevo trovato queste macro, avevo modificato la funzione SendMail in modo tale che fosse più flessibile, ovvero che accettasse sia un solo indirizzo sia un array e mi ero scordato di aver fatto ciò.
Controllando superficialmente il mio file in cui uso queste macro, ho suggerito la prima serie di modifiche, ma osservando attentamente c'era bisogno di modificare la macro SendMail.
LibO5.1.6.2-Ubuntu 16.04.2 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
unlucky83
Volontario
Volontario
 
Messaggi: 2241
Iscritto il: lunedì 7 gennaio 2013, 2:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggioda unlucky83 » mercoledì 5 febbraio 2014, 16:21

Gaetanopr ha scritto:Ciao anch'io avevo pensato ad un invio multiplo, avevo dato un'occhita al servizio "com.sun.star.mail.MailMessage.createWithAttachment"
http://www.openoffice.org/api/docs/comm ... ssage.html
tra i parametri disponibili manca CCN e CC, però l'interfaccia XmailMessagge lo prevede
http://www.openoffice.org/api/docs/comm ... ssage.html


Gaetanopr, ho provato a inserire questo comando:
Codice: Seleziona tutto   Espandi visualeStringi visuale
msgbox messagge.Dbg_Methods

e questo è il risultato
SbxEMPTY queryInterface ( SbxOBJECT ) ;
SbxARRAY getTypes ( void ) ;
SbxARRAY getImplementationId ( void ) ;
SbxVOID addRecipient ( SbxSTRING ) ;
SbxVOID addCcRecipient ( SbxSTRING ) ;
SbxVOID addBccRecipient ( SbxSTRING ) ;

SbxARRAY getRecipients ( void ) ;
SbxARRAY getCcRecipients ( void ) ;
SbxARRAY getBccRecipients ( void ) ;
SbxVOID addAttachment ( SbxOBJECT ) ;
SbxARRAY getAttachments ( void )

Ho provato a mettere message.addCcRecipient(email desiderata) prima dell'invio del messaggio e il risultato è positivo...Funziona! :super:
Codice: Seleziona tutto   Espandi visualeStringi visuale
...
message.addCcRecipient(emailCC)
service.sendMailMessage(message)
...

Ti lascio l'onere di ricapitolare tutto, se ci provo io scommetto che faccio confusione :mrgreen:
LibO5.1.6.2-Ubuntu 16.04.2 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
unlucky83
Volontario
Volontario
 
Messaggi: 2241
Iscritto il: lunedì 7 gennaio 2013, 2:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggioda Gaetanopr » mercoledì 5 febbraio 2014, 17:01

Ottimo unlucky83, quindi possiamo togliere il ciclo e gestire il tutto con un paio di if then
esempio: if emailCC <>"" Then message.addCcRecipient(emailCC)
Stessa cosa per BCC
Più tardi modifico
Ciao
Openoffice 4.1 su windows xp
Gaetanopr
Volontario
Volontario
 
Messaggi: 2903
Iscritto il: mercoledì 21 novembre 2012, 21:07

Re: Inoltro automatico dati via e-mail

Messaggioda Gaetanopr » mercoledì 5 febbraio 2014, 20:29

Credo che stavolta sia l'ultima modifica
Codice: Seleziona tutto   Espandi visualeStringi visuale
'Option Explicit

' ======= just for testing =======
Private emailCC As String
Private emailBCC As String
sub Testmail
If Msgbox ("Vuoi procedere con l'invio ? ", 33, "Invio Email") = 2 Then Exit Sub
Dim oObj As Object
Dim oMail As Object, Sh As Object
Doc = ThisComponent
Controller = Doc.CurrentController
Sh = Controller.ActiveSheet
testRecipient = Sh.getCellRangeByName("E1").String
emailCC = Sh.getCellRangeByName("E2").String
emailBCC = Sh.getCellRangeByName("E3").String
Body = Sh.getCellRangeByName("E4").String

     If testRecipient Like "*@*.*" Then 
       
        smtpPassword = "XXXXXXX"   ' INDICARE LA TUA PASSWORD
        attachmentType = "application/pdf"
        sendMail(testRecipient, "Informativa", Body, _
        ConvertToUrl("C:\Invii\" & Sh.Name & ".pdf")) '
      ' sendMail(testRecipient, "No attachment", "Test the second") per inviare senza allegato
     Else
       MsgBox "Destinatario errato o mancante"
     End if 
end sub

' ======== your details go here ========
const myAddress = "XXXXXX@libero.it" 'Tuo indirizzo email
const smtpServer = "smtp.libero.it"   'inserire il smtpServer del tuo provider
const smtpPort = 25
const smtpSecure = false 'true       ' true se si gestisce
const smtpUser = "XXXXXXX@libero.it" 'Tuo indirizzo email

const attachmentMaxSize = 100000

' these variables are needed by listener functions, to which they cannot be passed as arguments
private smtpPassword as String
private messageBody as String
private attachmentContents as Object
private attachmentType as String

sub sendMail(recipient, subject, body, Optional attachmentUrl)
dim bodyObject as Object, attachment as Object, message as Object, _
   serviceProvider as Object, service as Object, server as Object, mailUser as Object


   bodyObject = CreateUNOListener("body_", "com.sun.star.datatransfer.XTransferable")
   messageBody = body

   if not IsMissing(attachmentUrl) then _
      if attachmentFromUrl(attachment, attachmentUrl) <> "OK" then : exit sub
   end if
   
   message = com.sun.star.mail.MailMessage.createWithAttachment(_
      recipient, myAddress, subject, bodyObject, attachment)

   serviceProvider = CreateUNOService("com.sun.star.mail.MailServiceProvider")
   service = serviceProvider.Create("com.sun.star.mail.SMTP")
   server = CreateUNOListener("smtp_", "com.sun.star.uno.XCurrentContext")
   mailUser = CreateUNOListener("user_", "com.sun.star.mail.XAuthenticator")
   
   If emailCC Like "*@*.*" Then message.addCcRecipient(emailCC)
   If emailBCC Like "*@*.*" Then message.addBccRecipient(emailBCC)
   
   service.Connect(server, mailUser)
   service.SendMailMessage(message)
   service.Disconnect()

end sub

' ======= extract attachment data from file ========
function attachmentFromUrl(attachment, url)
dim chunks() as String, fileName as String, fileService as Object, _
   attachmentFile as Object, fileContents() as Byte
   
   chunks() = Split(url, "/")
   fileName = ConvertFromUrl(chunks(UBound(chunks()))

   fileService = createUnoService("com.sun.star.ucb.SimpleFileAccess")
   attachmentFile = fileService.OpenFileRead(url)
   attachmentFile.ReadBytes(fileContents(), attachmentMaxSize + 1)
   attachmentFile.CloseInput

   if (UBound(fileContents()) + 1 > attachmentMaxSize) then
      msgBox "Attachment file '" & fileName & "' is too big"
      exit function
   elseIf (UBound(fileContents()) < 0) then
      msgBox "Attachment file '" & fileName & "' is empty"
      exit function
   end if

   attachmentContents = CreateUnoValue( "[]byte", fileContents())
   attachment = CreateObject("com.sun.star.mail.MailAttachment")
   attachment.Data = CreateUNOListener("attachment_", "com.sun.star.datatransfer.XTransferable")
   attachment.ReadableName = fileName

   attachmentFromUrl = "OK"
end function

' ===== server properties =====
function smtp_GetValueByName(what)
   select case what
      case "ServerName"
         smtp_GetValueByName = smtpServer
      case "Port"
         smtp_GetValueByName = smtpPort
      case "ConnectionType"
         if smtpSecure then
            smtp_GetValueByName = "SSL"
         else
            smtp_GetValueByName = "Insecure"
         endif
   end select
end function

' ====== email user methods =======
function user_GetUserName()
   user_GetUserName = smtpUser
end function

function user_GetPassword()
   user_GetPassword = smtpPassword
end function


' ====== message body object methods ======
function body_GetTransferDataFlavors()
   dim flavor as new com.sun.star.datatransfer.DataFlavor
   flavor.MimeType = "text/plain;charset=utf-16"
   flavor.HumanPresentableName = "Unicode text"
   body_getTransferDataFlavors = Array(flavor)
end function

function body_GetTransferData(flavor) as any
   if (flavor.MimeType = "text/plain;charset=utf-16") then
      body_GetTransferData = messageBody
   end if
end function

function body_isDataFlavorSupported(x as Object)
   body_isDataFlavorSupported = (x.MimeType = "text/plain;charset=utf-16")
end function

' ====== attachment object methods ======
function attachment_GetTransferDataFlavors()
   dim flavor as new com.sun.star.datatransfer.DataFlavor
   flavor.MimeType = attachmentType
   flavor.HumanPresentableName = attachmentType
   attachment_getTransferDataFlavors = Array(flavor)
end function

function attachment_GetTransferData(flavor) as any
   if (flavor.MimeType = attachmentType) then
      attachment_GetTransferData = attachmentContents
   end if
end function

function attachment_isDataFlavorSupported(x as Object)
   attachment_isDataFlavorSupported = (x.MimeType = attachmentType)
end function


la seguente riga
Codice: Seleziona tutto   Espandi visualeStringi visuale
If Msgbox ("Vuoi procedere con l'invio ? ", 33, "Invio Email") = 2 Then Exit Sub

puoi toglierla da questa macro e inserirla all'inizio della "Email_PDF", in quanto se pigi involontariamente il pulsante prima avviene il salvataggio in pdf del foglio corrente e poi si riceve l'avviso se inviare o meno l'email.

Ciao
Openoffice 4.1 su windows xp
Gaetanopr
Volontario
Volontario
 
Messaggi: 2903
Iscritto il: mercoledì 21 novembre 2012, 21:07

Re: Inoltro automatico dati via e-mail

Messaggioda pimarco1959 » giovedì 6 febbraio 2014, 11:59

Che squadra Gaetano e Unlucky83!! :D
Ho fatto una prova di inoltro e penso che va bene. Solo una cosa devo vedere se inserendo nella cella “E1” e “E2” e “E3” diversi indirizzi e-mail viene tutto inoltrato regolarmente. Penso, datemi conferma, che non ci dovrebbero essere problemi. A prova verificata vi faccio sapere
pimarco1959
 
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggioda unlucky83 » giovedì 6 febbraio 2014, 12:53

Prova mettendo in E1,E2 ed E3 il tuo indirizzo email (se ne hai due, userei la seconda per E3), va bene anche lo stesso che usi per inviare il messaggio. Quando controlli i messaggi di posta presta caso alle voci "a:" "cc:"
Io ho fatto questo tipo di test e il cc: mi risulta compilato. Non ho testato invece il BCC, ma non c'è motivo per cui non funzioni :)
LibO5.1.6.2-Ubuntu 16.04.2 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
unlucky83
Volontario
Volontario
 
Messaggi: 2241
Iscritto il: lunedì 7 gennaio 2013, 2:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggioda Gaetanopr » giovedì 6 febbraio 2014, 13:00

Ciao Unlucky credo che lui intenda dire più destinatari, più cc e più bcc, quindi si dovrà sfruttare il metodo "addRecipient " per inserire altri destinatari
quindi più indirizzi in ogni cella, sempre se ho capito bene
può darsi che separandoli con ";" faccia tutto da solo
Openoffice 4.1 su windows xp
Gaetanopr
Volontario
Volontario
 
Messaggi: 2903
Iscritto il: mercoledì 21 novembre 2012, 21:07

Re: Inoltro automatico dati via e-mail

Messaggioda pimarco1959 » giovedì 6 febbraio 2014, 13:58

Esatto Gaetano. Se la macro va bene e quindi ti dà la possibilità di inserire nella cella "E1" tre indirizzi e-mail, nella cella "E2" due indirizzi e mail e così via nella cella "E3" ed inviali tranquillamente
pimarco1959
 
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Prossimo

Torna a Calc

Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti