2012-02-15 2 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이 될 수도 있지만 이것을 일부 웹 서버에 배포하면 호스팅 된 웹 서버 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, 세 개의 매개 변수가 있지만 두 개를 전달 중입니다. –

+0

예. 나는 그것을 알고 있습니다 .. 그 이유는 제가 마지막 변수를 사용하기를 원하는지 아닌지 결정하기 위해 그것을 영업점에 남겨 두었 기 때문입니다. 그러나 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); 
} 
관련 문제