مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

jaafar

عضویت از 1393/06/25

ارسال لینک فعلسازی

  • شنبه 27 تیر 1394
  • 14:11
تشکر میکنم

سلام و عرض ادب

من asp.net c# کار میکنم

جدول ریجستر و لاگین رو نوشتم و میخوام لینک فعالسازی حسابکاربری از طریق linq to sql به ایمیل کاربر ارسال بشه و بعد از دریافت ایمیل حسابش فعال بشه

لطفا نمونه کد رو درج کنید با تشکر

با تشکر از شما اساتید عزیز

 

پاسخ های این پرسش

تعداد پاسخ ها : 2 پاسخ
کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • شنبه 27 تیر 1394
  • 15:45

با سلام.

ارسال ایمیل با ado.net و linq تفاوتی ندارد. فقط در صدا زدن فیلدها از بانک اصلاعاتی دستوراتش متفاوت می باشد.

در جدول یک فیلد active می گذارید از نوع bit و یک فیلد به نام activationCode از نوع nvarchar

در برنامه هم یک صفحه به نام ActiveUser.aspx می سازید. وقتی کاربر روی لینک فعال سازی کلیک می کند ، این صفحه باز می شود.

در هنگام ثبت نام مقدار فیلد active را برابر false می گذارید. همچنین مقدار فیلد activatinCode را با کد زیر پر می کنید:

string activationCode;

activationCode = Guid.NewGuid().ToString();

وقتی کاربر روی لینک فعال سازی کلیک کرد ، وارد صفحه ActiveUser.aspx می شود و بر اساس activationCode مقدار فیلد active در دیتابیس برابر true می شود.

برای این کار باید یک host خریداری کنید. سپس یک ایمیل برای خودتان در هاست ایجاد کنید. سپس در یرنامه کدهای زیر را باید بنویسید:

ابتدا using آن را صدا می زنید.

using System.Net.Mail;

using System.Net;

 

//Send Activation Link

SmtpClient smtpClient = new SmtpClient();

NetworkCredential basicCredential = new NetworkCredential("آدرس ایمیل ساخته شده در هاست", "پسورد ایمیل");

smtpClient.Host = "email.نام هاست";(نام آدرسی که با زدن آن می توانید به صفحه ایمیل ها بروید)

smtpClient.UseDefaultCredentials = false;

smtpClient.Credentials = basicCredential;

MailMessage message = new MailMessage("آدرس ایمیل ساخته شده در هاست ", آدرس گیرنده);

message.Subject = "موضوع ایمیل";

string body = "<div style='background-color:#e2dede;width:80%;border-radius:10px 10px 10px 10px;'><div style='margin-left:10px;color:black'><br/> Dear Valuable User ( " + dataset.Tables["TbL_UserTemp"].Rows[0][2].ToString() + "." + dataset.Tables["TbL_UserTemp"].Rows[0][0].ToString() + " )";

body += "<br /><a href = 'http://آدرس سایت شما/ActiveUser.aspx?ActivationCode=" + activationCode + "'>Click here to activate your account.</a>";

body += "<br />if you dont want to activate your account, you don't need to do any thing the account will be deleted automatically after two days if you don't activate the account. ";

message.Body = body;

message.IsBodyHtml = true;   //Set IsBodyHtml to true means you can send HTML email.

try

{

smtpClient.Send(message);

}

catch (Exception ex)

{

string str_alert1 = "<script>alert('" + ex.Message.ToString() + "');</script>";

Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", str_alert1, false);

}

در body بدنه پیام قرار می گیرد. فقط شما در جاهایی که از datatable استفاده شده است از طریق linq فیلد مورد نظر خود را بدست آورید

 

توضیح کد زیر:

<a href = 'http://آدرس سایت شما/ActiveUser.aspx?ActivationCode=" + activationCode + "'>Click here to activate your account.</a>";

در ایمیل با زدن روی این لینک ، مقدار activationCode به صفحه  ارسال می شود.

در صفحه ActiveUser.aspx ابتدا رکوردی را میخوانیم که کد فعال سلزی آن برابر activationCode باشد. سپس مقدار فیلد active این رکورد را true می کنیم.

کاربر مورد نظر فعال شد.

فایل های ضمیمه

کاربر سایت

jaafar

عضویت از 1393/06/25

  • یکشنبه 28 تیر 1394
  • 19:16

مرسی داداش خیلی لطف کردی

ولی متاسفانه فایل دان نمیشه jaafar.za65@gmail.com بی زحمت بفرست سر میلم

 
کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)