[Risolto] Inoltro automatico dati via e-mail

Discussioni sull'applicazione per i fogli di calcolo
pimarco1959
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

[Risolto] Inoltro automatico dati via e-mail

Messaggio da pimarco1959 »

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 306 volte
Ultima modifica di charlie il domenica 2 marzo 2014, 14:19, modificato 2 volte in totale.
Motivazione: Aggiunto segno di spunta verde
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggio da unlucky83 »

Ti suggerisco inoltre le seguenti discussioni:
viewtopic.php?f=9&t=5183 <- E' una discussione recente e interessante
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
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
pimarco1959
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggio da pimarco1959 »

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
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inoltro automatico dati via e-mail

Messaggio da Gaetanopr »

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.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggio da unlucky83 »

Guardando questa pagina
https://wiki.openoffice.org/wiki/Docume ... ress_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
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
pimarco1959
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggio da pimarco1959 »

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 262 volte
errore 02-02-2014.doc
(43.5 KiB) Scaricato 249 volte
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggio da unlucky83 »

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.
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
pimarco1959
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggio da pimarco1959 »

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 274 volte
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inoltro automatico dati via e-mail

Messaggio da Gaetanopr »

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 312 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
pimarco1959
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggio da pimarco1959 »

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
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inoltro automatico dati via e-mail

Messaggio da Gaetanopr »

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
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
pimarco1959
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggio da pimarco1959 »

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?
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inoltro automatico dati via e-mail

Messaggio da Gaetanopr »

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
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
pimarco1959
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggio da pimarco1959 »

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
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inoltro automatico dati via e-mail

Messaggio da Gaetanopr »

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 276 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
pimarco1959
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggio da pimarco1959 »

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
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inoltro automatico dati via e-mail

Messaggio da Gaetanopr »

Oltre ai tuoi dati devi inserire i dati del server del tuo provider.
Dovresti dirmi quali dati hai inserito, password a parte naturalmente.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
pimarco1959
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggio da pimarco1959 »

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
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggio da unlucky83 »

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, 14:50, modificato 1 volta in totale.
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inoltro automatico dati via e-mail

Messaggio da Gaetanopr »

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

If Msgbox ("Vuoi procedere con l'invio ? ", 33, "Invio Email") = 2 Then Exit Sub 
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggio da unlucky83 »

 Editato: Questo messaggio confonde solo le idee. Guardare il messaggio seguente di Gaetanopr 
Ultima modifica di unlucky83 il mercoledì 5 febbraio 2014, 14:56, modificato 1 volta in totale.
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inoltro automatico dati via e-mail

Messaggio da Gaetanopr »

Io invece avevo pensato a fare un ciclo da E1 a E3 modificando soltanto la sub Testmail

Codice: Seleziona tutto

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 
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggio da unlucky83 »

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.
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 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: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggio da unlucky83 »

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

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

...
message.addCcRecipient(emailCC)
service.sendMailMessage(message)
... 
Ti lascio l'onere di ricapitolare tutto, se ci provo io scommetto che faccio confusione :mrgreen:
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inoltro automatico dati via e-mail

Messaggio da Gaetanopr »

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
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inoltro automatico dati via e-mail

Messaggio da Gaetanopr »

Credo che stavolta sia l'ultima modifica

Codice: Seleziona tutto

'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

 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
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
pimarco1959
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggio da pimarco1959 »

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
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Inoltro automatico dati via e-mail

Messaggio da unlucky83 »

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 :)
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inoltro automatico dati via e-mail

Messaggio da Gaetanopr »

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
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
pimarco1959
Messaggi: 61
Iscritto il: mercoledì 2 ottobre 2013, 18:52

Re: Inoltro automatico dati via e-mail

Messaggio da pimarco1959 »

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
Rispondi