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

VB.NET Discussion :

utilisation d'une dll pour le pop3


Sujet :

VB.NET

  1. #1
    Membre averti
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Points : 392
    Points
    392
    Par défaut utilisation d'une dll pour le pop3
    bonjour ,

    après une semaine de recherche j'ai enfin trouver mon bonheur , une dll qui peut charger ses mail a partir du pop3 ...

    et c'est ici avec des exemple la

    donc j'ai fait une form avec 2 textbox une pour le compte l'autre pour le passe et une listview pour afficher la date , l'expéditeur et le sujet

    ( jusque la tout va bien )

    une fois les textbox et la combobox rempli , on clique sur [DOWNLOAD]

    et ca lance ceci

    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
    Private Sub cmd_download_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_download.Click
            ReceiveMail(cb_serveurpop.Text, Txt_login.Text, Txt_pass.Text, True)
        End Sub
     
        Public Sub ReceiveMail(ByVal sServer As String, ByVal sUserName As String, ByVal sPassword As String, ByVal bSSLConnection As Boolean)
            Dim oClient As New MailClient("TryIt")
            'To receive email from imap4 server, please change
            'ServerProtocol.Pop3 to ServerProtocol.Imap4 in MailServer constructor
     
            Dim oServer As New MailServer(sServer, sUserName, sPassword, bSSLConnection, ServerAuthType.AuthLogin, ServerProtocol.Pop3)
     
            'by default, the pop3 port is 110, imap4 port is 143, 
            'the pop3 ssl port is 995, imap4 ssl port is 993
            'you can also change the port like this
            oServer.Port = 995
            Try
                oClient.Connect(oServer)
                Dim infos() As MailInfo = oClient.GetMailInfos()
                Dim count As Integer = infos.Length
                For i As Integer = 0 To count - 1
                    Dim info As MailInfo = infos(i)
                    Dim oMail As Mail = oClient.GetMail(info)
                    ''Save mail to local    file
                    ' oMail.SaveAs(String.Format("c:\{0}.eml", i), True)
                    ListView1.Items.Add(oMail.SentDate)
                    ListView1.Items.Add(oMail.From.Name)
                    ListView1.Items.Add(oMail.Subject)
                Next
     
                ' For i As Integer = 0 To count - 1
                'Dim info As MailInfo = infos(i)
                'oClient.Delete(info)
                'Next
                '
                ' Delete method just mark the email as deleted, 
                ' Quit method pure the emails from server exactly.
                oClient.Quit()
                MsgBox("connexion reussi")
     
            Catch ep As MailServerException
                ''Message contains the information returned by mail server
                MsgBox(ep.Message)
            Catch ep As System.Net.Sockets.SocketException
                MsgBox(ep.Message)
            Catch ep As Exception
                MsgBox(ep.Message)
            End Try
     
            oClient.Close()
        End Sub
    donc si je regarde le code ,
    je vois que je donne bien le compte et le mot de passe , l'adresse du serveur est bonne , je me connecte bien en ssl , sur le bon port et je déclare que c'est le protocole pop3

    mais sa m'affiche :

    une connexion existant a du être fermer avec l'hôte distant



    il y a de quoi devenir dingue

    si quelqu'un pourrait me donner un coup de main ce serai sympa

  2. #2
    Membre averti
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Points : 392
    Points
    392
    Par défaut
    hum ca marche sur gmail , enfin ca a marché 1 fois après le serveur ne me renvoie plus de message ...

    c'est normal ?

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Même les nouveaux message depuis la dernière connection?

    Pop3 sert à rapatrier les messages et non pas faire une synchronisation avec une messagerie distance.

    C'est fort probable que le serveur mail n'envoie que une fois les mails et même qu'il les efface après coup. C'est ensuite à l'application client mail de gérer le stockage des mails.

  4. #4
    Membre averti
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Points : 392
    Points
    392
    Par défaut
    en faite j'ai demander a mon maitre de stage , et le serveur n'enverrai qu'une seul fois la totalité des message après il ne renvoie que les nouveau


    mais je viens de m'apercevoir que cette dll était payante ce n'es qu'un version d' essai


    donc je vais surement abandonné cette solution

    si quelqu'un connait une dll qui gère bien le pop3 en .net et qui est gratuite je saute dessus

    cordialement

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Points : 71
    Points
    71
    Par défaut
    Tu as essayé OpenPop ? => http://sourceforge.net/projects/hpop/
    A une époque pas si lointaine, j'en avais essayé plusieurs sur Codeplex et Sourceforge et de mémoire, c'était le meilleur mais t'attends pas à des résultats extraordinaires parce que ce ne sera pas le cas.

    Perso, ma problématique était sur du MS Exchange et du coup, je suis parti sur l'API Exchange qui fonctionne bien mieux...

  6. #6
    Membre averti
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Points : 392
    Points
    392
    Par défaut
    je regarde ca , j arrive déjà a me connecter au serveur ( c'est déjà pas mal )

    moi en faite c'est une boite mail extérieur qui est copier sur MS Exchange

    mais vu que ma boite va déménager c'est serveur , et peut être même les changer je préfère contacter le serveur externe en direct


    moi je doit faire une réponse automatique de mail en fonction de ce qu'il y a dans le corps du message

  7. #7
    Membre averti
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Points : 392
    Points
    392
    Par défaut
    je n'arrive pas a extraire le corps du message mattofmath

    tu te souvient comment faire ?

    j'ai essayer plein de truc mais nada

    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
     Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
            MsgBox(ListBox1.Text)
            For i As Integer = 0 To lstmsg.Count - 1
                If lstmsg(i).Headers.Subject = ListBox1.Text Then
     
                    'RichTextBox1.Text = lstmsg(i).MessagePart.Body.ToString
                    ' RichTextBox1.Text = lstmsg(i).MessagePart.GetBodyAsText.ToString
                    RichTextBox1.Text = lstmsg(i).MessagePart.)
     
                End If
     
     
            Next
     
     
        End Sub

  8. #8
    Membre averti
    Avatar de alex61
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2010
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2010
    Messages : 378
    Points : 392
    Points
    392
    Par défaut
    c'est bon j'ai trouver

    voila le code complet si ca intéresse quelqu'un

    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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    Imports System
    Imports System.Net.Sockets
    Imports System.Net.Security
    Imports System.Security.Cryptography.X509Certificates
    Imports System.Text
    Imports System.IO
    Imports OpenPop.Pop3
    Imports OpenPop.Mime
    Imports OpenPop.Common
     
     
     
    Public Class Form1
     
     
        Dim lstmsg As New List(Of Message)
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            cb_serveurpop.Items.Add("pop3.live.com")
            cb_serveurpop.Items.Add("pop.gmail.com")
            cb_serveurpop.Items.Add("mail.securigard.com")
     
            cb_port.Items.Add(110)
            cb_port.Items.Add(995)
     
        End Sub
     
        Private Sub cmd_download_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_download.Click
     
            Dim SSl As Boolean = False
            If chk_ssl.Checked = True Then
                SSl = True
            End If
     
            lstmsg = FetchAllMessages(cb_serveurpop.Text.ToString, cb_port.Text, SSl, Txt_login.Text.ToString, Txt_pass.Text.ToString)
            affichage(lstmsg)
     
        End Sub
     
     
        Public Shared Function FetchAllMessages(ByVal hostname As String, ByVal port As Integer, ByVal useSsl As Boolean, ByVal username As String, ByVal password As String) As List(Of Message)
            ' The client disconnects from the server when being disposed
     
            Using client As New Pop3Client()
                ' Connect to the server
                client.Connect(hostname, port, useSsl)
     
                ' Authenticate ourselves towards the server
                client.Authenticate(username, password)
     
                ' Get the number of messages in the inbox
                Dim messageCount As Integer = client.GetMessageCount()
     
                ' We want to download all messages
                Dim allMessages As New List(Of Message)(messageCount)
     
                ' Messages are numbered in the interval: [1, messageCount]
                ' Ergo: message numbers are 1-based.
                For i As Integer = 1 To messageCount
                    allMessages.Add(client.GetMessage(i))
                    Form1.Text = "telechargement des messages .... " & i & "/" & messageCount
                Next
     
                Form1.Text = "Message Telecharger"
     
                ' Now return the fetched messages
                Return allMessages
            End Using
     
     
     
        End Function
     
     
        Public Sub affichage(ByVal malstmsg As List(Of Message))
            Dim nb As Integer = malstmsg.Count
            For i As Integer = 0 To nb - 1
                ListBox1.Items.Add(lstmsg(i).Headers.Subject)
            Next
     
        End Sub
     
     
     
        Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
            MsgBox(ListBox1.Text)
            For i As Integer = 0 To lstmsg.Count - 1
                If lstmsg(i).Headers.Subject = ListBox1.Text Then
     
                    'RichTextBox1.Text = lstmsg(i).MessagePart.Body.ToString
                    ' RichTextBox1.Text = lstmsg(i).MessagePart.GetBodyAsText.ToString
                    RichTextBox1.Text = lstmsg(i).ToMailMessage.Body
     
                End If
     
     
            Next
     
     
        End Sub
    End Class

    je vais demander si je peut faire un tutorial la dessus car a mon avis je ne suis pas le seul qui a besoin de ca


    cordialement

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

Discussions similaires

  1. Utilisation d'une DLL pour initialiser un numericupdown
    Par quentin22breizh dans le forum Visual Studio
    Réponses: 0
    Dernier message: 25/11/2014, 16h14
  2. créer une dll pour utiliser l'ASIO
    Par ccinfonews dans le forum Bibliothèques, systèmes et outils
    Réponses: 2
    Dernier message: 22/09/2010, 11h50
  3. Réponses: 8
    Dernier message: 20/06/2008, 09h00
  4. Réponses: 18
    Dernier message: 30/08/2007, 11h23
  5. [DLL] Utilisation d'une DLL pour utiliser serveur Firebird
    Par sekiryou dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/08/2004, 14h20

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