L'envoi de courriels au format html à partir de VBA programme de messagerie
J'ai écrit un programme de messagerie pour mon organisation, les poignées certains très spécialisés choses très bien, des choses que je pourrais utiliser Outlook ou Gmail pour. Maintenant, le gestionnaire souhaite envoyer à l'occasion un e-mail à notre petite base de clients, mais je veux le corps de l'email pour un look professionnel et de ne pas les envoyer en tant que pièce jointe. J'ai bricolé un document html qui est présente dans tous les navigateurs et qui a été validé. Mon problème est que je peux pas comprendre comment le point le corps du message dans le document html. Voici les principales code.
C'est là que tout est mis en place:
Do While mailRs.EOF = False
'Me.AttachDoc = "C:\EmailFolder\CouponForm.pdf"
emTo = mailRs.Fields("EmailAddr").Value
emFrom = "[email protected]"
emSubject = Me.Subject
emtextBody = Me.TextMessage
Ici est un appel pour l'envoi de l'email
Call SendAMessage(emFrom, mailRs.Fields("EmailAddr").Value, _
emSubject, emtextBody, emAttach)
(J'ai obtenu le code pour l'envoi de l'email sur le web et il fonctionne très bien par le biais de notre serveur de messagerie.)
Ci-dessus, avant l'appel @ emtextBody = Me.TextMessage
est là que j'ai besoin de remplacer Me.TextMessage
avec l'adresse et le corps du document html. Et la boîte de message est une zone de texte sur le formulaire d'ACCÈS. Je ne trouve pas de contrôle d'ACCÈS qui prend en html. Je ne peux pas utiliser le chemin d'accès au document html, parce que génère une erreur. Est-il un moyen de contourner ce
Si besoin de plus de renseignements, je serai heureux de les lui fournir.
Merci pour votre temps.
jpl
- VBA peut être limité dans son soutien pour les nouveaux formats de messagerie. Dans VB.NET je pense qu'il y a deux bodyFormats - texte et HTML. Vous pouvez être mieux avec une .NET application. Vous devez fournir une option de texte en clair en tant que bien que certains utilisateurs de définir leurs préférences en texte brut et certaines sociétés limitent l'email.
Vous devez vous connecter pour publier un commentaire.
Utiliser quelque chose comme le code ci-dessous. J'ai inclus des éléments pour la fixation ainsi que la mise en forme html mais à peu près tout ce que vous pouvez écrire en html peut aussi être fait dans vba.
Je ne peux pas dire ce code est à l'intérieur que
SendAMessage
fonction que vous utilisez, mais tous les VBA exemples que j'ai travaillé avec semblent fonctionner de la même façon avec les CDO.Objet du Message comme dans ce MS, article de Base de Connaissances KB286431. À un certain pointSendAMessage
va avoir une ligne qui attribue le message de l'objet.TextBody
valeur égale à laemtextBody
paramètre que vous transmettez.Une solution pourrait être la copie de vos SendAMessage fonction dans une nouvelle fonction SendAMessageHTML et remplacer la ligne où ils sont la mise en
someMessage.TextBody = emtextBody
de sorte que vous définissezsomeMessage.HTMLBody = emtextBody
En supposant que votre zone de texte a texte le long de la lignes de
"<html><head><body></body></html>"
vous pourriez modifier votre fonction pour faire un naïf case comme ceci: