Bon dia!
Alguns recordareu l’article que ja fa temps vaig fer sobre enviar correus amb Access
Avui afegeixo una opció per poder enviar correus, en lloc de en text pla, en HTML, amb la quantitat d’opcions que això dona, no cal que m’esplaií més.
Abans utilitzavem la funció SendMessages
Function SendMessages(Dir As String, CC As String, Asunto As String, TextoMsg As String, Optional AttachmentPath, Optional AttachmentPath2) Dim OutApp As Outlook.Application Dim OutMail As Outlook.MailItem Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(olMailItem) With OutMail .To = Dir .CC = CC .BCC = "" .Subject = Asunto .Body = TextoMsg 'Se pueden adjuntar ficheros If Not IsMissing(AttachmentPath) Then .Attachments.Add (AttachmentPath) End If 'Es poden adjuntar 2 adjunts If Not IsMissing(AttachmentPath2) Then .Attachments.Add (AttachmentPath2) End If .Send '.Display 'tambien se puede usar .Send y lo situa en la bandeja de salida End With Set OutMail = Nothing Set OutApp = Nothing End Function
Ara en lloc d’aquesta funció posem la nova amb HTML
CorreuHTML
Function CorreuHTML(Dir As String, CC As String, Asunto As String, TextoMsg As String, Optional AttachmentPath, Optional AttachmentPath2) Dim OutApp As Outlook.Application Dim OutMail As Outlook.MailItem Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(olMailItem) With OutMail .To = Dir .CC = CC .BCC = "" .Subject = Asunto .Body = .HTMLBody .HTMLBody = TextoMsg .BodyFormat = olFormatHTML 'Se pueden adjuntar ficheros If Not IsMissing(AttachmentPath) Then .Attachments.Add (AttachmentPath) End If 'Es poden adjuntar 2 adjunts If Not IsMissing(AttachmentPath2) Then .Attachments.Add (AttachmentPath2) End If .Send '.Display 'tambien se puede usar .Send y lo situa en la bandeja de salida End With Set OutMail = Nothing Set OutApp = Nothing End Function
S’ha de netejar una mica, però per que s’entengui d’on ve aquest codi, per això deixo .body = .HTMLbody
Ara la funció ha canviat lleugerament,
CorreuHTML Correu, "", "Assumpte", "<html><body>hola</body></html>"
Però això és poc pràctic, per tant en lloc de text directament en codi VB el que farem es un textbox on enganxarem tot el codi en el formulari
Ara obrim el nostre editor HTML preferit, fem el nostre correu tot macu i fem copy paste del codi
Ara ja tindrem de la mateixa forma que abans, el nostre correu personalitzat a cada usuari, però amb HTML.
Anex:
Normalment si voleu fer coses «decents», en l’edició del HTML usareu CSS, però realitzant les primeres proves m’he donat conte que depenent del nostre visor, Outlook, Gmail, Hotmail, etc, la forma és diferent.
La primera prova l’he fet amb CSS dins del HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> <!-- .Color { color: #393; } .ColorGris { color: #999; } --> </style> </head> <body> <p class="Color">Abans d’imprimir aquest correu, pensi si realment és necessari.El medi ambient es cosa de tots.</p> <h6 class="ColorGris">Avís Legal:<br /> La informació continguda en aquest missatge de correu electrònic és confidencial i està destinada únicament a la persona a la qual ha estat enviada, pot contenir informació privada i confidencial. Si vostè no és el destinatari al que ha estat remesa, no pot copiar-la, distribuir-la, ni emprendre amb ella cap tipus d’acció. Si creu que ho ha rebut per error, per favor notifiqui-ho al remitent, gràcies.</h6> <h6 class="ColorGris">Les seves dades estan incloses a la nostre base de dades, al càrrec de ****, en compliment de la normativa en la LOPD 15/1999 de 13 de Desembre, inscrit a l’Agència Espanyola de Protecció de Dades amb codi d’inscripció . </body> </html>
D’aquesta forma veiem en Outlook el correu així
Però en canvi en Gmail el veiem així
La sol·lució és utilitzar CSS Inline, en lloc de definir la fulla d’estils al principi en la pròpia línia
<p style="color: #393;">Contingut</p>
No se massa de CSS però segur que també pots, com a possible solució, externalitzar el CSS al web, de la mateixa forma que poses les imatges amb ruta absoluta http://…
Que vagi de gust 🙂