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 :

smtp envoi de mail par System.net.mail


Sujet :

VB.NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 181
    Points
    181
    Par défaut smtp envoi de mail par System.net.mail
    Bonjour,

    j'ai fait des essais avec un code que j'ai récupéré.
    Ca me lance une exception sur appel de la procédure d'envoi
    c.Send. Vous avez des idées , une autre méthode, autre facon de faire.

    J'ai une adresse de serveur smtp, avec les accès et tout et tout.

    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
     
        Public Sub SendMail(ByVal [To] As String, ByVal Subject As String, ByVal Body As String)
            Const User As String = "###@gmail.com"
            Const Password As String = "####"
     
     
            Dim m As New MailMessage
            m.From = New MailAddress(User)
            m.To.Add(New MailAddress([To]))
            m.Subject = Subject
            m.Body = Body
            Dim c As New SmtpClient("smtp.gmail.com", 587)
            'Dim c As New SmtpClient("smtp.live.com", 25)
            c.EnableSsl = True
            c.Credentials = New NetworkCredential(User, Password)
            c.Send(m)
            m.Dispose()
        End Sub
     
        Sub testEmail()
            SendMail("monadresse@yahoo.fr", "Salut", "Test")
        End Sub

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    Citation Envoyé par batou22003 Voir le message
    Ca me lance une exception

    type de l'exception ? message ? (ca parait logique de le préciser ...)

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 161
    Points : 166
    Points
    166
    Par défaut
    Est ce un problème liée à la connexion au serveur SMTP ou un problème lié au code ?? Seul le message d'erreur peut nous le dira.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 181
    Points
    181
    Par défaut code erreur
    Le compilateur bloque sur c.send(m) :
    L'exception SmptException n'a pas été gérée

    Echec d'envoi du courrier

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 175
    Points : 25 116
    Points
    25 116
    Par défaut
    sur un smtpexception il y a aussi une propriété smtpstatus qui correspond à l'enum suivante :
    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
     
    Public Enum SmtpStatusCode
        BadCommandSequence = &H1F7
        CannotVerifyUserWillAttemptDelivery = &HFC
        ClientNotPermitted = &H1C6
        CommandNotImplemented = &H1F6
        CommandParameterNotImplemented = &H1F8
        CommandUnrecognized = 500
        ExceededStorageAllocation = &H228
        GeneralFailure = -1
        HelpMessage = &HD6
        InsufficientStorage = &H1C4
        LocalErrorInProcessing = &H1C3
        MailboxBusy = 450
        MailboxNameNotAllowed = &H229
        MailboxUnavailable = 550
        MustIssueStartTlsFirst = 530
        Ok = 250
        ServiceClosingTransmissionChannel = &HDD
        ServiceNotAvailable = &H1A5
        ServiceReady = 220
        StartMailInput = &H162
        SyntaxError = &H1F5
        SystemStatus = &HD3
        TransactionFailed = &H22A
        UserNotLocalTryAlternatePath = &H227
        UserNotLocalWillForward = &HFB
    End Enum

    et mets des try catch dans ton application aussi !

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 181
    Points
    181
    Par défaut détails
    ok, merci. Ca venait du "Nom du serveur". Merci Monsieur.

    Et j'ai du modifier le code pour récupérer directement mon credential ,
    mes info. de sécurité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        c.Credentials = CredentialCache.DefaultNetworkCredentials
     
    'et je rajoute la gestion d'erreur
       Catch ex As SmtpException
            ' MsgBox(ex.Message)
     
        End Try

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 161
    Points : 166
    Points
    166
    Par défaut
    j'ai testé ton code et il se trouve que tu n'es pas authentifié sur le serveur SMTP de google(smtp.gmail.com) Cidessous l'execption que j'ai récupèrée.

    Le serveur SMTP requiert une connexion sécurisée ou le client n'était pas authentifié. La réponse du serveur était : 5.5.1 Authentication Required. Learn more at...

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Je sais que votre poste est résolu mais je voulais simplement que vous puissiez savoir que quelque soit ce que vous faîtes, sauf à passer par un https, les protocoles SMPT et POP3 laissent passer les username et les mot de passe en texte claire ? Unitile donc de vous fatiguer à les crypter côté application puisse que de toutes les façons ils transiteront en clair sur le réseau !

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

Discussions similaires

  1. Envoi de mail avec System.net.mail
    Par gastoncs dans le forum VB.NET
    Réponses: 1
    Dernier message: 01/04/2015, 15h10
  2. Envoie d'email avec system.net.mail
    Par urbanspike dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/06/2009, 08h53
  3. Réponses: 17
    Dernier message: 09/05/2009, 21h54
  4. [System.Net.Mail.SmtpClient] a l'envoi d'un mail
    Par aurelien.tournier dans le forum Framework .NET
    Réponses: 5
    Dernier message: 15/02/2008, 09h06

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