דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. ולידציה של מיילים

ולידציה של מיילים

מתוזמן נעוץ נעול הועבר ארכיון code613m
23 פוסטים 4 כותבים 1.4k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • A מנותק
    A מנותק
    avr416
    כתב ב נערך לאחרונה על ידי
    #9

    כתבתי כך:

    static void Main(string[] args)
            {
                var b = ValidationEmail.IsValidEmail("אברהם@אברהם");
                Console.WriteLine(b);
            }
    

    וקיבלתי true.
    והקוד של המתודה:

    public static bool IsValidEmail(string email)
            {
                try
                {
                    MailAddress ma = new MailAddress(email);
                    return ma.Address == email;
                }
                catch
                {
                    return false;
                }
            }
    

    מעניין איך אתה מימשת? ומדוע יש הבדלים..

    פורסם במקור בפורום CODE613 ב30/08/2015 18:09 (+03:00)

    תגובה 1 תגובה אחרונה
    0
    • רחמיםר מנותק
      רחמיםר מנותק
      רחמים מורחק
      כתב ב נערך לאחרונה על ידי
      #10

      הנה

      ValidationEmail.rar

      פורסם במקור בפורום CODE613 ב30/08/2015 18:29 (+03:00)

      תגובה 1 תגובה אחרונה
      0
      • A מנותק
        A מנותק
        avr416
        כתב ב נערך לאחרונה על ידי
        #11

        @רחמים

        הנה

        ממש מוזר :?: :?:
        אני מריץ את הקובץ שלך אצלי במחשב (ויזואל סטודיו 2015)
        והתוצאה שאני מקבל בקונסול היא: True
        ללא שום שגיאה..
        אולי יש הבדל בין הגרסאות של הפריימוורק שלנו כך שבחדשים יותר זה נהיה חוקי???
        (או שאני מקשקש שטויות...)

        פורסם במקור בפורום CODE613 ב30/08/2015 18:53 (+03:00)

        תגובה 1 תגובה אחרונה
        0
        • רחמיםר מנותק
          רחמיםר מנותק
          רחמים מורחק
          כתב ב נערך לאחרונה על ידי
          #12

          יכול להיות
          לי מותקן דוטנט 4
          אצלך מן הסתם 4.6

          פורסם במקור בפורום CODE613 ב30/08/2015 19:22 (+03:00)

          תגובה 1 תגובה אחרונה
          0
          • רחמיםר מנותק
            רחמיםר מנותק
            רחמים מורחק
            כתב ב נערך לאחרונה על ידי
            #13

            עשיתי דיבוג ברפלקטור בדוטנט 4
            וכן דיבוג ברפלקטור בדוטנט 4.6 במחשב וירטואלי להלן ההבדלים

            הפונקציה שזורקת את החריג בדוטנט 4 היא זו:

            internal static int ReadReverse(string data, int index)
            		{
            			int num = index;
            			while (0 <= index && (int)data[index] <= MailBnfHelper.Ascii7bitMaxValue && (data[index] == MailBnfHelper.Dot || MailBnfHelper.Atext[(int)data[index]]))
            			{
            				index--;
            			}
            			if (num == index)
            			{
            				throw new FormatException(SR.GetString("MailHeaderFieldInvalidCharacter", new object[]
            				{
            					data[index]
            				}));
            			}
            			if (data[index + 1] == MailBnfHelper.Dot)
            			{
            				throw new FormatException(SR.GetString("MailHeaderFieldInvalidCharacter", new object[]
            				{
            					MailBnfHelper.Dot
            				}));
            			}
            			return index;
            		}
            

            בדוטנט 4.6 הכל אותו דבר חוץ מהשורה באה:

            while (0 <= index && ((int)data[index] > MailBnfHelper.Ascii7bitMaxValue || data[index] == MailBnfHelper.Dot || MailBnfHelper.Atext[(int)data[index]]))
            

            יש פה הוספה, החלפה, החלפה, ומחיקה.

            ולכן הוא מחזיר אמת במקום שקר
            כך שלסיכום אכן יש פה באג לכאורא בדוטנט החדש...

            פורסם במקור בפורום CODE613 ב30/08/2015 19:46 (+03:00)

            תגובה 1 תגובה אחרונה
            1
            • A מנותק
              A מנותק
              avr416
              כתב ב נערך לאחרונה על ידי
              #14

              יש דרך לעדכן אותם בבאג הזה???

              וחוצמיזה לא בדיוק הבנתי מה הולך בקוד הזה :shock: :shock:
              מה בדיוק הוא מנסה לעשות..
              אני כנראה ממש בור ועם הארץ.. אשמח אם יהיה לך כוח להסביר..
              או שבשביל זה צריך לקרוא את הקוד של הפריימוורק??

              פורסם במקור בפורום CODE613 ב30/08/2015 20:41 (+03:00)

              תגובה 1 תגובה אחרונה
              0
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                כתב ב נערך לאחרונה על ידי
                #15

                רחמים, אני משנה את הTarget Type לדוט נט 4, ועדיין אין חריג, והתוצאה חיובית...

                פורסם במקור בפורום CODE613 ב30/08/2015 21:24 (+03:00)

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה
                0
                • רחמיםר מנותק
                  רחמיםר מנותק
                  רחמים מורחק
                  כתב ב נערך לאחרונה על ידי
                  #16

                  נכון, כי בפועל ה DLL של 4.6 הוא זה שרץ
                  אני עשיתי יותר מזה, קימפלתי את התוכנה במחשב הרגיל בדוטנט 4 ואז העתקתי אותו לוירטואלי לדוטנט 4.6 והוא החזיר אמת.

                  פורסם במקור בפורום CODE613 ב30/08/2015 21:26 (+03:00)

                  תגובה 1 תגובה אחרונה
                  0
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    כתב ב נערך לאחרונה על ידי
                    #17

                    ב3.5 אכן יש חריג...

                    פורסם במקור בפורום CODE613 ב30/08/2015 21:31 (+03:00)

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    תגובה 1 תגובה אחרונה
                    0
                    • dovidD מנותק
                      dovidD מנותק
                      dovid ניהול
                      כתב ב נערך לאחרונה על ידי
                      #18

                      תשמעו, זה לא באג, זה פשוט יכול להיות תקני... לפי התקן SMTPUTF8 (שכרגע אף אחד לא חושב לממש אותו כנראה) אז אפשר... ראו כאן: https://en.wikipedia.org/wiki/International_email.

                      פורסם במקור בפורום CODE613 ב30/08/2015 21:47 (+03:00)

                      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                      בכל נושא אפשר ליצור קשר dovid@tchumim.com

                      תגובה 1 תגובה אחרונה
                      1
                      • רחמיםר מנותק
                        רחמיםר מנותק
                        רחמים מורחק
                        כתב ב נערך לאחרונה על ידי
                        #19

                        לא הבנתי אותך, גם לפי התקן הזה יש לאחר השטרודל מילה ואז נקודה ועוד מילה

                        פורסם במקור בפורום CODE613 ב30/08/2015 21:50 (+03:00)

                        תגובה 1 תגובה אחרונה
                        0
                        • dovidD מנותק
                          dovidD מנותק
                          dovid ניהול
                          כתב ב נערך לאחרונה על ידי
                          #20

                          @רחמים

                          לא הבנתי אותך, גם לפי התקן הזה יש לאחר השטרודל מילה ואז נקודה ועוד מילה

                          לא, זה לא נכון בשום תקן. מעשית אתה צודק, אבל דוט נט לא יכול לעשות לך שגיאה כי "כמעט בטוח" שזה טעות... תיאורטית יכולה להיות לך כתובת מקומית ללא דומיין עילי (מעשי ברשתות פנימיות ועוד).

                          פורסם במקור בפורום CODE613 ב31/08/2015 12:19 (+03:00)

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

                          תגובה 1 תגובה אחרונה
                          2
                          • רחמיםר מנותק
                            רחמיםר מנותק
                            רחמים מורחק
                            כתב ב נערך לאחרונה על ידי
                            #21

                            נראה לי שאתה צודק, פשוט בדוטנט החדש כל תו ביוניקוד הוא חוקי בכתובת המייל
                            הנה הקוד מקור, שים לב להערות

                            internal static int ReadReverse(string data, int index)
                                    {
                                        Debug.Assert(0 <= index && index < data.Length, "index was outside the bounds of the string: " + index);
                            
                                        int startIndex = index;
                                        // Scan for the first invalid chars (including whitespace)
                                        for ( ; 0 <= index; index--)
                                        {
                                            if (data[index] <= MailBnfHelper.Ascii7bitMaxValue // Any Unicode allowed
                                             && (data[index] != MailBnfHelper.Dot && !MailBnfHelper.Atext[data[index]])) // Invalid char
                                            {
                                                break;
                                            }
                                        }
                            
                                        // Check for empty/invalid dot-atom
                                        if (startIndex == index)
                                        {
                                            throw new FormatException(SR.GetString(SR.MailHeaderFieldInvalidCharacter, data[index]));
                                        }
                                        // Check for leading dot
                                        else if (data[index + 1] == MailBnfHelper.Dot)
                                        {
                                            throw new FormatException(SR.GetString(SR.MailHeaderFieldInvalidCharacter, MailBnfHelper.Dot));
                                        }
                                        return index;
                                    }
                            

                            פורסם במקור בפורום CODE613 ב31/08/2015 12:55 (+03:00)

                            תגובה 1 תגובה אחרונה
                            1
                            • א מנותק
                              א מנותק
                              ארכיטקט
                              כתב ב נערך לאחרונה על ידי
                              #22

                              אגב ריפרופי הזכרת לי את זה
                              http://tchumim.com/topic/456
                              לא יודע אם זה עוזר לך או לא. אבל זה מעניין...

                              פורסם במקור בפורום CODE613 ב31/08/2015 22:03 (+03:00)

                              אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

                              תגובה 1 תגובה אחרונה
                              0
                              • A מנותק
                                A מנותק
                                avr416
                                כתב ב נערך לאחרונה על ידי
                                #23

                                @ארכיטקט

                                אגב ריפרופי הזכרת לי את זה
                                http://tchumim.com/topic/456
                                לא יודע אם זה עוזר לך או לא. אבל זה מעניין...

                                ראיתי את זה.
                                זה הדבר היחיד שמצאתי בפורום בנושא של ולידציה :lol:
                                ראיתי את הקישורים שהבאתם שם לגבי טלפונים ולכן התייאשתי (בשלב זה :lol: ) מלכתוב פונקציה שתטפל בזה...

                                פורסם במקור בפורום CODE613 ב31/08/2015 22:46 (+03:00)

                                תגובה 1 תגובה אחרונה
                                0

                                • 1
                                • 2
                                בא תתחבר לדף היומי!
                                • התחברות

                                • אין לך חשבון עדיין? הרשמה

                                • התחברו או הירשמו כדי לחפש.
                                • פוסט ראשון
                                  פוסט אחרון
                                0
                                • דף הבית
                                • קטגוריות
                                • פוסטים אחרונים
                                • משתמשים
                                • חיפוש
                                • חוקי הפורום