• 0
ekseer

مثال لفحص حقل البريد الإلكتروني

سؤال

السلام عليكم ورحمة الله وبركاته

هذا مثال يعتمد على الكود البرمجي ( دوال النصوص )

لكي يفحص حقل مخصص لإدخال بريد الكتروني .

بطبيعة الحال ( البريد الالكتروني ) يتميز عن أي سلسلة نصية أخرى بوجود الـ @

لكن السؤال هل يتم الاعتماد على ذلك فقط ؟

بمعنى أن أجعل البرنامج يفحص وجود الـ @ اذا كانت موجوده في الحقل فالحقل صحيح وان لم توجد

فالحقل خطأ ( وهذا بالتأكيد خطأ فليس كل سلسلة نصية تحتوى على @ هي بريد صحيح ؟!!

تأملوا هذه الإمثلة

[email protected]

[email protected]@.hgt

[email protected]

[email protected]

هل يوجد في هذه الامثلة بريد صحيح .. أكيد لا .. اذا كيف يتم الفحص ؟

في مثالي المرفق جعلت الفحص على الامور التالية :

حرف البريد اللي هو الآأأت @ إن وجد ننتقل للخطوة التالية

الدوت اللي هي النقطة الفاصلة بين لاحقة المستضيف واسم الدومين أن وجدت ننتقل للتالي

الاسم الاخير للدومين ( Com ,net , biz,org , edu ) ......... الخ أن كانت صحيحة ينتقل للتالي

طول الاسم الاول للبريد من البداية الى الحرف @ أقل من 3 احرف بريد غير صحيح ........ ان كان اكبر من 3 بريد صحيح

وبهذا تضمن أن الادخال صحيح بنسبة عالية أو مرضية .. والمثال قابل للتطوير ( والجرح والتعديل )

أرجو أن يكون فيه الفائدة لكل من اطلع عليه ..... وتقبلوا تحياتي الطيبة.

أخوكم

EKSEER

EK_Checkmail.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

13 إجابة على هذا السؤال .

  • 0

اخي اكسير بارك الله فيك ونفع بعلمك

اكيد سنستفيد من هذا العمل الرائع من خبير متميز طالما اتحفنا بابداعاته

شكراً جزيلاً لك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا أخي إكسير على المثال وأفكارك الطيبة

لقد قمت بالإستفادة من أفكاركم في المثال وعملت كود آخر مختصر ، يبدو لي أنه يؤدي نفس الغرض

فقط نقطة واحدة غير متأكد منها وهي الحروف المقبولة في العناوين

والتي حصرتها أنا بالكود للحروف :

A-Z و a-z و 0-9 و _

Checkmail2.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الأخ يوسف / وفقك الله ياغالي

الروعة وجودك في موضوعي .. الله يجزاك خير

-----------------------------------------------------------

الأخ ACCESSNA

الحقيقة .. كودك فعال من النوع السهل الممتنع

وفقك الله .. يسعدني جدا .. تمحيصكك وأضافاتك المتميزة

هنيئا لنا بوجود أمثالك ياغالي .. أما من ناحية النقطة التي ذكرت ففعلا

فأنت حصرت الكود في الحروف الابجدية بالاضافة للارقام .. لكن ماذا لو كان البريد هكذا

(asad)@hotmail.com

طبعا لن يقبله البرنامج - .. لكن كما قلت المثال قابل للتطوير

وفقك الله ياغالي

EKSEER

تم تعديل بواسطه ekseer
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كما تعودنا دائما اكسير التحقق..

سبق وان طرحت مثالا في حل لاحد التساؤلات.. ولكن لم يكن بهذا الاتقان والشمولية..

بارك الله فيكم جميعا..

همام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

ما شاء الله عليكم الأخ أكسير والأخ أكسسنا

مبدعين ,

الكودين غاية في الروعة والإتقان

الله يعطيكم العافية

والسلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم أخي همام

كما تعودنا دائما اكسير التحقق..

سبق وان طرحت مثالا في حل لاحد التساؤلات.. ولكن لم يكن بهذا الاتقان والشمولية..

بارك الله فيكم جميعا..

همام

ياغالي أنا شاهدت ذلك الموضوع وأنت أجبت تماما كما طلب السائل

أنا تفحصت المشاركة .. السائل طلب منك أن يكون الفحص على أساس قناع لـ @

وأنت أجبت بما طلب - ولا تعتقد أن هذا الموضوع هو ردا على ذلك .. انما توضيحا للجميع

بما فيهم الاخ الذي سألك أن طريقة الفحص يجب الا تعتمد على الـ @ فقط

وسيبقى همام .. علما من أعلام أكسس في هذا المنتدى

أخي عمار زايد

وفقك الله أخي ورعاك .. ومبروك عليك الإشراف في المنتدى الشقيق المجاور تستاهل

كل خير وأنت من خيرة من يمسك الاشراف .. ليس يعلمك فقط وانما بسمو أخلاقك .. وتميزك

أخوكم

EKSEER

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

الأخ أكسير بارك الله فيك , وأدعو الله أن أكون كما تقول , وأن يجمعنا في مستقر رحمته كما جمعنا في الدنيا , وجزاك الله خيراً على العلم والمنفعة المواضيع المتميزة التي تقدمها لنا التي هي بحق أكسير وخلاصة علم وخبرة وتجربة طويلة,

الله يعطيك العافية والسلام عليكم ورحمة الله وبركاته

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

بارك الله فيكم اخواني

موضوع اكثر من ممتاز

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

للأفادة فقط :

أنا أستعمل الكود التالى فى الـ Classsic VB ( أخو الـ VBA ) :

Private Function IsValidEmailAddress(EmailAddress As String) As Boolean
'---------------------------------------------------------------------------------------
' Procedure : IsValidEmailAddress
' DateTime : 15/09/2006 11:17:58 PM
' Author : Mohammed Sayed (msayed2004) - www.Arabteam2000-forums.com
' Purpose : Processes Strings to ensure that it is in a valid e-mail address format.
' Resources : http://en.wikipedia.org/wiki/E-mail_address
' & others.
'---------------------------------------------------------------------------------------
'
Dim POS As Integer
Dim AtCnt As String, LocalPart As String

EmailAddress = Trim$(EmailAddress)

'Detect general format :
If Not EmailAddress Like "*@??*.??*" Then IsValidEmailAddress = False: Exit Function

'Only one @ is allowed :
AtCnt = Replace(EmailAddress, "@", "")
If Len(AtCnt) <> Len(EmailAddress) - 1 Then IsValidEmailAddress = False: Exit Function

'No spaces :
POS = InStr(EmailAddress, " ")
If POS > 0 Then IsValidEmailAddress = False: Exit Function

'No backslash :
POS = InStr(EmailAddress, "\")
If POS > 0 Then IsValidEmailAddress = False: Exit Function

'Local part shoud not contain "." as the first or the last character :
POS = InStr(EmailAddress, "@")
LocalPart = Left$(EmailAddress, POS - 1)
If Right$(LocalPart, 1) = "." Or Left$(LocalPart, 1) = "." Then IsValidEmailAddress = False: Exit Function

'---------------------------
'Not sure about the following characters (case sensitive) :
' × ¿ [ ] < >
' Notice ¿ not ?
'---------------------------

IsValidEmailAddress = True
End Function

مثال :

Private Sub txtEmail_Validate(Cancel As Boolean)
If IsValidEmailAddress(txtEmail.Text) = False Then
Cancel = True
MsgBox "Invalid email format !", vbCritical + vbApplicationModal, "Error...!"
End If
End Sub

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي الكريم ............. Mohammed Sayed

أهلا وسهلا بك .. نورت قسم الاكسس

شكرا لإضافتك المفيدة إن شاء الله تعالى

EKSEER

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بعد ما كتبت مشاركتى اللى فاتت فكرت فى أن الأعتماد على الـ Regular Expression هيكون أفضل , و فعلا لقيت Pattern كويس ليها هنا : http://regexlib.com/REDetails.aspx?regexp_id=328

توجد مكتبة بالنظام للتعامل مع الـ Regular Expression و لكن لم يسبق لى التعامل معها و هى Microsoft VBScript Regular Expressions 5.5 , يمكن أضافتها كـ Reference فى المشاريع.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بس احببت ان اضع الطريقة التي تكلم عنها الاخ محمد وهي سهلة جدا

Dim Email  As String
Email = "[email protected]"

Dim RegeX As VBScript_RegExp_55.RegExp
Set RegeX = New RegExp

' والكود الطويل ايضا من الموقع المشار اليه في الاعلى يعني ما كتبته

RegeX.Pattern = "^((\''[^\''\f\n\r\t\v\b]+\'')|([\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]" & _
"+(\.[\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?" & _
"[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?" & _
"[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?" & _
"[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))" & _
"\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$"

RegeX.IgnoreCase = True

If RegeX.Test(Email) Then

MsgBox " Good E-mail"
Else
MsgBox " Bad E-mail"
End If
Set RegeX = Nothing

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .