IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Email au format HTML via VBA


Sujet :

Access

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut Email au format HTML via VBA
    Bonjour,

    Je cherche à envoyer un Email via du code VBA.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    Public Sub DisplayEmail(Optional EmailSubject As String, Optional EmailBody As String, _
                            Optional EmailTO As String, Optional EmailCC As String)
     
        Dim appOutLook  As Outlook.Application
        Dim oEmail      As Outlook.MailItem
     
    On Error GoTo Err_DisplayEmail
     
        'Créer un nouvel item mail
        Set appOutLook = New Outlook.Application
        Set oEmail = appOutLook.CreateItem(olMailItem)
     
        'Les paramètres
        If Not IsNull(EmailSubject) Then oEmail.Subject = EmailSubject
        If Not IsNull(EmailBody) Then oEmail.BODY = EmailBody
        If Not IsNull(EmailTO) Then oEmail.To = EmailTO
        If Not IsNull(EmailCC) Then oEmail.CC = EmailCC
     
        'Affiche le message
        oEmail.Display
     
    Exit_DisplayEmail:
     
        'Détruit les références aux objets
        Set oEmail = Nothing
        Set appOutLook = Nothing
     
        Exit Sub
     
    Err_DisplayEmail:
     
        MsgBox "Error " & err.Number & " (" & err.Description & _
        ") in Sub DisplayEmail of Module mod_Outlook", _
        vbExclamation Or vbSystemModal, "VB CODE ERROR"
     
        Resume Exit_DisplayEmail
     
    End Sub
     
    ----------------------------------------------------------------
     
    Public Sub SendEmail(EmailSubject As String, EmailBody As String, _
                            EmailTO As String, Optional EmailCC As String)
     
        Dim appOutLook  As Outlook.Application
        Dim oEmail      As Outlook.MailItem
     
    On Error GoTo Err_SendEmail
     
        'Créer un nouvel item mail
        Set appOutLook = New Outlook.Application
        Set oEmail = appOutLook.CreateItem(olMailItem)
     
        'Les paramètres
        oEmail.Subject = EmailSubject
        oEmail.BODY = EmailBody
        oEmail.To = EmailTO
        If Not IsNull(EmailCC) Then oEmail.CC = EmailCC
     
        'Affiche le message
        oEmail.Send
     
    Exit_SendEmail:
     
        'Détruit les références aux objets
        Set oEmail = Nothing
        Set appOutLook = Nothing
     
        Exit Sub
     
    Err_SendEmail:
     
        MsgBox "Error " & err.Number & " (" & err.Description & _
        ") in Sub SendEmail of Module mod_Outlook", _
        vbExclamation Or vbSystemModal, "VB CODE ERROR"
     
        Resume Exit_SendEmail
     
    End Sub
    (Sans oublier de référencer la librairie Microsoft Outlook 9.0 Object Library)

    MAIS...
    • Comment ajouter une pièce jointe (ex : fichier Excel) ?
    • Comment utiliser de l'Html dans mon message pour y mettre de la couleur ?


    Merci de votre aide,

    Philippe

    ps : j'utilise Access et Outlook 2000.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Points : 520
    Points
    520
    Par défaut
    Tout dépend de ton client de messagerie.

    Vois la manipulation d'objets outlook si tu en disposes, sinon, j'utilise le CDO.message (dans les tutos ou la faq).

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut
    wouai et la couleur ?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    oEmail.attachements.add "c:\fichier.rpt"
    oEmail.attachements.add "c:\autrefichier.aze"

    de la couleur ? et aussi des émoticones ? et ta photo ?

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut
    Super pour les attachements
    Reste la couleur

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    ben tu fais un oemail.display

    un shell
    des sendkeys

    et tu auras en rouge en corps de 15

    c'est une énorme valeur ajoutée

  7. #7
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    inutile de s'embêter avec du Shell et du SendKeys.

    Utilise .HTMLBody

    comme dans la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Sub cmdSend_Click()
     
    Dim strHTML As String
    Dim oEmail As Outlook.MailItem
    Dim appOutlook As Outlook.Application
     
    Set appOutlook = New Outlook.Application
    Set oEmail = appOutlook.CreateItem(olMailItem)
     
    oEmail.To = Me.txtTo
    oEmail.Subject = Me.txtSubject
     
    strHTML = "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">" & _
              "<HTML><HEAD>" & _
              "<META http-equiv=Content-Type content=""text/html; charset=iso-8859-1"">" & _
              "<META content=""MSHTML 6.00.2800.1516"" name=GENERATOR></HEAD>" & _
              "<BODY><DIV STYLE=""font-size: 11px; font-face: Tahoma;"">"
     
    oEmail.HTMLBody = strHTML & Replace(Me.txtBody, vbCrLf, "<br>") & "</DIV></BODY></HTML>"
     
     
    oEmail.Send
     
    Set oEmail = Nothing
    Set appOutlook = Nothing
     
    End Sub

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut
    C'est magnifique mais j'y connais rien en HTMLBody
    Existe-t'il un moyen pour faire un texte formaté dans un Email et le transformer en HTMLBody de manière à faire un Copier/Coller.

    Merci,

    Philippe

  9. #9
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Il faudrait utiliser le controle microsoft RichTextBox et ce coup ci non pas envoyer en HTML mais en RTF

    Pour le RichTextBox :

    http://access.developpez.com/sources...ms#ControleRTF


    Pour le mail :

    http://access.developpez.com/sources/?page=ole#MailHTML

    Il faudra juste définir :
    oMail.BodyFormat = olFormatRTF

    et aussi modifier la variable contenu pour quelle récupère le texte RTF du RichTextBox

  10. #10
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    OOps désolé j'avais pas vu que c'était déjà fait
    Citation Envoyé par Tofalu
    Il faudrait utiliser le controle microsoft RichTextBox et ce coup ci non pas envoyer en HTML mais en RTF

    Pour le RichTextBox :

    http://access.developpez.com/sources...ms#ControleRTF


    Pour le mail :

    http://access.developpez.com/sources/?page=ole#MailHTML

    Il faudra juste définir :
    oMail.BodyFormat = olFormatRTF

    et aussi modifier la variable contenu pour quelle récupère le texte RTF du RichTextBox

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 125
    Points : 80
    Points
    80
    Par défaut
    J'ai trouvé une solution qui permet de Hardcoder un texte en HTMLBody sans connaître le code.

    Créer le body sur un nouveau message dans Outlook.
    Sélectionner le texte.
    Cliquer avec le bouton droit.
    Sélectionner "view source"

    Nous avons donc toutes les possibilités dans cet article. Cela servira certainement à d'autres.

    Merci à cafeine et Tofalu.

    Philippe.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/05/2014, 11h22
  2. [WD10]envoyer un email au format HTML
    Par kwakly dans le forum WinDev
    Réponses: 4
    Dernier message: 31/10/2007, 12h09
  3. [HTML] Email au format HTML
    Par sat478 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 09/07/2007, 11h51
  4. [PHPMailer] envoie de mail au format html via phpmailer()
    Par leclone dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 22/02/2007, 11h14
  5. [HTML]Email au format html
    Par willowII dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/03/2005, 21h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo