PDA

View Full Version : سوال: ارسال لینک فعال سازی به ایمیل



reza_moon_mordad
چهارشنبه 01 آبان 1387, 14:13 عصر
با سلام و خسته نباشید من یک وب فرم دارم میخوام وقتی کاربر رجیستر کرد یک لینک فعال سازی به ایمیلش به صورت خودکار فرستاده بشه و بعد از کلیک کاربر روی لینک حسابش فعال بشه (asp.net,vb.net)
لطفا راهنمایی بفرمایید
ممنون

milade
چهارشنبه 01 آبان 1387, 14:41 عصر
سلام
توی جدولت یه فیلد می زاری به نام "اکتیو" بعد یه مقدار رندم بده بهش در موقع ثبت نام حالا وقتی ایمیل رو فرستادی و کاربر اومد به صفحه اکتیو کردن چک کن ببین ایمیل و اون کد اکتیو می خونه یا نه؟
همین موفق باشی

reza_moon_mordad
چهارشنبه 01 آبان 1387, 14:47 عصر
مرسی از توجه شما اگه یه نمونه برنامه کوچیک یا کد باشه ممنون میشم چون من تازه کارم
باز هم متشکرم

sahele_sheni
چهارشنبه 01 آبان 1387, 14:54 عصر
فیلدهای Email و Hashedemail و Status رو توی Table داشته باش
وقتی اطلاعات کاربر رو گرفتی ایمیلش رو هش کن (ترجیحا با SHA1 ) و 10 یا 15 کارکتر از هش شده ایمیل رو توی Table ذخیره کن . Email رو هم ذخیره کن و وضعیت Status رو False قرار بده ....
توی لینکی که به ایمیل کاربر میفرستی هش شده ایمیل رو بزار توی Querystring
حالا وقتی کاربرت روی لینک کلیک کرد کافیه QueryString رو بخونی و مقدارStatus سطری رو که اون هش شده میل داخلش هست True کنی....

reza_moon_mordad
چهارشنبه 01 آبان 1387, 15:12 عصر
مرسی از حسن توجه شما دوستان
اگه یه نمونه باشه ممنون میشم

milade
چهارشنبه 01 آبان 1387, 15:28 عصر
نمونه چی دوست عزیز در مورد کدوم قسمت؟

reza_moon_mordad
چهارشنبه 01 آبان 1387, 15:33 عصر
یه نمونه برنامه کوچیک که ارسال لینک فعال سازی داشته باشه
خیلی خیلی ممنونم

sahele_sheni
چهارشنبه 01 آبان 1387, 15:43 عصر
Dim smtp As New System.Net.Mail.SmtpClient("localhost")
Dim mail As New System.Net.Mail.MailMessage("sender@yahoo.com", emailbox.Text)
mail.Subject = "تایید ثبت نام"
mail.IsBodyHtml = True
mail.Body = "http://www.YourSite.com/Activation.aspx?id=" & Left(hashedmail, 10)
smtp.Send(mail)

دوست عزیز بهتره اول در مورد میل زدن Search کنی

reza_moon_mordad
چهارشنبه 01 آبان 1387, 15:52 عصر
در مورد میل مشکلی ندارم در این مورد خاص که گفتم اشکال دارم چون کار نکردم و ندیدم همچین موردی حالا اگه یه سورس کوچیکم باشه مشکلم حل میشه
ممنون از توجه همه شما عزیزان

sahele_sheni
چهارشنبه 01 آبان 1387, 16:27 عصر
Dim hashedmail As String = Request.QueryString("id")
Dim dataset As New Maindataset
Dim adapter As New MaindatasetTableAdapters.tblEnrolledStudentsTableA dapter
adapter.updatestudent(True, hashedmail)

از QueryString میخونی اونی رو که گفتم و با یه SP فیلد Status رو True میکنی

reza_moon_mordad
پنج شنبه 02 آبان 1387, 08:18 صبح
مرسی از شما دقیق متوجه نشدم باید چه کار کنم اکه دارین یه برنامه با دیتابیس ممنون میشم
میشه کمی بیشتر توضیح بدین
متشکر

