2012-02-15 6 views
0

私は、動的URL(a.k.a. activationlink)をリポジトリクラスに書き込む方法を理解しようとしています。電子メールのリンクをリポジトリクラスに書く方法

ここで働いていたものだが、私は動的に「http://mysite.com」を行うするかどうかはわかりません:あなたのケースのための

private static void SendActivationEmail(User user) 
{ 
    string ActivationLink = "http://mysite.com" + 
           user.Username + "/" + user.NewEmailKey; 

    var message = new MailMessage("[email protected]", user.Email) 
    { 
     Subject = "Activate your account", 
     Body = ActivationLink 
    }; 

    var client = new SmtpClient("smtp.email.com"); 

    client.Send(message); 

} 
+0

リンクは – MethodMan

+0

あなたが得ているし、他に何あなたが取得したいと思いActivationLink文字列の値が何であるか..

答えて

0

あなたはこの

String.Format("<a href=/"{0}/{1}/{2}">Click Here To Activate</a>", 
     user.Username, user.NewEmailKey); 
ような何かを行うことができます

ユーザがURLを介してウェブページをアクティブにするようにリダイレクトされることがわかっている場合は、そして、あなたはあなたのユースケースに合うようにする必要がありますどのように、これは例では、それを使用されたクエリ文字列 を経由してリンクをフォーマットしたい

HttpContext.Current.Request.Url.Host

の代わりに、お住まいの地域のdevの環境ではHttpContext.Current.Request.Url

必要になりますlocalhostとなっているかもしれませんが、これをいくつかのWebサーバーにデプロイすると、正しくホストされているWebサーバーURLに更新されます。

理想的には、クエリ文字列を含むパスとページロード時に対応するコードを使用してクエリ文字列を検証して使用するのが理想的です。

例:

<br/>"+HttpContext.Current.Request.Url.Host + @"/AccountValidate.aspx?id=SomeId" 

注:またHttpContext.Current.Request.Urlを使用することができ、それがクエリ文字列で、現在のページにリダイレクトします:ページ内

<br/>"+HttpContext.Current.Request.Url + "?user=SomeUser " .... same for user.NewEmailKey does this make sense..?? 

そして、 AccountValidate.aspxまたは現在のページの読み込み:

string user = Convert.ToString(Request.QueryString["user"]); 
if(!string.IsNullOrEmpty(user)) 
... //Code here to inform the user of successful activation 
+0

DJ KRAZE、あなたは3つのパラメータを持っていますが、2つを通過しています。 –

+0

はい、それは私がそれをOPに任せて、最後の変数を使用したいのかどうかを決めるためです。しかし、OPが私の言っているもののドリフトを得ていると確信しています。 – MethodMan

0

< a href ... >そして本文をhtmlに設定します。これを試してみてください:

private static void SendActivationEmail(User user) 
{ 
    string activationLink = string.Concat("<a href='ht", "tp://mysite.com/", user.Username, "/", user.NewEmailKey, "'>Activate Here</a>"); 
    var message = new System.Net.Mail.MailMessage("[email protected]", user.Email) 
    { 
     Subject = "Activate your account", 
     Body = activationLink, 
     IsBodyHtml = true 
    }; 
    var client = new System.Net.Mail.SmtpClient("smtp.email.com"); 
    client.Send(message); 
} 
関連する問題