Pour faire suite à ce fil [Python]envoi de courriel, la nouvelle branche 4.0 d'ApacheOpenOffice apporte une nouveauté. Il est possible (enfin) de rédiger entièrement un courriel avec corps de texte et pièce jointe.
Un point sur les services utilisés.
Pour un envoi qui demande une confirmation d'envoi (ouverture de la fenêtre message)
- Seulement pour Aoo4 Windows/GNU-Linux -
Ce nouveau Service autorise l'envoi d'un corps de texte, ce qui n'est pas possible avec l'ancienne méthode.com.sun.star.system.SystemMailProviderCode : Tout sélectionner
Sub NewMethode Dim Messagerie As Object, Client As Object, Courrier As Object Messagerie = CreateUnoService("com.sun.star.system.SystemMailProvider")'Version Windows/Linux Aoo4 Client = Messagerie.queryMailClient() Courrier = Client.createMailMessage() Courrier.Subject = "Test LibO4 et SystemMailProvider"'Sujet Courrier.Recipient = "Leochopoto@wanadoo.fr"'Adresse Courrier.CcRecipient = ""'Copie A Courrier.BccRecipient = ""'Copie Caché Courrier.Attachement = ""'Piece Jointe() Courrier.body = "ceci est un test"'Texte Client.sendMailMessage(Courrier,0)'Flag inopérant End Sub
- pour Aoo3 LibO3 & 4 Windows - com.sun.star.system.SimpleSystemMail
- pourAoo3 Libo3 & 4 GNU-Linux -
Donc avec ces services pas de corps de Textecom.sun.star.system.SimpleCommandMailCode : Tout sélectionner
Sub OldMethode Dim Messagerie As Object, Client As Object, Courrier As Object If GetGUIType = 1 Then Messagerie = CreateUnoService("com.sun.star.system.SimpleSystemMail")'version Windows Aoo3/Libo3 & LibO4 Else Messagerie = CreateUnoService("com.sun.star.system.SimpleCommandMail")'Version Linux Aoo3/LibO3 & LibO4 Client = Messagerie.querySimpleMailClient() Courrier = Client.createSimpleMailMessage() Courrier.Subject = "Test LibO4 et SystemMailProvider"'Sujet Courrier.Recipient = "Leochopoto@wanadoo.fr"'Adresse Courrier.CcRecipient = Array("EtienneDuParc@LesAccacia.fr")'CopieA Courrier.BccRecipient = Array("MaxLaMenace@Tapedur.fr")'CopieA Courrier.Attachement = Array("")'PcsJt() Client.sendSimpleMailMessage(Courrier,0) End if End sub
Pour un envoi qui ne demande pas une confirmation d'envoi (ouverture de la fenêtre message)
c'est beaucoup plus simple ou presque.
Quelque soit la suite utilisée (Aoo ou LibO version 3 et 4) et quelque soit le système d'exploitation (OS). Un seul service
Un fichier test fonctionnel est accessible ici sur le site Apache . Il comporte néanmoins un petit HIC ! Les destinataires en copie et copie cachée ne fonctionne pas. Encore un problème Pythoncom.sun.star.mail.MailServiceProvider
On retrouve l'auteur sur le forum anglais http://www.oooforum.org/forum/viewtopic ... 63#462063) . Allez jusqu'à la fin du fil.
Le code en pièce jointe MailServiceProvider_EnvoiAuto est assez simple à adapter. Il suffit de collecter les bon Arguments pour la fonction SendMail dans le module du même nom.
Pensez à écrire les paramètres de connexion dans la macro et des adresses valide dans la feuille1 pour un test.
Le clic sur le bouton provoque l'ouverture d'une boite de dialogue. La multiple sélection de destinataire est possible et l'envoi de pièces jointes n'est pas limité en taille.
Les deux fichiers on été testé sur différente configuration et semble ne plus comporté de bogues...hum ! j'espère...
Ajout : 6 novembre 2015 |
Le fichier est testé pour les versions AOO 4.1.1 et LibO 4.3.6.2 (officiel) avec Thunderbird par défaut, c'est glop !. Par contre avec LibO 4.4.2.2 (officiel), une erreur sur l'authentification, stop l'envoi, pas glop !
Pour LibO 4.4.2.2, J'ai pas trouvé, mais je vais encore chercher
Cordialement
Luke