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
    Candidat au Club
    Export PJ et adresse mail destinataire vers Excel pour une sélection de mails
    Bonjour,

    je reçois un nombre important de mails d'expéditeurs différents.
    Certains de ces mails ont une PJ associée (un fichier JPG).

    Je dois enregistrer dans une base de données SQL :
    - l'adresse mail de l'expéditeur
    - le fichier JPG
    - d'autres données qui sont invariables

    Actuellement, je réalise cette opération en ouvrant chaque mail un par un et en saisissant dans une application l'adresse mail de l'expéditeur et en associant le fichier joint préalablement enregistré sur le bureau.

    J'aimerais pouvoir sélectionner dans ma boite de réception tous les mails que je souhaite traiter. Puis, enregistrer dans un fichier EXCEL les données ci-dessus ( ligne pour chaque mail). A partir de ce fichier EXCEL je pourrais alors intégrer d'un coup tous les enregistrement dans SQL Server.

    Cette opération est-elle possible ?

    Je n'ai aucune expérience en programmation.

    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent
    Bonjour,

    Tu pourrais effectivement le faire via une MACRO directement dans Excel en selectionnant dans outlook tes emails

    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
    80
    81
    82
    83
    84
    85
    Sub SurSelection()
     
        Dim mail As Object
        Dim LeMail As Outlook.MailItem
        Dim LesMails As Object
     
           Dim OL As Outlook.Application
        If UCase(Application) = "OUTLOOK" Then
            Set OL = Application
        Else
            Set OL = CreateObject("outlook.application")
        End If
     
        Set LesMails = OL.ActiveExplorer.Selection
     
        For Each LeMail In LesMails
     
    Dim  Expediteur 
    Expediteur = Get_sender_SMTP(LeMail)
     
    msgbox Expediteur 
     
          call   SaveAttachement(LeMail)
     
     
     
        Next LeMail
     
        Set LesMails = Nothing
    End Sub
     
    Sub SaveAttachement(Item As Outlook.MailItem)
            Set attachs = Item.Attachments
            For Each attach In attachs
                file = attach.FileName
                attach.SaveAsFile "C:\temp\ & file
            Next
    End Sub
     
    Private Function Get_sender_SMTP(Oitem As Outlook.MailItem) As String
        Dim oEU As Outlook.ExchangeUser
        On Error Resume Next
        Set oEU = Oitem.Sender.GetExchangeUser
     
        Get_sender_SMTP = oEU.PrimarySmtpAddress
     
        If Get_sender_SMTP = "" Then Get_sender_SMTP = GetFromFromHeader(Oitem)
     
     
        If Get_sender_SMTP = "" Then Get_sender_SMTP = Oitem.SenderEmailAddress
    End Function
     
    Function GetFromFromHeader(objMail As Outlook.MailItem) As String
    '---------------------------------------------------------------------------------------
    ' Procedure : GetToFromHeader
    ' Author    : OLIV- from original code brettdj
    ' Date      : 04/06/2015
    ' Purpose   :
    '---------------------------------------------------------------------------------------
    '
        Dim objRegex As Object
        Dim objRegM As Object
        Dim MailHeader As String
        Dim ExtractText As String
        Dim i
        Const PR_TRANSPORT_MESSAGE_HEADERS = "http://schemas.microsoft.com/mapi/proptag/0x007D001F"
        MailHeader = objMail.PropertyAccessor.GetProperty(PR_TRANSPORT_MESSAGE_HEADERS)
     
        Set objRegex = CreateObject("vbscript.regexp")
        With objRegex
            .ignorecase = True
            .Pattern = "(\n)From:.*<(.+)>"
            If .test(MailHeader) Then
                Set objRegM = .Execute(MailHeader)
                For i = 0 To objRegM(0).submatches.Count - 1
                If InStr(1, objRegM(0).submatches(i), "@", vbTextCompare) Then
                GetFromFromHeader = objRegM(0).submatches(i)
                Exit For
                End If
                Next i
            Else
                GetFromFromHeader = ""
            End If
        End With
    End Function




    Si tu as un compte OFFICE 365, tu peux sans doute utiliser MICROSOFT POWER AUTOMATE
    c'est sans programmation
    -->https://emea.flow.microsoft.com/fr-fr/templates/

    tu peux utiliser plusieurs connecteurs OUTLOOK mais aussi SQL.

  3. #3
    Candidat au Club
    Merci bcp Oliv'
    Merci pour ta réponse rapide.
    Solutionner mon problème aussi rapidement a quelque chose de magique.
    Comme n'ai aucune notion en macro, donc je vais essayer Office365.
    Si vraiment je ne m'en sort pas, je reviendrais sur le forum pour apprendre sur les tutoriel.
    Mais encore sincèrement merci.

    Cordialement