Dude a écrit :C'est là toute la subtilité de passer un tableau.
Pour qu'il soit intégré dans le corps du message, il faut le convertir en HTML afin qu'il soit visible comme tel.
Petite subtilité possible en passant par le presse-papier.
Le copier / coller permet depuis une sélection dans une feuille permet de générer un contenu HTML de type tableau.
Dès lors, le code suivant fonctionne :
Code : Tout sélectionner
Sub EnvoiCourriel
oMSP = CreateUNOService("com.sun.star.mail.MailServiceProvider")
oDisp = CreateUNOService("com.sun.star.frame.DispatchHelper")
oDude = CreateUNOService("com.sun.star.datatransfer.clipboard.SystemClipboard")
oCont = CreateUNOListener("Context_","com.sun.star.uno.XCurrentContext")
oAuth = CreateUNOListener("Authent_","com.sun.star.mail.XAuthenticator")
'Utilisation du presse-purée pour le corps du message
'avec copie de la plage concernée
oDoc = thisComponent
oCC = oDoc.CurrentController
oCadre = oCC.Frame
oFeuille = oDoc.Sheets.getByIndex(1) '2e feuille
oPlage = oFeuille.getCellRangeByPosition(0,0,3,3) 'A1 à D4
oCC.Select(oPlage)
oDisp.executeDispatch(oCadre, ".uno:Copy", "", 0, Array())
sCorps = oDude.getContents()
oPrepa = com.sun.star.mail.MailMessage
'Paramètres : destinataire, expéditeur, sujet, corps
oMel = oPrepa.create( "quelqu1@quelque-part.fr", _
"dude@openoffice.org", _
"Eh Dude, voici un tableau !", sCorps )
oSMTP = oMSP.Create("com.sun.star.mail.SMTP")
oSMTP.Connect(oCont, oAuth)
if oSMTP.isConnected then oSMTP.SendMailMessage(oMel)
oSMTP.Disconnect()
End Sub
Function Context_GetValueByName(oEve) as Any
Select Case oEve
Case "ServerName"
Context_GetValueByName = "smtp.quelque-part.fr"
Case "Port"
Context_GetValueByName = 25
Case "ConnectionType"
'SSL, Insecure ou STARTTSL
Context_GetValueByName = "Insecure"
End Select
End Function
Function Authent_GetUserName() as Any
Authent_GetUserName = "" ' "identifiant"
End Function
Function Authent_GetPassword() as Any
Authent_GetPassword = "" ' "motDePasse"
End Function
Il n'en reste qu'il faut quand même que le destinataire accepte les courriels dans ce format.