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

ASP.NET Discussion :

Envoi mail automatique


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut Envoi mail automatique
    Bonjour

    Dans mon projet en asp(C#) j'ai besoin d'envoyer un mail automatique.
    En fait lorsqu'un utilisateur remplit le formulaire pour s'inscrire, je souhaite lui envoyer ses diverses informations.

    J'utilise un createUserWizzard.

    Et lorsque le createUserWizzard est remplit, ce code se génère :

    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
     protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e)
        {
            MailMessage email = new MailMessage();
            string utilisateur;
            string password;
            string serveur;
     
            utilisateur = ConfigurationSettings.AppSettings["SmtpUtilisateur"];
            password = ConfigurationSettings.AppSettings["SmtpPassword"];
            serveur = ConfigurationSettings.AppSettings["SmtpServeur"];
     
            email.From = "adresseamoi@gmail.fr";
            email.To = CreateUserWizard1.Email;
            email.Subject = "Création d'un utilisateur";
            email.Body = "Vos informations personnelles";
            SmtpMail.SmtpServer = serveur;
     
            email.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
            email.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", utilisateur);
            email.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password);
     
            try
            {
                SmtpMail.Send(email);
            }
            catch (Exception ex)
            {
                LblErreur.Text = ex.Message;
            }
        }
    J'ai pris ce code grâce à un tuto sur developpez.net, mais cela ne fonctionne pas.

    Pour ce qui est des lignes dans le webconfig:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <appSettings>
        <add key="SmtpServeur" value="smtp.neuf.fr" />
        <add key="SmtpUtilisateur" value="user" />
        <add key="SmtpPassword" value="mdp" />
      </appSettings>
    Cependant je ne suis pas sur de l'utilisateur et du mot de passe. J'ai écrit les informations de mon FAI, mais le mail ne s'envoie pas. Normalement cela doit s'envoyer même si je ne suis pas chez moi?

    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Ton site est hébergé chez neuf.fr ?

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Du tout, d'ailleurs il n'est pas encore hébergé du tout.

    edit : je viens d'essayer l'envoie du mail depuis mon domicile, et maintenant ça marche.

    Pourquoi ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    A mon avis le serveur SMTP de Neuf n'autorise les connexions qu'à partir de ta NeufBox... Utilise plutôt celui de GMail si tu envois à partir d'une adresse GMail. En plus c'est sécurisé, donc plutôt mieux...

    D'autre part, j'ai l'impression que tu utilises la classe System.Web.Mail.MailMessage, qui est obsolète. Il faut utiliser System.Net.Mail.MailMessage à la place (change la directive using en début de fichier). Ca s'utilise un peu différemment, c'est expliqué dans ce tuto

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Ok,

    Je viens de créer mon adresse gmail, pour le login et le mot de passe il suffit de mettre mon adresse gmail et mon mot de passe ?

    edit : de plus, j'ai bien rajouté cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using System.Net.Mail.MailMessage;
    Et il me dit que :
    Une directive d'espace de noms using ne peut être appliquée qu'aux espaces de noms*; 'System.Net.Mail.MailMessage' est un type, pas un espace de noms

  6. #6
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    le using doit être :

    Car comme spécifié dans le message d'erreur, tu ne peux mettre en using que des espaces de noms (namespace) qui vont servir à référencer des types, et non pas les types directement.

    Pour les identifiants gmail, c'est bien ça. Et si je me trompe pas, le '@gmail.com' n'est pas obligatoire pour le login.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  7. #7
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    L'erreur disparait, mais une nouvelle réapparait sur NetworkCredential (cf tuto)

    Erreur 1 Le type ou le nom d'espace de noms 'NetworkCredential' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?)

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 514
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    using System.Net;
    using System.Net.Mail;

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par piero53 Voir le message
    L'erreur disparait, mais une nouvelle réapparait sur NetworkCredential (cf tuto)

    Erreur 1 Le type ou le nom d'espace de noms 'NetworkCredential' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?)
    D'une manière générale, pour les problèmes de ce type, place le curseur sur l'erreur et appuie sur Ctrl+. (point). Ca fait apparaitre un menu qui te propose d'ajouter le using manquant

  10. #10
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Ah, je connaissait Alt+Maj+F10, mais ce raccourci là me paraît un peu plus facile à réaliser
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  11. #11
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Merci c'est fait !

    Cependant il m'affiche cette erreur sur cette partie du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MailMessage monMail;
            monMail.From = new MailAddress("mail@gmail.com");
    ->
    Erreur 1 Utilisation d'une variable locale non assignée 'monMail'
    Je vois pas pourquoi cette erreur apparait maintenant

  12. #12
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Pourquoi maintenant, peut être parce qu'avant tu avais des erreurs de namespaces. Sans Namespace impossible d'avoir des types donc de définir ce genre d'erreur.

    Et pour régler ton erreur, il suffit d'instancier ton mail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MailMessage monMail = new MailMessage();
    monMail.From = new MailAddress("mail@gmail.com");
    Tu peux aussi passer des informations directement dans le constructeur, regarde ceci pour plus d'informations.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par laedit Voir le message
    Ah, je connaissait Alt+Maj+F10, mais ce raccourci là me paraît un peu plus facile à réaliser
    pareil, j'ai utilisé Alt+Maj+F10 pendant longtemps avant de réaliser qu'il y avait beaucoup plus simple

  14. #14
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Merci

    Cependant, malgré qu'il n'y ait plus d'erreur, lorsque je teste, j'ai une erreur de l'envoie du mail:

    L'exception SmtpException n'a pas été gérer pas le code utilisateur.

    Je pense pourtant avoir bien fait :

    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
     MailMessage monMail = new MailMessage();
            monMail.From = new MailAddress("monmail@gmail.com");
     
            string  destinataire;
            destinataire = CreateUserWizard1.Email;
     
            // ajout de deux destinataires principaux
            monMail.To.Add(new MailAddress(destinataire));
     
            monMail.Subject = "Mail de test";
            monMail.Body = "Hello les gens";
     
     
            // création du SMTPClient
            SmtpClient client = new SmtpClient();
     
            // définition du serveur smtp
            client.Host = "smtp.gmail.com";
     
            // définition des login et pwd si smtp sécurisé
            client.Credentials = new NetworkCredential("monlogingmail", "monmdpgmail");
     
            client.Send(monMail);
     
     
            // création de la pièce jointe
            Attachment maPieceJointe = new Attachment(@"../images/piece.png"); // chemin de la pièce jointe
     
            // ajout de la pièce jointe au mail
            monMail.Attachments.Add(maPieceJointe);

  15. #15
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Un truc bien quand on a une exception, c'est qu'elle délivre généralement un message précis de pourquoi elle a été levé.

    Et si tu nous transmets ce message, on sera peut être assez bien informé pour pouvoir t'aider.

    De plus, savoir exactement où elle se déclenche dans le code est assez utile.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  16. #16
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Le SMTP de GMail n'est pas sur le port standard (25), mais sur un port spécifique (465 ou 587), et il est sécurisé (il faut mettre la propriété EnableSSL à true)
    http://mail.google.com/support/bin/a...y?answer=13287

  17. #17
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    L'erreur est :
    Échec d'envoi du courrier.
    Elle est sur : Et comment je change le port ? La propriété enableSSL est à modifier ou? Sur visual ?

  18. #18
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Prends la peine de réfléchir avant de poster :

    Tu dois changer le port du serveur SMTP, donc il faut le changer dans SmtpClient.
    Pareil pour le port.

    Regarde ce que contient la classe SmtpClient ici : http://msdn.microsoft.com/en-us/libr...t_members.aspx
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  19. #19
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Par défaut
    Désolé

    J'ai maintenant réussi, merci pour votre aide

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

Discussions similaires

  1. envoi mail automatique a plusieur personne avec critère et Pj
    Par popofpopof dans le forum VBA Access
    Réponses: 9
    Dernier message: 26/02/2010, 09h51
  2. Réponses: 32
    Dernier message: 18/06/2007, 08h28
  3. Envoi mail automatique
    Par sticker dans le forum ASP.NET
    Réponses: 5
    Dernier message: 15/02/2007, 16h19
  4. [phpBB] Envoi mail automatique quand on clique sur un bouton
    Par Nicca dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 08/12/2006, 11h42
  5. envoi mail automatique apres confirmatin d'inscription
    Par Chonchon dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/03/2006, 17h28

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