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 :

Gmail + password recovery


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Par défaut Gmail + password recovery
    Bonjour,

    J'ai des problèmes avec la procédure de récupération de mdp avec gmail. Attendez avant de me pendre en fait j'ai trouvé comment créer ma propre classe de mail :

    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
     
        Public Function EnvoieMail(ByVal pAdressesMailDestination As String, ByVal pSubject As String, ByVal pBody As String) As Boolean
            Try
                Dim lFromAdresse, lUtilisateur, lPassword, lServeur, lPort, lStatutSSL As String
     
                lFromAdresse = System.Configuration.ConfigurationManager.AppSettings("AdresseExpediteur")
                lServeur = System.Configuration.ConfigurationManager.AppSettings("SmtpServeur")
                lPort = System.Configuration.ConfigurationManager.AppSettings("SmtpPort")
                lUtilisateur = System.Configuration.ConfigurationManager.AppSettings("SmtpUtilisateur")
                lPassword = System.Configuration.ConfigurationManager.AppSettings("SmtpPassword")
                lStatutSSL = System.Configuration.ConfigurationManager.AppSettings("SmtpSSL")
     
                'create the mail message
                Dim lMailMessage As New MailMessage()
     
                'set the addresses
                lMailMessage.From = New MailAddress(lFromAdresse)
                lMailMessage.To.Add(pAdressesMailDestination)
     
                'set the content
                lMailMessage.Subject = pSubject
     
                'body
                lMailMessage.Body = pBody
     
                'Port 587 is another SMTP port
                Dim smtp As New SmtpClient(lServeur, lPort)
                smtp.Credentials = New NetworkCredential(lUtilisateur, lPassword)
     
     
                smtp.EnableSsl = lStatutSSL
                smtp.Send(lMailMessage)
     
                Return True
     
            Catch e As Exception
                Return False
            End Try
        End Function
    Que j'appel comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
        Protected Sub PasswordRecovery1_SendingMail(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MailMessageEventArgs) Handles PasswordRecovery1.SendingMail
            If (EnvoieMail("xxxx@xxxxx", "test", "coucou")) Then
                Dim message As String
                message = "Envoie du mail de récupération de mot de passe avec succés"
                Response.Write("<body><script>alert(""" & message & """);</script></body>")
            Else
                Dim message As String
                message = "Echec de l'envoie du mail de récupération de mot de passe, veuillez réessayer"
                Response.Write("<body><script>alert(""" & message & """);</script></body>")
            End If
        End Sub
    Avec dans ma page aspx :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        <asp:PasswordRecovery ID="PasswordRecovery1" runat="server" Visible="False" 
               SuccessPageUrl="~/Login.aspx" onsendingmail="PasswordRecovery1_SendingMail">
    L'envoie de mail en dehors de password recovery marche mais dedans
    j'obtiens : une erreur (L'adresse de messagerie de l'expéditeur doit être section de configuration system.net/mailSettings/smtp) je sais que c'est dans le web config dans <mail settings> mais moi j'ai mis le tout dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      <appSettings>
        <add key="AdresseExpediteur" value="xxxxxxxx@xxxxx" />
        <add key="SmtpServeur" value="smtp.gmail.com" />
        <add key="SmtpPort" value="587" />
        <add key="SmtpUtilisateur" value="xxxxx@xxxx" />
        <add key="SmtpPassword" value="xxxx" />
        <add key="SmtpSSL" value="true" />
      </appSettings>
    Mon but c'est de substituer la procédure d'envoi de mail de <password recovery> de base par la mienne (qui gere le ssl ).
    Et donc l'objet de ma requête...

    - Comment lui dire qu'il faut qu'il utilise ma fonction avec la conf dans appSetting et qu'il m'envoie mon mail pré formaté contenant les infos de l'usager la vérif est ok?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [...]
    <td align=right style="width: 120px">Nom d'utilisateur:</td><td><strong><%UserName%></strong></td>
    <td align=right style="width: 120px">Mot de passe:</td><td><strong><%Password%></strong></td>
    [...]
    Je sais pas si j'ai été clair

    Merci pour vos réponses qui me sortiront du vide intersidérale

    Benjamin

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Par défaut
    Pas de réponse... Mais c'est pas grave j'ai avancé dans mon problème j'arrive à envoyer des mails ssl avec le recoverypassword mais je rencontre un petit problème je vous montre mon code :

    Code dans webconfig:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     <system.net>
        <mailSettings>
          <smtp from="xxxxxx@gmail.com">
            <network host="smtp.gmail.com" port="587" userName="login"   password="mdp" />
          </smtp>
        </mailSettings>
      </system.net>
    nb: le login doit comprendre le @gmail.com

    Code dans la page aspx.vb :
    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
     
     
        Public Sub MySendingMail(ByVal Sender As Object, ByVal e As MailMessageEventArgs)
    'La commande ci dessous va recup la conf qui est dans le webconfig
            Dim pSmtpSec As System.Net.Configuration.SmtpSection = CType(System.Configuration.ConfigurationManager.GetSection("system.net/mailSettings/smtp"), System.Net.Configuration.SmtpSection)
     
            Dim lUser As System.Web.Security.MembershipUser
            Dim lUserName, lEmailDestination As String
     
            '***Verify user 
            lUserName = PasswordRecovery1.UserName
            lEmailDestination = Membership.GetUser(PasswordRecovery1.UserName).Email
            lUser = System.Web.Security.Membership.GetUser(lUserName)
            Label1.Visible = False
     
            If (Not User Is Nothing) Then
     
                Dim lResetPassword As String
                lResetPassword = lUser.ResetPassword()
     
                Dim lMessage As New MailMessage()
                Dim lFrom = pSmtpSec.From.ToString()
                Dim lHost = pSmtpSec.Network.Host.ToString()
                Dim lPort = pSmtpSec.Network.Port.ToString()
                Dim lLogin = pSmtpSec.Network.UserName.ToString()
                Dim lPassword = pSmtpSec.Network.Password.ToString()
                Dim lFromAddress As New MailAddress(lFrom)
     
     
                Dim smtp As New SmtpClient(lHost, lPort)
                smtp.Credentials = New NetworkCredential(lLogin, lPassword)
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network
                smtp.EnableSsl = True
     
     
                lMessage.To.Add(lEmailDestination)
     
                lMessage.From = lFromAddress
                lMessage.Subject = "Réinitialisation Mot de Passe Site"
     
                lMessage.IsBodyHtml = True
                lMessage.Body = "Votre nouveau mot de passe temporaire est : <b>" + lResetPassword + "</b><br> Veuillez le changer dès votre première connection dans l'onglet <b>Gestion Compte</b>"
     
                '**Send SMTP mail
                smtp.Send(lMessage)
     
                lMessage = Nothing
     
                Label1.Visible = True
                Label1.Text = "Un Email vient de vous être envoyé"
            Else
                Label1.Visible = True
                Label1.Text = "Marche pas !"
            End If
        End Sub
    Code dans la page aspx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       <asp:passwordrecovery id="PasswordRecovery1" runat="server" visible="False" 
               maildefinition-from="xxxx@gmail.com" onSendingMail="MySendingMail" >
    <MailDefinition From="xxxxx@gmail.com"></MailDefinition>
    </asp:passwordrecovery>
    Dernier problème :
    Quand je valide le password recovery, il envoie le mail mais et après il plante en me disant l'erreur 'classique' SSL sécurisé requis. Mais je reçois le mail.
    Je pense qu'il fait 2 processus d'envoie le mien personnalisé et celui par défault.
    Comment peut-on l'empecher de lancer le processus d'envoi de mail par défaut tout en laissant mon processus perso marcher ?

    Si jamais Casper passe par là...Merci à lui

    Benjamin,

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Par défaut
    Bon bas j'ai résolu comme un grand mon problème, il fallait juste rajouter
    à la première ligne de 'Public Sub MySendingMail'.
    En espérant que ça serve

    Benjamin,

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

Discussions similaires

  1. Windows user account password recovery
    Par Dandi dans le forum Administration
    Réponses: 0
    Dernier message: 30/12/2009, 15h07
  2. Password recovery or reset
    Par alimoka dans le forum ASP.NET
    Réponses: 4
    Dernier message: 22/10/2009, 18h15
  3. Réponses: 2
    Dernier message: 21/07/2009, 14h18
  4. Password recovery et create account
    Par FamiDoo dans le forum ASP.NET
    Réponses: 7
    Dernier message: 12/07/2007, 14h10
  5. [VB.Net] [login] probleme avec password recovery
    Par graphicsxp dans le forum ASP.NET
    Réponses: 5
    Dernier message: 17/02/2006, 14h53

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