milade
پنج شنبه 02 آبان 1387, 12:24 عصر
ببین عزیز من :
جدولت حتما باید شامل سه فیلد ایمیل ، کد اکتیو و وضعیت اکتیو باشه
حالا وقتی ثبت نام کرد رو که گفتم ولی بعد از ثبت نام اون فیلد وضعیت رو true کن و دیگه تمام کاربرفعال شد
موفق باشی

reza_moon_mordad
یک شنبه 05 آبان 1387, 08:30 صبح
کسی نیست بتونه کامل تمام مراحل رو توضیح بده یا یه نمونه برنامه کوچیک باشه واسه درک بهتر
چرا از آقایان مدیران خبری نیست؟

IranVisual
یک شنبه 05 آبان 1387, 09:03 صبح
به نظر من توی همون بانک که که ثبت نام میشن یه فیلد اضافه کن از نوع Boolean بعد لینک صفحه به انضمام نام کاربری که در یک QueryString قرار میگیره رو به ایمیل بفرست
بعد یه شرط تو صفحه بزار که اگه این کاربر با لینک که شما براش فرستادید وارد شد فیلدی که از نوع Boolean تعریف کردید برابر با 1 بشه یعنی True یا فعال بشه اگه وارد هم نشد که برابر با 0 با False باقی میمونه یعنی لینک فعال نشده
اگه بازم مشکلی هست بگید همراه با مثال بفرستم

reza_moon_mordad
یک شنبه 05 آبان 1387, 09:12 صبح
واقعا متشکرم از شما
اگه یه برنامه به همین صورت که می فرمایید باشه ممنون میشم

reza_moon_mordad
یک شنبه 05 آبان 1387, 11:21 صبح
از دوستان خواهش میکنم کمک کنند خیلی احتیاج دارم به این برنامه

milade
یک شنبه 05 آبان 1387, 11:56 صبح
فکر نکنم کسی سرش این قدر خلوت باشه
توی سایت جستجو کن مطالب زیادی هست که با کمی تغییر به هدفت می رسی
موفق باشی

reza_moon_mordad
یک شنبه 05 آبان 1387, 12:04 عصر
جستجو کردم عزیزم
من یه چیز دیگه فکر میکنم که اعضای این سایت در اون حدی که ادعا میکنند نیستند در غیر این صورت یک نفر پیدا میشد که...

milade
یک شنبه 05 آبان 1387, 12:20 عصر
دستت درد نکنه
ببین عزیز من قبلا اقای راد به من می گفت خودت کار کن اما من می گفتم نه! و توی دلم می گفتم خوب این انگار نمی خواد ما به هدفمون برسیم و ...
اما حالا فهمیدم که نه اگه بخوم به یه چیز برسم باید خودم تلاش کنم و اماده خوری(حتی اگه گیر باشم به دردم نمی خوره)
خوب عزیز شاید تا فردا یه کدی بهت دادم که بهم نگی حسود!
موفق باشی , فکر کن به حرفام , بای

reza_moon_mordad
یک شنبه 05 آبان 1387, 12:37 عصر
صحبت اماده خوری نیست اقا من عرض کردم قبلا هم هیچ پیش زمینه ای در این زمینه ندارم و احتیاج به کمک و از نوشته های دوستان هم که لطف کردن و جواب بنده رو دادن چیزی متوجه نشدم گفتم یه نمونه باشه که دقیق ببینم چه باید کرد

IranVisual
یک شنبه 05 آبان 1387, 12:56 عصر
به همین زودی برات میزارم

mostafa_sgh
یک شنبه 05 آبان 1387, 13:37 عصر
برای اطلاعات بیشتر به این لینک مراجعه فرمائید ....

http://barnamenevis.org/forum/showthread.php?p=621741#post621741

