พึ่งเคยใช้งานครั้งแรกโปรดอ่านที่นี่! howtouse!
x
  • Register
หางานด้าน IT อยู่เหรอ?

จะตรวจสอบ Email ว่ามี Account นี้อยู่จริงๆ ได้อย่างไร ไม่ใช่กรอกมั่วเข้ามา (ใช้ในตอนสมัครสมาชิก)

+3 votes

กรณี สมัครสมาชิก บนหน้าเว็บ

สมมติว่า User กรอก Email มาผิด แล้วทำให้ ระบบไม่สามารถส่งอีเมลล์ เพื่อส่งลิงค์สำหรับการยืนยันได้
 


** กรณีนี้ไม่ใช่ รูปแบบ อีเมลล์ผิด เพราะเราเขียน Javascript ดักรูปแบบ ของอีเมลล์ไว้แล้ว เช่น [email protected] เท่านั้น

แต่เป็นจะรู้ได้อย่างไรว่า Email Account นี้มีอยู่จริงๆ

 

กรณีนี้อยากจะตรวจสอบอีเมลล์ที่ User กรอกเข้ามาก่อนว่า มีอยู่จริงหรือไม่ มีแนวคิหรือเทคนิค อะไรบ้างครับ

 

ที่ผมคิดไว้นะ ไม่รู้มันจะ หลายขั้นตอนไปรึป่าว ประมาณว่า

 

หลังจากที่ Validate ข้อมูลต่างๆ ตามที่ User กรอกเข้ามาผ่านหมดแล้ว

 

ให้ทดสอบส่งอีเมลล์ แจ้งไปยัง User ว่า "คุณได้ทำการสมัครสมาชิก...."

ถ้าหากส่งได้ ก็ทำการ INSERT ข้อมูลลงฐานข้อมูลไปตามเรื่อง ของเรา พร้อมกับส่ง Email อีกฉบับ ที่ส่งลิงค์ยืนยันการสมัครไป

สรุปคือ ถ้าผ่านหมด ระบบจะส่งอีเมลล์ไป 2 ครั้งติดๆ กัน

 

แต่ ถ้าหากส่งไม่ได้ ก็แจ้งเตือนกลับไปว่า ส่งไม่ได้ และไม่ทำการใดๆต่อ (ก็คือ สมัครไม่ได้)

 

มีเทคนิคอื่นอีกรึป่าวครับผม

 

ขอบคุณครับ

ถามเมื่อ May 15, 2012 in PHP & MySQL & Ajax โดย phanithanj (1,139 คะแนน)
   

3 Answers

+2 votes
อีกวิธี คือ เช็คโดเมนเนมครับ คือตัด เอาหลัง @ มาเช็ค หรือเขียนคำสั่งเพื่อ ping มหรือใช้ api ของ whois ว่าโดนเมนเนมดังกล่าวมีจริงหรือป่าว

น่าจะได้อีกระดับนึง ก่อนที่จะเก็บข้อมูล...
ตอบเมื่อ May 15, 2012 โดย T?m ?sk-maxim (447 คะแนน)
สมมติเข้ากรอกมาเป็น [email protected]

เช็ค hotmail.com คงไม่มีปัญหาใดๆแน่นอน

แต่ Acount xxxx เนี่ย มีปัญหาแน่นอนครับ
+1 vote
ผมแนะนำเป็น เขียนระบบส่งข้อมูลยืนยันการเป้นสมาชิกครับเป็นวิธีที่ง่ายแล้วคิดว่าดอเคที่สุดครับ และป้องกันคนกรอกมั่วได้ดีครับ เช็คยากครับขนาด CMS ที่พัฒนาทุกวันๆระบบใหญ่ขึ้นๆ ยังไม่มีระบบเช็คอีเมล์เลยเว้นแต่เช็คอีเมล์ซ้ำที่สมาชิกเคยสมัครในเว็บเราเท่านั้น เพราะจะให้ไปเชื่อมต่อกับฐานข้อมูลพวก hotmail gmail คงต้องใหญ่จริงๆ แต่ตัดปัญหาโดยการให้สมาชิกยืนยันตัวตนผ่านเมล์แทนให้ระบบส่งลิงค์ยืนยันถ้าใครยังไม่ยืนยันจะเข้าใช้งานไม่ได้ คิดว่าเพอเฟคที่สุดครับ ^___^
ตอบเมื่อ May 15, 2012 โดย Nattawut Sangvichai (145 คะแนน)
งง ครับ

