2012-01-06 209 views
0

這是我的工作方法來發送電子郵件電子郵件確認asp.net

 Sub emailConfirm() 
    Dim email As String = txtMail.Text 
    Dim name As String = txtPrenom.Text + txtNom.Text 

    Dim mail As MailMessage = New MailMessage() 
    'mail.To.Add("[email protected]") 
    mail.To.Add(email) 
    mail.From = New MailAddress("[email protected]") 
    mail.Subject = "Email using Gmail" 

    Dim Body As String = "Hi " + name + ", this mail is to confirm your registration" + "Click on the link to confirm please" + " Link(check note) " 
    mail.Body = Body 

    mail.IsBodyHtml = True 
    Dim smtp As SmtpClient = New SmtpClient() 
    smtp.Host = "smtp.gmail.com" 
    smtp.Port = 587 
    smtp.Credentials = New System.Net.NetworkCredential("[email protected]", "12345") 
    smtp.EnableSsl = True 
    smtp.Send(mail) 


End Sub 

注:我想送鏈接包含一個唯一的標識符,並驗證唯一標識符在login.aspx的

我不「知道什麼時候做這個...

我發現在網絡上什麼有趣...

這是Vb.net

我將在稍後添加安全

感謝您的幫助!

+1

除了鏈接還有更多。所有鏈接都可以將用戶發送到您的網站。您的網站將如何處理確認?也許只是鏈接到您的登錄頁面,並將第一次成功登錄視爲確認?也許存儲一個時間敏感的鍵(如果你希望他們在給定的時間窗口內確認),併發送一個鏈接到確認頁面,查詢字符串中的鍵? – David 2012-01-06 20:38:14

+1

備註:它甚至不可能在電子郵件中包含密碼。你不應該擁有密碼。你應該有一個哈希版本的密碼,並且應該在登錄時使用哈希密碼來與存儲的哈希進行比較。永遠不會以純文本存儲密碼。無處不在。永遠。 – David 2012-01-06 20:46:34

回答

2

那麼,首先不要把用戶名和密碼放在電子郵件本身。這有點草率。

其次,大多數網站做如下操作:

  1. 用戶創建帳戶
  2. 電子郵件發送給用戶。電子郵件中的鏈接包含唯一標識符,而不是用戶名和密碼。
  3. 用戶點擊鏈接。此時頁面會測試以查看唯一標識是否有效。如果是這樣,它會告訴他們謝謝您確認您的帳戶。然後顯示登錄表單。
  4. 用戶輸入他們的登錄憑證。

請注意,電子郵件沒有發送實際的用戶名/密碼信息。

+0

謝謝,但如何做2.和3. – FrankSharp 2012-01-06 20:46:56

+2

@FrankSharp:在創建用戶記錄時,您還需要創建一個唯一的ID(作爲該記錄的一部分或相關記錄)以存儲在數據庫中。該ID將作爲查詢字符串參數包含在電子郵件中的鏈接中。當用戶訪問確認或登錄頁面並在查詢字符串上具有這樣的ID時,將其與數據庫中存儲的ID進行比較。如果找到,帳戶被確認。如果找不到,則重定向到適當的錯誤。 – David 2012-01-06 20:51:22

+0

好添加大衛。 – NotMe 2012-01-06 20:53:25