reza_moon_mordad
یک شنبه 05 آبان 1387, 15:16 عصر
مرسی از توضیحات خوبتون ولی کامل نگفتین
یعنی شما میگین همه کارها باید دستی انجام بشه؟
هیچ راهی نیست که تمام این کارها اتوماتیک انجام بشه؟
میشه کامل تر توضیح بدین؟

mostafa_sgh
یک شنبه 05 آبان 1387, 16:11 عصر
شما برا یه بارم شده غذای بالا رو درست کنید ، بعد متوجه میشید که اتوماتیک هست یا نه !

شوخی : راستی آشپزی بلدید ؟:لبخند::چشمک:

milade
دوشنبه 06 آبان 1387, 04:29 صبح
گفتم که یه توضیح مختصر میدم:
1-ارسال ایمیل:
تولید کد رندم:
dim x=random(1234567,2345678)
می تونی از کلاس دیگه ای استفاده کنی
اپ به بانک :
"update tbluser set active='1234567',user='milad',mail='info@youruser. com',actived='true'"
ارسال ایمیل هم که متن فعال سازی این باشه:
http://www.xxx.com/active.aspx?u=milad&a=1234567
و صفحه ای به نام active.aspx :
دستور شناسایی:

select user,active from tbluser where user='milad'
حالا که اطلاعات رو بیرون کشیدی چک کن ببین ایا کد اکتیو برابر با a هست یا نه:

