【解決方法】asp.netのアクティベーションリンクで登録後にメールを送信する方法


asp.netのアクティベーションリンクで登録後にメールを送信する方法

解決策 3

メールの送信は簡単です。ここにコード付きのヒントがあります。 添付ファイルの有無にかかわらず C# で電子メールを送信する: 一般的なルーチン。[^]

あなたがしなければならないことは、電子メールで HTML を使用して、パラメーター付きのリンクを送信することだけです。

C#
protected void myCreateUserWizard_CreatedUser(object sender, EventArgs e)
    {
    myCreateUserWizard.LoginCreatedUser = false;
    SMUser user = new SMUser(SMUser.FindByUserName(myCreateUserWizard.UserName));
    Guid registercode = Guid.NewGuid();
    user.VerificationCode = registercode;
    user.Update();
    StringBuilder sb = new StringBuilder();
    sb.AppendFormat("%HTML%#NHi {0}!\n\n   Thank you for registering at MYDOMAIN. To complete your registration, please follow the link below:\n\n", user.UserName);
    string link = string.Format("http://www.MYDOMAIN.com/Register.aspx?RegistrationCode={0}{1}",
                                user.Id.ToString(),
                                registercode.ToString());
    sb.AppendFormat(@"<a href=""{0}"">MYDOMAIN.com Complete Registration</a>", link);
    sb.Append("\n\nWhen you have followed the link, you will be able to log in and use your account.\n");
    sb.Append("If your email system does not allow linking, please copy and paste the following into your browser:\n");
    sb.Append(link);
    sb.Append("\n\n");
    user.SendEmail(sb.ToString());
    myCreateUserWizard.CompleteSuccessText = "Thank you for registering!<br />" +
                                             "An email has been sent to the address you provided.<br />" +
                                             "Please follow the link it gives to complete the process.";
    }

次に、Register.apsx ファイルのパラメーターを読み取り、完了のマークを付けます。

解決策 1

解決策 2

この記事を確認してください。正確な状況が説明されています。

http://www.4guysfromrolla.com/articles/062508-1.aspx[^]

同じサイトで、その議論に関する興味深い記事をたくさん見つけることもできます。

乾杯

解決策 4

CreateUserWizard にメール定義を追加します。

HTML
<maildefinition bodyfilename="~/Docs/NewUserEmailBody.txt">
            CC="postmaster@mysite.com" From="postmaster@mysite.com"  
            Subject="Welcome to my site"> 
        </maildefinition>

これで、NewUserEmailBody.txt に、実際の値の を含む電子メールが含まれます。

<![CDATA[<%NEWUSERID%>]]> 1つのフィールドです。 メールのすべてのフィールドが自動的に置き換えられ、メールも自動的に送信されます。 ASP コードを私が示したものに変更し、プレースホルダーを使用して電子メールを作成する以外は、何もする必要はありません。 これが私の例です。 私のものにはアクティベーションページはありませんが、他の利用可能な代替フィールドを見ることができます.

マイサイトへようこそ。

User id: <%UserName%> <br />
Password key: <%Password%> 

マイサイトに関心をお寄せいただきありがとうございます。 私たちはあなたを私たちの家族に歓迎します!

アクティベーション ページで、次のようにします。

C#
protected void Page_Load(object sender, EventArgs e)   
 
{   
 
Guid oGuid = new Guid(Request.QueryString["ID"]);   
 
 //Guid oGuid = new Guid();   
MembershipUser oUser = Membership.GetUser(oGuid);   
if (oUser != null && oUser.IsApproved == false)   
 
 {   
 
oUser.IsApproved = true;   
 
Membership.UpdateUser(oUser);   
 
System.Web.Security.FormsAuthentication.RedirectFromLoginPage(oUser.UserName, false);   
 
}   
 
} 

コメント

タイトルとURLをコピーしました