c#
  • asp.net
  • email
  • smtp
  • 2017-06-01 192 views 1 likes 
    1

    早上好,在電子郵件中發送鏈接

    我目前正試圖在用戶填寫表單後發送電子郵件。該電子郵件包含指向激活頁面的鏈接。我對生成的鏈接代碼如下:

    mailMessage.Body = "<h1>Please click the link below to activate your account</h1><br /><a href = '" + HttpContext.Current.Request.Url.AbsoluteUri.Replace("Activation.aspx", "Activation.aspx?userId=" + userId) + "'>Click here to activate your account.</a>"; 
    

    然而,當發送的電子郵件顯示的網址:

    http://localhost:52621/RegisterUser.aspx 
    

    我在做什麼錯?如生成鏈接的代碼所示,我試圖通過Activation.aspx的名稱訪問頁面,該頁面沒有發生。任何建議都會很棒。提前致謝。

    +0

    請告訴我絕對URI的內容? –

    +0

    你很明顯從RegisterUser.aspx頁面獲取Uri。此外,您可能想要將「?userId = ...」部分追加到AbsoluteUri中,而不是替換其中的一部分,因爲Uri(在您檢索它之後)可能以「Activation.aspx」結尾。 –

    +0

    https://stackoverflow.com/questions/10719722/asp-net-app-to-send-an-mail-with-a-hyperlink –

    回答

    0

    您正在運行本地開發服務器端口52621,這就是爲什麼你會得到上述URL。

    當您發佈項目會顯得不同,在一些領域probally捉迷藏一樣

    https://www.example.com/RegisterUser.aspx 
    

    如果你想擁有從公佈的狀態的一個解決方案是鏈接到它手工編碼:

    mailMessage.Body = "<h1>Please click the link below to activate your account</h1><br /><a href='https://www.example.com/Activation.aspx?userId=" + userId + "'>Click here to activate your account.</a>"; 
    

    雖然我不喜歡那個。

    如果你有你的項目將被髮布到你可以根據當前構建配置自己的域名寫入web.config文件喜歡這裏描述的多種環境:

    Using different Web.config in development and production environment

    +0

    謝謝你的回答。最後,我採用了不同的驗證方法。無論如何,我已經接受了這個答案,因爲你給了我幾件事情來思考。謝謝 –

    +1

    很高興我能幫忙,謝謝! – Cossintan

    相關問題