if dr("active)=request("a") then
dim u="update tbluser set actived='true' where user='milad'"
else
error
end if
تمام !
موفق باشی

reza_moon_mordad
دوشنبه 06 آبان 1387, 09:23 صبح
برای اطلاعات بیشتر به این لینک مراجعه فرمائید ....

http://barnamenevis.org/forum/showthread.php?p=621741#post621741

داداش دمت گرم بازم مرام بچه های پایین شهر
من با vb کار میکنم کد هاتو کانورت کردم ولی یه چند تایی ارور میده هر کار میکنم درست نمیشه
سورس برنامه رو بزارم لطف میکنی یه نگاهی بندازی مشکلشو بگی به من؟
منتظر جوابم

mostafa_sgh
دوشنبه 06 آبان 1387, 10:57 صبح
سلام دوست عزیز

کد VB.Net هم به اون بخش اضافه شد.

البته باید خدمتتون عرض کنم ، 2 خط از کدها یه موردی داشتند که بر طرف شدند. :لبخندساده:

http://barnamenevis.org/forum/showth...741#post621741 (http://barnamenevis.org/forum/showthread.php?p=621741#post621741)

reza_moon_mordad
سه شنبه 07 آبان 1387, 09:31 صبح
سلام
از اساتید محترم در خواست دارم این برنامه رو ببینند مشکلشو بفرمایند ممنون میشم
دانلود از اینجا (http://mypnu.persiangig.ir/other/Login.rar)
با تشکر

mostafa_sgh
سه شنبه 07 آبان 1387, 14:18 عصر
سلام دوست عزیز

سعی کنید مطالب رو با دقت مطالعه و اقدامات گفته شده را بدرستی انجام دهید .

به موارد زیر دقت کنید ....

اصلاح :

آدرس Activate :


Dim activeLink As String = "http://www.mysite.com/ActiveUser.aspx?uid=" + accountKey


ساخت 2 فیلد گفته شده در دیتابیس :



Cmd.CommandText = "Insert Into tblUser (Fname,Lname,Uname,Pass,Mail,ActiveKey,Status) Values (@P1,@P2,@P3,@P4,@P5,@ActiveKey,@Status)"
Cmd.Parameters.AddWithValue("@P1", txtFirstName.Text)
Cmd.Parameters.AddWithValue("@P2", txtLastName.Text)
Cmd.Parameters.AddWithValue("@P3", txtUname.Text)
Cmd.Parameters.AddWithValue("@P4", txtPass.Text)
Cmd.Parameters.AddWithValue("@P5", txtMail.Text)
Cmd.Parameters.AddWithValue("ActiveKey", accountKey)
Cmd.Parameters.AddWithValue("Status", False)


اصلاح تنظیمات مربوط به ارسال ایمیل برای کامپیوتر محلی :


Dim smtp As New SmtpClient("localhost")


اصلاح تنظیمات مربوط به ارسال ایمیل برای هاست


Dim smtp As New SmtpClient("mail.domain.com")
Dim perm As New System.Net.NetworkCredential("account@domain.com", "password")
smtp.Credentials = perm;


تغییر آدرس فایل Template


Dim sr As New IO.StreamReader(Server.MapPath("~/ActiveMail.htm"))

reza_moon_mordad
شنبه 11 آبان 1387, 11:26 صبح
سلام
من تمام کارها رو اتجام دادم اما متاسفانه لینک کامل و درستی به میل ارسال نمیشود
لطفا راهنمایی بفرمایید.
متشکرم

reza_moon_mordad
شنبه 11 آبان 1387, 15:17 عصر
یعنی بعد از 11 روز تمام هیچ کس نیست که بتونه یه توضیح کاملی بده
یعنی واقعا کسی نمیدونه یا نمی خواد علمشو در اختیار دیگران بگذاره
در هر صورت اگه این فروم برای کمک به دیگران و ترویج علم هست فکر میکنم یه وقتایی هم خودتونو جای دیگران بزارین
به امید موفقیت برای همه

ahnsolution
شنبه 11 آبان 1387, 15:30 عصر
سلام دوستان عزیز
به این لینک سری بزنید
مصطفی عزیز کدش رو به صورت کامل گذاشته و درست هم کار میکنه

http://barnamenevis.org/forum/showthread.php?t=128675

شاد و تندرست باشید.

reza_moon_mordad
یک شنبه 12 آبان 1387, 08:27 صبح
آقا مرسی که شما حداقل یه جوابی دادی....
من هم از داداش مصطفی الگو گرفتم ولی میل حاوی لینک نیست و لینک درست ارسال نمیشه

mostafa_sgh
یک شنبه 12 آبان 1387, 11:57 صبح
سلام دوست عزیز

ممنون از لطفتون ...

تو پروژه قبلی تون که در بالا گذاشتید ، مشکلات موجود در پست 30 مطرح شد

اگه امکان داره کد هاتونو اینجا بزارید ، تا من و دوستان راحت تر بتونیم کمک کنیم ....

reza_moon_mordad
یک شنبه 12 آبان 1387, 12:26 عصر
این هم LOGIN (http://mypnu.persiangig.com/other/Login.rar)
بازم دم شما گرم آقا مصطفی

reza_moon_mordad
یک شنبه 12 آبان 1387, 14:37 عصر
سلام
تمام کارا انجام میشه یعنی میل رو میفرسته لینک هم درسته اما وقتی روی لینک کلیک میکنی اکتیو نمیشه نمی دونم چرا؟
برنامه رو میزارم اینجا اساتید ببینن راهنمایی کنن
ممنون
این هم از لینک برنامه Login (http://mypnu.persiangig.com/other/Login.rar)

mostafa_sgh
یک شنبه 12 آبان 1387, 14:49 عصر
دوست عزیز

سعی کنید کدهاتون رو به هنگام برخورد با مشکل ، با دقت بررسی کنید .

این خط رو اصلاح کنید :



Public activeLink As String = "http://localhost:1498/activeuser.aspx" + accountKey


صحیح :


Public activeLink As String = "http://localhost:1498/activeuser.aspx?Uname= (http://localhost:1498/activeuser.aspx?Uname=)" + accountKey

reza_moon_mordad
یک شنبه 12 آبان 1387, 15:09 عصر
اون خط درست بوده عزیز اشتباه تغییرش دادم الان درسته مشکلی نداره لینک هم به میل کاربر ارسال میشه روی لینک هم که کلیک بشه به صفحه activeuser.aspx میره اما حساب فعال نمیشه یا status =True نمیشه
الان تنها مشکل همینه
ممنون