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 :

envoyer mail par smtp


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut envoyer mail par smtp
    bonjour

    j'avait fait un code pour envoyer un mail par smtp qui marchait très bien
    puis ensuite je voullait envoyer un mail sur d'autre serveur par ex: sur une adresse hotmail ou gmail etc....
    mais sa ne marche pas quand je clique sur envoyer il me dit en soulignant le premier then:
    l'exception null reference exception n'a pas été géréé
    voici mon code:
    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
      Dim TheServer As String = ""
            Dim de As String
            If de.Contains("gmail") Then
                TheServer = "smtp.gmail.com"
            ElseIf de.Contains("Hotmail") Then
                TheServer = "smtp.live.com"
            ElseIf de.Contains("Yahoo") Then
                TheServer = "smtp.mail.yahoo.com"
     
            End If
     
            Dim Email As New System.Net.Mail.MailMessage
     
            ProgressBar1.Value = 0
     
            Email.Subject = TextBox2.Text
            Email.Body = RichTextBox1.Text
     
            ProgressBar1.Value = 10
     
            If TextBox3.Text <> "" Then
                Dim data = New Net.Mail.Attachment(TextBox3.Text)
                Email.Attachments.Add(data)
            End If
     
            ProgressBar1.Value = 30
     
            Dim mailClient As New System.Net.Mail.SmtpClient()
            Dim basicauthentificationinfo As New System.Net.NetworkCredential(Form3.TextBox1.Text, Form3.TextBox2.Text)
            mailClient.Host = Form3.TextBox3.Text
            mailClient.UseDefaultCredentials = False
            mailClient.Credentials = basicauthentificationinfo
     
            ProgressBar1.Value = 50
     
            Email.From = New MailAddress("bou@free.fr")
            Email.To.Add(TextBox1.Text)
            mailClient.Send(Email)
     
            ProgressBar1.Value = 70
            ProgressBar1.Value = 100
     
            MsgBox("Le message a été envoyer")
        End Sub
    je sais pas pourquoi sa ne marche pas
    Dernière modification par Deepin ; 26/11/2010 à 11h34. Motif: Balises [QUOTE]...[/QUOTE]

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2008
    Messages : 161
    Par défaut
    Bonjour ,


    Dans ce bout de code, vous declarer une variable vous faite un test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If de.Contains("gmail") Then
    sans que vous n'affecter de valeur à la variable. L'erreur vient sans doute du faite que est null. Essayez de lui affecter une valeur.

  3. #3
    Invité
    Invité(e)
    Par défaut
    donc juste avant le test je doit marquer
    de.contains =
    mais quelle valeur je doit lui mettre ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    cool sa marche
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      Dim TheServer As String = "" 'pour modifier le serveur selon les besoins
            Dim de As String
            de = TheServer
            If de.Contains("gmail") Then
                TheServer = "smtp.gmail.com"
            ElseIf de.Contains("Hotmail") Then
                TheServer = "smtp.live.com"
            ElseIf de.Contains("Yahoo") Then
                TheServer = "smtp.mail.yahoo.com"
     
            End If
    par contre je ne sais pas si j'ai bien écrit mon code

  5. #5
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Bouh, c'est pas beau tous ses elseif, utilise plutot le select case.

  6. #6
    Invité
    Invité(e)
    Par défaut
    tu veut dire comme sa ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      Dim TheServer As String = "" 'pour modifier le serveur selon les besoins
            Dim de As String
            de = TheServer
            Select Case TheServer
                Case de.Contains("gmail")
                    TheServer = "smtp.gmail.com"
                Case de.Contains("Hotmail")
                    TheServer = "smtp.live.com"
                Case de.Contains("Yahoo")
                    TheServer = "smtp.mail.yahoo.com"
            End Select
    c'est plus jolie comme sa ?

Discussions similaires

  1. Problème d'envoie de mail par SMTP
    Par yass dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 12/09/2008, 16h45
  2. Envoi de mail par SMTP
    Par Ataturk dans le forum VBA Access
    Réponses: 1
    Dernier message: 13/06/2007, 17h31
  3. Access 97 : Envoi de mail par SMTP sans Outlook
    Par mr_foxy dans le forum Access
    Réponses: 2
    Dernier message: 16/03/2006, 14h45
  4. [Mail] Envoi de mail par SMTP ?
    Par Borami dans le forum Langage
    Réponses: 1
    Dernier message: 03/01/2006, 12h26

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