di destinatari, con la possibilità di sfruttare un Body-
message predefinito formattato mediante codice html, senza
l’impiego di un Client di Posta Elettronica
Questo tutorial prende vita a seguito della discussione aperta sul forum italiano di openoffice
( discussione completa viewtopic.php?f=26&t=7748 ).
Target
Traguardo raggiuntoInviare periodicamente a N destinatari, una email con allegato un pdf il cui nome è
strutturato pressapoco in questa maniera “nome_destinatario aaaa.mm.gg.pdf”. Questi
pdf sono suddivisi in sottocartelle, una per ogni destinatario e non sempre tutti i
destinatari dovranno ricevere l’email, ciò accadrà solamente quando è stato preparato
il relativo documento pdf da spedirgli.
La richiesta iniziale si può sintetizzare dicendo “invia email con allegato a quei
destinatari per cui esiste il documento pdf da allegare, per i destinatari per cui non
esiste il pdf non inviare alcun messaggio”.
Per ogni email si vuole impostare lo stesso oggetto e lo stesso body-message.
A questo link trovate un pdf dove viene spiegato tutto (o quasi) nei "minimi" dettagli ( o quasi).Oltre a soddisfare la richiesta, si è giunto ad un file calc che tramite macro consente:
• di inviare anche email senza allegati per consentire comunicazioni per
semplici avvisi
• cercare i pdf da allegare ricercando nelle cartelle i pdf il cui nome termina in
“chiave_ricerca.pdf”, potendo impostare il valore di “chiave_ricerca” nel file
• all’email possono essere allegati anche più di una email se rispettano il
criterio di ricerca
• inviare email con un body-message che sfrutti il codice html per formattare il
messaggio, anche diverso per ciascun destinatario
• inviare email con body-message di default salvato in un cella F2 e in
alternativa in file html esterno denominato “msg_Default.html”
• l’oggetto può essere impostato per ciascun destinatario in maniera distinta
• l’invio viene effettuato senza l’impiego di client di posta elettronica, quindi
non è richiesta alcuna istallazione e configurazione del client
• c’è la possibilità di impostare un tempo di ritardo (nella macro) per evitare
errori di server occupato quando si usano alcuni domini capricciosi.
Il diagramma a blocchi seguente, rappresenta a grandi linee la logica della macro (in realtà più di una) Ciò che caratterizza il file, è la possibilità di inviare email anche nei casi in cui non si disponesse di un client installato sul dispositivo. Questo avviene grazie al servizio "MailServiceProvider" e più in generale a tutto ciò che offre ""com.sun.star.mail":
Codice: Seleziona tutto
serviceProvider = createUNOService("com.sun.star.mail.MailServiceProvider")
service = serviceProvider.Create("com.sun.star.mail.SMTP")
Il sistema operativo su cui gira al 100% è linux, mentre su altri sistemi operativi forse ha bisogno di qualche messa a punto.
Allego anche un file zip contenente cartelle di esempio strutturate in modo che le macro funzionino correttamente, da prendere come modello. Le cartelle contengono anche dei pdf di prova, per testare gli invii di allegati.
Il file zip contiene anche un file html, impiegato come body-message predefinito. E' in html per permettere di inserire un body formattato. Non è da escludere che possa funzionare anche inserire come corpo del messaggio altri tipi di file (immagini, pdf..)
Il codice html è ricavabile tramite Writer in modo semplice e indolore. Dopo aver preparato il vostro messaggio, cliccare su File > anteprima browser web, poi basta visualizzare il file sorgente, copiarlo e incollarlo in un nuovo documento da salvare con estensione html.
Se trovate difetti utilizzandolo sulla vostra macchina e non ne venite a capo, aggiungete un commento qui di seguito. Anche segnalare che tutto funzioni sarebbe gradito. Basta ricordarsi di indicare numero della versione, se si tratta di Libreoffice o di Openoffice e su quale sistema operativo lo eseguite.
p.s.
https://www.openoffice.org/api/docs/com ... eType.html Sarebbe interessante aggiungere esempi di utilizzo di POP3 e IMAP
Editato: Discussioni simili le trovate ai link seguenti viewtopic.php?f=9&t=5226&hilit=+mail#p25610 viewtopic.php?f=9&t=6833#p35671 |
Editato: Come inviare tramite client.Discussioni utili: viewtopic.php?f=26&t=5914&hilit=email#p29778 viewtopic.php?f=9&t=5183&hilit=email#p25244 |