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

VBA Access Discussion :

Peut on recevoir des emails avec access ?


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Peut on recevoir des emails avec access ?
    Bonjour,

    Je sais envoyer des emails avec access, j'utilise cela pour faire des mailing.

    Maintenant, je voudrais recevoir les messages de retour (erreur pour email non délivré et désinscription) pour traiter automatiquement les adresses concernées.

    Comment recevoir un email dans access ?

    Merci

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 702
    Points : 43 779
    Points
    43 779
    Par défaut
    Access n'est pas un client de messagerie.

    Il doit être possible de piloter outlook depuis access. Il est relativement simple d'envoyer un mail avec outlook via access, l'inverse j'ai jamais vu.

    Il y a du boulot à moins que tu trouve un code déjà existant. Cela risque cependant d'être une usine à gaz.

    Il est peut-être plus facile d’implémenter un client pop minimal dans Access pour récupérer les mails de retour pour analyse, surtout si c'est pour gérer ce que tu as à faire.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Merci de ton aide chrtophe
    Malheureusement je me doutais un peu de cette réponse.

    J'ai cherché un code existant mais je n'ai rien trouvé pour l'instant.
    L'idée d'un client pop me semble bien sauf que je ne sais pas comment m'y prendre et même où trouve ce client.

    Tu pourrais m'expliquer comment "implémenter un client pop minimal" stp ? Ou simplement me dire où je pourrais trouver des infos ?

    Je n'ai pas besoin de fonctionnalités sophistiquées (réception de mail en texte brut, adresse expéditeur, message).

    Merci de ton aide

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 702
    Points : 43 779
    Points
    43 779
    Par défaut
    Le client mail de base :

    Voici comment procéder avec telnet, le dialogue se fait en mode texte. Exemple de connexion manuelle avec telnet

    telnet pop.orange.fr 110 ( le port 110 étant le port pop3 )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    user nom utilisateur
    pass mot de passe
    De la tu es logué sur la boite
    la commande list affiche la liste des messages avec leur taille, récupérer la dernière ligne te permet de connaitre le nbre de messages à traiter.
    pour afficher le message : retr numéro de message, le message s'affiche en texte brut, avec l'en-tête en début te permettant de faire ton traitement.
    La commande dele numéro de message effacera celui-ci. La dédconnection du serveur se fait avec la commande quit

    Il te faut donc voir comment en VBA utiliser les sockets ( socket=équivalent d'un handle de fichier pour une connexion réseau ).

    Ceci n'est pas utilisable avec gmail par exemple qui impose un dialogue en SSL.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,

    Autre solution :
    ►Fichier/données externes/lier les tables => option Outlook
    Une fois lié l'élément Outlook se traite comme une table classique.

    Cordialement.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Merci de votre
    ctrtophe, je vais étudier la piste telnet mais j'ai un peu de mal à comprendre comment l’utiliser dans Access en VBA. Est-ce que les 2 seules lignes de code que tu m'indiques suffisent vraiment à être logué !? Sans aucune "déclaration" préalable. Dsl mais suis un peu perdu.

    Francishop, ton idée a le mérite d'être visiblement très simple à mettre en oeuvre. J'aimerais mieux que ma base access soit autonome mais à défaut, c'est une super solution. Est-ce que cela veut dire que je peux manipuler les données et les enregistrements de la tables (supprimer, modifier...) ?

  7. #7
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 702
    Points : 43 779
    Points
    43 779
    Par défaut
    A partir du moment ou tu lie ton fichier Outlook a Access, tu peux manipuler son contenu. Gestion objet. Tu peux en théorie créer des sous-dossiers, déplacer supprimer des mails etc ... il faut connaitre leur nom tout comme pour accéder au vba word, excel, et access.

    Tu n'a pas de fonction de getion de socket sans Access, mais tu peux appeler les fonctions systèmes des APIs Windows. C'est un peu lourd si t'es pas programmeur, mais c'est faisable. Tu trouveras des exemples d'ouverture de fichier via le système sans difficultés, les sockets ça doit se trouver, mais il faut un minimum de connaissance des APIs windows. Il est peut-être plus facile pour toi de gérer les objets Outlook.

    Après le telnet est un exemple. Pour l'appliquer, il te faut gérer des sockets ( documentes-toi là dessus) et à partir des sockets tu envoie les commandes et reçois leur réponse tel que l"exemple que je t'ai donné.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Une autre solution dans ce tuto sur le VBA Outlook : http://dolphy35.developpez.com/article/outlook/vba/#LV

    Tu peux (avec une macro sur OutLook) récupére l'évènement d'arriver d'un mail, en faisans un test sur sa nature (Objet par exemple), tu peux mettre des informations sur une table Access.

    Ce n'est qu'une piste parmi tant d'autres.

    Philippe

  9. #9
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Bonjour le forum.
    Je met ici une procédure modifiée que j'utilise pour avoir une message vocal lors de l'arrivée d'un mail (ligne 39 à 45,voir ce que j'ai mis dans la rubrique "Contribuez")
    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
    Public Sub Application_NewMail()
        Dim session As Object
        Dim r
        Dim Qui As String, strinfos As String
        Dim folder As Object
        Dim MonMail As Object
        Dim i As Integer
        Dim condition As Integer, Message As String, Sujet As String
        'Instance des Objets
        Set session = CreateObject("Redemption.RDOSession")
     
     
        session.Logon ("Outlook")
        Set folder = session.GetDefaultFolder(olFolderInbox)    '    'Dossier boîte de réception
        For i = folder.Items.Count To folder.Items.Count
            'instancie le mail suivant la valeur de la boucle
            Set MonMail = folder.Items(i)
            'Récupère les diverses informations du Mail
            With MonMail
                strinfos = "Expéditeur : " & .SenderName
                strinfos = strinfos & vbCr & "Destinataire(s) : " & .To
                strinfos = strinfos & vbCr & "Date de réception : " & .ReceivedTime
                strinfos = strinfos & vbCr & "Sujet : " & .Subject
                strinfos = strinfos & vbCr & "pièce jointe : " & .Attachments.Count
     
                strinfos = strinfos & vbCr & "Message : " & .Body
     
     
                If .ReplyRecipientNames = "" Then
                    Qui = .SenderName
                Else
                    Qui = .ReplyRecipientNames  '.SenderName
                End If
                condition = .Importance
                Sujet = .Subject
            End With
            'Affichage du résultat
            If condition = 2 Then
                Message = "   message important. " & " " & Sujet
    '            r = Shell("C:\Documents and Settings\upath0\Mes documents\parc\gestion PDM\gestion_PDM10" & "\balabolka.exe -nmrq " & """Tu viens de recevoir un mail de " & " " & Qui & Message & "", vbMinimizedNoFocus)
     
            Else
    '            r = Shell("C:\Documents and Settings\upath0\Mes documents\parc\gestion PDM\gestion_PDM10" & "\balabolka.exe -nmrq " & """Tu viens de recevoir un mail de " & " " & Qui & "", vbMinimizedNoFocus)
     
            End If
        Next i
        'MsgBox strinfos, vbApplicationModal
     
        'Vide des instances
        'Set MonApply = Nothing
        Set session = Nothing
        Set folder = Nothing
        Set MonMail = Nothing
     
    End Sub
    Il faut mettre cette sub dans le module "ThisOutlookSession"
    J'utilise Redemption.dll pour ne pas déclencher la sécurité Outlook.
    Ceci est un exemple de comment obtenir les infos contenus dans un mail .
    "Il n'y a plus qu'à" les renvoyer dans Access!
    Cdlt

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Merci Thierry
    Merci pour l'info mais si c'est pour utiliser outlook, autant utiliser la solution de Francishop qui propose de lier directement les données oulook à access non ?

    J'ai trouve un client po assez facile à utiliser à priori.
    Chilkat MailMan, vous connaissez ?
    Facile à mettre en œuvre, autonome...
    Voilà, il me reste à automatiser le traitement des emails reçu.

    Merci de votre aide à tous

  11. #11
    Invité
    Invité(e)
    Par défaut
    Re

    Je ne vois pas pourquoi utiliser une autre bibliothèque alors que tu as OutLook

    Philippe

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Bonne question Philippe...
    Tu as parfaitement raison de poser cette question. Et moi , je me la pose.

    En fait, la réponse n'est pas très nette à vrai dire...
    Par principe, je préfère l'indépendance. Il me semble que la portabilité des applications, les éventuelles conséquence d'une évolution malheureuse des logiciels auquel tu es liés, l’interaction qui peut être complexe à maitriser (selon moi)... et puis il y a une espèce de "lutte" contre la toute puissance de Microsoft qui, à chaque fois que je peux me passe d'eux, n'est pas pour me déplaire. Voilà les raison qui me pousse à choisir une autre solution que Outlook.

    Maintenant, c'est certain que Outlook serait la solution de facilité. Mais cette simplicité est parfois un piège savamment tendu par les major de l'informatique. Et je me méfie d'eux comme de la peste. Il peuvent faire de l'informatique un monde totalement fermé et sous leur emprise si nous ni prenons pas garde.

    Il suffit de regarder comment évolue le Pack office dans sa version 2013 ! Bientôt, ces outils ne seront QUE en ligne. Et bien ce jour là, si ils ne veulent plus de vous, amis développeurs, nous l'aurons dans l'os !

    Vive la rébellion face aux dictats des faiseurs de bonheurs industrialisés.

    Bref, autant que possible, je préfère être indépendant.

  13. #13
    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
    Pour être indépendant, utilise autre chose qu'Access, car là, c'est un peu comme un écolo qui roule en Ferrari

    L'intérêt d'Access c'est justement son étroit lien avec les autres produits du pack Office, pourquoi chercher midi à 14 heures.

  14. #14
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut Tofalu
    Attention ! Tofalu, tu confonds "indépendant" et "intégriste".
    Si certains écolos se cachent derrière de belles intentions, d'autres "pragmatiques" usent du même travers en se cachant derrière des arguments pré mâchés C'est comme "Vous êtes contre le nucléaire ? Alors éclairez vous à la bougie !". Sincèrement, est ce que ce genre de débat stérile fait avancer le monde dans le bon sens !? Ne sommes nous pas un cran au dessus de cela ?

    De plus, comparer Access à une ferrari (avec un petit "f", quel manque de respect), c'est un peu poussé non ?
    Il me semble quil existe des outils au combien plus puissants et là oui, tu peux parler de Ferrari avec un "F" stp. Sans vouloir te vexer, jouer avec Access, cela revient plus à conduire une Renault.

    Trêve de ping pong, je cherchais juste à répondre à la question pertinente de Philippe, point. Ne te sens pas obligé de polémiquer sur le sujet. A moins... à moins que tu es un intérêt direct à le faire ! Tu bosse pour Microsoft ou ton job en dépend non ? Tu est "Certifié" peut être. Sache que non seulement je comprend ton point de vue, mais je le respecte aussi. Je n'ai pas pour habitude de cracher dans la soupe. Mais le monde est bien plus complexe que cette simple conversation et tu le sais aussi bien que moi.

    Il n'y a que le cinéma pour nous faire croire que le monde est divisé en 2, d'un coté les gentils et de l'autre les méchants.

    A la prochaine Tofalu et dsl d'avoir la langue bien pendue mais c'est l'un de mes défaut. Au plaisir.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Tofalu Voir le message
    Pour être indépendant, utilise autre chose qu'Access, car là, c'est un peu comme un écolo qui roule en Ferrari

    L'intérêt d'Access c'est justement son étroit lien avec les autres produits du pack Office, pourquoi chercher midi à 14 heures.
    Sans entrer dans une polémique (chacun est libre de ces choix), je ne peux qu'être d'accord avec Tof.

    Si tu as une application sous Access, tu auras 99.9 % de chances d'avoir Outlook (à moins de passer par un Runtime).

    De plus, est-ce que ta bibliothèque sera opérationnelle pour toutes les versions d'OS ?

    Par expérience, une application full Office (Access avec lien avec Excel et Outlook) avec Office 2000 sous Windows 2000 à parfaitement migrer (avec 2 trois bricoles à changer sous Office 2007 et Windows Seven.

    Or certaines bibliothèques ont dû mal à migrer d'une version à l'autre et ne sont plus maintenues.

    Philippe

  16. #16
    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
    Loin de moi l'envie de polémiquer, et bien entendu la comparaison était dans les opposés "voiture polluante mais écolo" et "volonté d'indépendance et produit Microsoft". Je ne compare pas Access à une Ferrari, loin de là, si tu avais lu certains de mes articles tu aurais pu y comprendre qu'Access est certes puissants mais n'offre pas tous les avantages d'une solution telle SQL Server en ce qui concerne l'intégrité, la cohérence et la puissance des traitements.

    Ce que je voulais dire, c'est que je trouve ridicule de s'embêter avec des références, des activex ou que sais-je encore alors que de toute façon, ton appli tournera dans un environnement Windows, avec un Pack Office et donc Outlook de disponible.

    L'intérêt de la programmation autour d'Office c'est justement de tirer parti du meilleurs des logiciels pour créer une solution d'entreprise répondant parfaitement aux besoin : langage commun, modèle objet proche, automation, etc.

    Que tu n'utilises pas Outlook parce que tu trouves cela plus fun de développer ta propre appli avec des sockets, ou parce que tu as un code source tout prêt avec un autre utilitaire dont la pérennité est inconnue, que la licence est obscure, etc. , cela pourrait se comprendre, mais si l'unique argument est : je ne fais pas confiance à Microsoft alors que de toute façon ton appli ne tournera exclusivement qu'avec leurs produits, cela me fait doucement sourire.

    Attention, je ne critique pas la volonté d'être indépendant ou portable, mais dans ce cas, tu n'as clairement pas fait le bon choix en ce qui concerne la base de données et encore moins en ce qui concerne l'application.

  17. #17
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Tu as raison Tofalu, le truc c'est que quand j'ai créé cette "application", j'ai fait le choix d'Access par facilité. Je me doute que d'autres outils existent et je n'ai effectivement pas parcouru l'ensemble de tes interventions. Avec le recul, j'aurais peut être dut choisir un autre système, rien que pour la rapidité de traitement notamment. Mais bon, pas trop le temps de tout refaire.

    Cependant, j'ai des clients équipés de l'appli et sans pack office ! Avec le runtime. Et là, clairement, je limite (un peu) la dépendance.

    Ceci étant, ta remarque est juste et je n'ai effectivement pas pris la bonne orientation au départ

    A++

  18. #18
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Je prend note de ta remarque Phil, elle sent le l'expérience.

    Merci

  19. #19
    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
    Effectivement si tous les clients sur le même réseau n'ont pas de pack office, cela va coincer pour utiliser Outlook.

  20. #20
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Dis moi Tofalu,

    Un équivalent Access en open source, ça existe ?
    Si j'avais voulu faire la même chose sans access, j'aurais dut prendre quoi selon toi ?

    Merci

Discussions similaires

  1. [WS 2008] Envoyer et recevoir des emails avec des serveurs externes
    Par saracen dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 07/12/2014, 15h30
  2. [AC-2007] envoyer des emails avec vba access
    Par David1259 dans le forum VBA Access
    Réponses: 4
    Dernier message: 05/02/2010, 17h54
  3. Réponses: 2
    Dernier message: 04/07/2006, 10h26
  4. Peut on creer des routines avec SQL
    Par Jamal_71 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/01/2006, 10h37
  5. envoyer des images avec access
    Par dan664 dans le forum Access
    Réponses: 6
    Dernier message: 13/10/2005, 21h16

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