สรุปว่า ???

"ตัดปัญหาโดยการให้สมาชิกยืนยันตัวตนผ่านเมล์แทนให้ระบบส่งลิงค์ยืนยันถ้าใครยังไม่ยืนยันจะเข้าใช้งานไม่ได้ คิดว่าเพอเฟคที่สุดครับ"

??
เขียนระบบยืนยันการสมัครสมาชิกน่ะครับ
สมัครสมาชิก > ยืนยันตัวตนในอีเมลล์ที่กรอกตอนสมัคร
ยืนยันตัวตนในอีเมลล์ที่กรอกตอนสมัคร นี่หมายถึง อย่างไรครับ
+5 votes
พอสมัครก็ส่ง email ไปหา ให้ activate กับ link พร้อม token ที่ส่งไปให้ก็พอแล้วครับ
ถ้า activate ได้ก็แสดงว่า เค้าเปิด email อ่านได้ แล้ว click link เพื่อ activate

เรื่องจะมา check ว่าส่งได้ไหม ณ เวลาที่สมัครทำไม่ได้ครับ มัน check ได้แค่ว่าเราส่งไปยัง SMTP server ฝั่งเราได้ไหมแค่นั้น mail ที่ส่งออกต้องรอ queue เพื่อส่งไป ถ้า queue ว่างก็อาจจะส่งได้ทันที แต่ถ้าไม่มี email ที่รับมันจะส่ง email กลับซึ่งก็ต้องไปเข้า mail queue ของอีกฝั่งเหมือนกัน
ตอบเมื่อ May 15, 2012 โดย Krurkrit Phoosakul (1,174 คะแนน)
แล้วถ้า email ไม่ส่งไปล่ะครับ ไม่ว่าจะด้วยสาเหตุอะไรก็แล้วแต่

เขาจะ activate ยืนยันการสมัครได้อย่างไร ??


สรุปคือ ช่างมัน จะส่งได้หรือไม่ได้ ??

คิดไว้อีกกรณีนึงว่า ถ้าไม่ activate ใน n วัน
จะลบ ข้อมูลออกจาก DB นั้นทันที
ก็ยืนยันไม่ได้ ก็ต้องมีหน้าให้ resend activate link ใหม่ จนกว่า email จะส่งได้ (token ไม่เปลี่ยนนะครับใน process นี้ เพราะที่ user ไม่ได้ email อาจจะ delay นานมาก) คือคนสมัครจะรู้เองว่า email ส่งถึงเค้าไหม ฝั่งเราไม่รู้ (ยกเว้น พวก HTML email ที่ใส่ javascript ให้ส่งข้อมูลมาบอกตอนเปิดอ่าน email)
แต่ต้องมี schedule task มา clear account ที่ไม่ได้ activate ทิ้ง

Related questions

+1 vote
1 คำตอบ
413 views ถามเมื่อ Jun 29, 2012 in ASP.net โดย PanCS13 (112 คะแนน)
0 votes
0 คำตอบ
255 views ถามเมื่อ Mar 10, 2014 in Arduino โดย Yrrubbub Tresarpeul (106 คะแนน)
0 votes
1 คำตอบ
805 views ถามเมื่อ Oct 6, 2012 in PHP & MySQL & Ajax โดย Eggvalue (1,179 คะแนน)
...