[vb.net] envoyer/recevoir des mails

Résolu
Bonjour à tous,
Je souhaiterais créer un prog en vb.net qui me permettrais d'envoyer et de recevoir des mails. Mes connaissances ne sont pas très importantes mais j'arrive à me débrouiller.

J'ai fais des recherches et j'ai vu qu'il fallait utiliser la classe System.Net.Mail pour envoyer les mails par le protocol smtp. Le problème c'est que je sais pas trop m'en servir. Ca ce complique encore plus avec la classe System.Net.Sockets pour recevoir les mails via pop3

Si vous pouviez éclairer ma lanterne,

Je vous remercie par avance

4 réponses

  1. Slt,

    Je t'avoue franchement, moi et les sockets c'est pas mon truc. Mais par contre, pour envoyer un mail, j'ai créé ce code parce que je ne trouvais pas sur Internet. Il y a la possibilité d'envoyer des pièces jointes.

    Imports System.Net
    Imports System.Net.Mail
    Public Class Form1
    Dim MyMail As New MailMessage
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Try
    Dim MySMTPClient As New SmtpClient(ComboBox1.Text)
    MyMail.From = New MailAddress(TextBox1.Text)
    MyMail.ReplyTo = New MailAddress(TextBox2.Text)
    MyMail.To.Add(New MailAddress(TextBox3.Text))
    MyMail.Body = RichTextBox1.Text
    MyMail.Priority = MailPriority.High
    MyMail.Subject = TextBox5.Text
    For Each Lines As String In RichTextBox2.Lines
    MyMail.Attachments.Add(New Mail.Attachment(Lines))
    Next
    MySMTPClient.Send(MyMail)
    MsgBox("E-Mail bien envoyé !", MsgBoxStyle.Information, "Envoi de l'E-Mail")
    MyMail.To.Clear()
    MyMail.Attachments.Clear()
    Catch ex As Exception
    MsgBox("Impossible d'envoyer l'E-Mail.", MsgBoxStyle.Critical, "Envoi de l'E-Mail")
    MyMail.To.Clear()
    MyMail.Attachments.Clear()

    End Try
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    OpenFileDialog1.Filter = "Tous les fichiers (*.*)|*.*"
    OpenFileDialog1.ShowDialog()
    End Sub

    Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
    If RichTextBox2.Text <> "" Then
    RichTextBox2.Text = RichTextBox2.Text & vbCr & OpenFileDialog1.FileName
    Else
    RichTextBox2.Text = OpenFileDialog1.FileName
    End If

    End Sub
    End Class

    a+
    1. Bonjour,

      Ton message est assez vieux mais je tente quand même ma chance pour une question:
      j'ai essayé ton code il ne fonctionne pas et me répond " message impossible à envoyer "
    2. Suite erreur d'expédition poursuite de mon message précédent :

      dans la combobox1 j'ai tapé "smtp.gmail.com",
      dans les deux premiers textbox j'ai tapé deux adresses mail valides,
      na sachant pas à quoi correspond la troisième textbox j'ai tapé la meme adresse que celle de la texbox2
      j'ai rempli lla richtextbox avec du blabla,
      j'envoie et je reçois le message " impossible etc..."

      Si tu pouvais me donner une piste pour résoudre ce problème ça m'aiderait.
      Ton code est intéressant , dommage qu'il ne soit pas mieux documenté.

      P.S. Dans le cas où quelqu'un d'autre pourrait me répondre ( si l'auteur du code ne répond pas ) son aide serait bienvenue.

      Merci.
    3. +
      MySMTPClient.EnableSsl = True
      MySMTPClient.Credentials = New NetworkCredential("user", "password")

      (y)
    4. Ssl à utiliser que si tu utilise le smtp Gmail sinon --> inutile ;)
      Sans credentials il ne peut pas se co à ton adresse mail donc ne peut pas envoyer de mail
      Voili voilou
      ps : si vous étes chez orange , vous ne pourrais (je pense) pas utilisé se protocol (smtp) car ce FAI bloque tous les serveur smtp ;)
  2. Finalement j'ai fignoler avec Mayzz un code qui finalement a marché (pour ceux qui voudront le consulter, il faudra savoir que je suis en Tunisie et que le fournisseur internet de la boîte est Globalnet. Donc il vous suffira de changer le smtp. Exemple : pour gmail vous mettez smtp.gmail.com)

    Voici le code : avec VB.NET 2008

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim mail As New MailMessage() 
    
    'set the addresses 
    mail.From = New MailAddress("contact@prodit.net") 
    mail.To.Add("joedassin87@gmail.com") 
    
    'set the content 
    mail.Subject = "sujet de mail" 
    mail.Body = "le body du mail." 
    
    Dim client As New SmtpClient("xsmtp.gnet.tn") 
    
    Try 
    client.Send(mail) 
    MsgBox("coucou ca va") 
    Catch ex As Exception 
    
    MsgBox("Echec de l'envoi") 
    
    End Try 
    
    
    End Sub
    1. Salut

      j ai essayé ton code

      mais que mets tu dans la combobox1 pour paramétrer le smtp et comment prends tu les infos pour le smtp

      merci
      jacques
      1. Salut,
        J'ai essayé ton code mais je n'arrive pas à configurer le stmp.
        Peux tu m'aider ?
        a+
        1. Rajoute ça

          Dim smtp As New SmtpClient("smtp.gmail.com")
          smtp.EnableSsl = True
          smtp.Credentials = New NetworkCredential("mail@gmail.com", "motdepasse")
          'smtp.Port = 465 Contrairement a ce que dit l'aide de Gmail c'est pas utile
          smtp.Send(mail)
        2. @Utilisateur anonymebonjours, je tente depuis quelque jours de me connecter via smtp mais sans grand resultat ...
          jai souvent les erreur suivante en me connectant au server de gmail ...

          "Le server nessesite une connection sécuriser ou le client n'est pas identifier"
          "le server d'accepte pas les connection sécurisé"
          "Delais d'attente dépasser"

          bon, jai lu que pour pouvoir etablir une connection securisé on doit fournire un certificat x509 valide.
          toute les source que jai visioner prene en compte que l'on a deja ce certificat(.cer file)

          allors jai eseyer de crée un certificat avec OpenSSl sans resultat, bon je ny comprend pas grand choses mais jai suivi un tutoriel pour Ssl x509

          j'aurais moi aussi besoin d'aide, lol