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

  1. #1
    Membre régulier
    Un VBA Outlook pour visualiser l'en-tête d'un message sans l'ouvrir ?
    Bonjour à toutes et tous.
    Dans Outlook 2013 (les autres versions je ne sais pas) il est impossible de visualiser l'en-tête d'un message sans l'ouvrir.

    Une fois ouvert, la barre d'outil d'un message ouvert propose une commande pour en "visualiser" l'en-tête.

    Par contre cette manip. est impossible sans l'ouvrir (dans la liste des messages reçus par exemple)... Cela serai bien pratique pour examiner l'en-tête d'un message suspect.

    Une macro VBA pourrait elle contourner cette limitation ?

    Perso, je ne suis pas assez caler en VBA mais vous peut être ?

    Merci pour vos propositions.
    A+
    Jean-Claude
    A+
    J-Claude

    PS: Si une réponse vous a permis d'avancer, merci de voter "pouce vers le haut" sur celle-ci. Si votre problème est résolu, cliquer sur le bouton noir "Résolu" en bas.
    Histoire aussi d'aider les autres utilisateurs en recherche de solution.

    Merci.

  2. #2
    Expert éminent
    Bonjour,

    Voici , il faut ajouter un formulaire pour créer une référence à Microsoft Form...

    le contenu du header se copie dans le presse papier

    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
    Sub get_header_PutInClipboard()
        Dim obj, objmail As Outlook.MailItem
        Dim mailHeader
        Set obj = Application.ActiveWindow
        If TypeOf obj Is Outlook.Inspector Then
            Set obj = obj.CurrentItem
        Else
            Set obj = obj.Selection(1)
        End If
     
        If obj.Class <> olMail Then Exit Sub
     
        Set objmail = obj
     
        Const PR_TRANSPORT_MESSAGE_HEADERS = "http://schemas.microsoft.com/mapi/proptag/0x007D001F"
        mailHeader = objmail.propertyAccessor.GetProperty(PR_TRANSPORT_MESSAGE_HEADERS)
        With New DataObject
            .SetText mailHeader
            .PutInClipboard
        End With
     
    End Sub

  3. #3
    Membre régulier
    J'y crois pas ! Il faut accéder à un site Microsoft pour obtenir l'en-tête du message en VBA ? Est-ce que ça veut dire que l'on fait aussi un accès chez Microsoft quand on visualise tout simplement le code source du message ???

    AMIcalement.

  4. #4
    Expert éminent
    Non en fait "http://schemas.microsoft.com/mapi/proptag/0x007D001F" n'est pas une adresse internet mais un namespace

    pas de big brother dans ce code !

  5. #5
    Membre régulier
    Citation Envoyé par Oliv- Voir le message
    Non en fait "http://schemas.microsoft.com/mapi/proptag/0x007D001F" n'est pas une adresse internet mais un namespace

    pas de big brother dans ce code !
    Je ne comprends quand-même pas. Ce "namespace" ne pourait pas s'appeler "toto", ou "olMailHeader" ? Et s'il s'appelle comme ça, ça n'a absolument rien à voir avec quelque chose qui se trouve sur Internet ? (d'ailleurs 1:- cette adresse ne répond pas, et 2:- les adresses chez microsoft.com passent leur temps à changer : tu es sûr que ton code fonctionnera encore dans six mois ?).

    AMIcalement.

  6. #6

  7. #7
    Membre régulier
    Citation Envoyé par Oliv- Voir le message
    C est effectivement déroutant...
    Mais permets-moi d'insister : cette application m'intéresse, car il me semble possible d'en tirer parti pour éviter de s'emm... avec les no-ip et autres pseudo-gratuits : Si, dans ma maison de campagne, j'ai un raspberry qui m'envoie un mail tous les jours, et que j'ai un moyen fiable (à défaut d'être simple) d'en extraire son IP, c'est réglé.

    Puis-je demander d'où tu tiens ce nom de namespace ? Puis-je demander s'il fonctionne uniquement comme une chaîne de caractères, ou bien si son utilisation suppose un accès Internet ? Puis-je demander s'il est certain que ce nom (ce lien Internet, peu ou prou) n'est pas susceptible de changer suivant le bon vouloir de M. µ$ ?

    Merci.

    AMIcalement.

  8. #8
    Expert éminent
    Tu trouveras des infos ici
    https://docs.microsoft.com/fr-fr/off...opertyaccessor
    et là
    https://www.slipstick.com/developer/...-object-model/

    c'est une chaine de caractères que tu peux explorer avec les fonctions chaines de vba par exemple (instr, split, mid,...) ou avec des REGEX

    voici un exemple
    https://www.developpez.net/forums/bl...nvoye-message/

    il faut bien sur un accès internet, pour recevoir le mail ! ;-)

  9. #9
    Membre régulier
    Merci Oliv'. Je vais explorer tout ça, mais les méandres de Microsft et ceux de l'internet me plongent dans un abîme de perplexité...

    "Quand on veut accéder à des propriétés qui ne sont pas exposées dans le modèle objet"... Des propriétés qui existent, qui ne sont pas exposées, mais auxquelles on veut accéder, et auxquelles ils vous donnent quand même le moyen d'accéder... C'est un truc de Shadok !

    AMIcalement.

  10. #10
    Expert éminent
    Bonjour,

    Avec ce visuel tu comprendras mieux

    Voici des propriétés "exposées" d'un Email comme le sujet en rouge, ou la liste des objets exposés comme les destinataires (objet = propriétés + méthodes+ événements)