תהליך קבלה ושליחה של דואר אלקטרוני

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

  • המודול מסנכרן דואר נכנס מכל תיבה אל הייפר, מטפל בהזמנות לפגישות ומתייק את ההתכתבויות בטבלת Relationship של הייפר.
  • המודול שולח הודעות החוצה ומתייק אותן לאחר השליחה. הודעות שנשלחו "מתוכנה זרה" (שאינה הייפר) יקלטו ויתוייקו במידה ושרת הדואר תומך בזה (פרוטוקול IMAP).
  • המודול מסנכרן עד 7 תיבות דואר נכנס בו זמנית ושולח עד 5 הודעות בו זמנית, בכדי שלא להעמיס את המעבד יתר על המידה כאשר מארחים מספר רב של ארגונים על שרת משותף, בכל הפרוטוקולים הנתמכים.
  • כ-10 שניות לאחר הפעלת יישום האוטומציה ולאחר מכן בכל 5 דקות, מתבצע תהליך סנכרון תיבות דוא"ל (נכנס) ושליחת הודעות שממתינות במסד הנתונים (שלא נשלחו מיד עקב תקלה).
    להלן "מחזור סנכרון".
  • בין כל מחזור סנכרון לבא אחריו, האוטומציה נותנת מענה לבקשות סנכרון מיידיות (הלחצן "בדוק דואר" בהייפר) ושולחת הודעות החוצה ברגע שהן נשמרות במסד הנתונים.
  • בתחילת כל מחזור, המודול בוחן האם עודכנו הגדרות חשבון דוא"ל. במידת הצורך המודול מבצע שאילתה על הגדרות חשבונות הדואר.
  • בתחילת כל מחזור, אם הורם דגל עדכון כתובת דוא"ל של לקוח / ספק / כל ישות נוספת, אזי מתבצעת שאילתה על כלל אנשי הקשר, הלקוחות, הספקים וכו'.
    שיטה זו חוסכת במשאבים ומאפשרת תיוק מהיר.
    לכן יתכן מצב שתתקבל הודעה חדשה מכתובת דוא"ל שהוזנה בטווח 5 הדקות שבין מחזורי הסנכרון – ההודעה הזו לא תתוייק.
    רק בסנכרון הכללי הבא הישות תעלה בשאילתה. אירוע שכזה הינו נדיר ולכן התהליך כדאי ומוצדק מבחינת ביצועים.
    כמנגנון ביטחון נוסף, בכל שעה עגולה תתבצע שאילתה כזאת גם אם לא הורם דגל (כלומר גם אם במשך השעה לא בוצע עדכון כתובת דוא"ל בהייפר).
  • תיבה שנכשלה בתהליך הסנכרון, 5 פעמים ברציפות, מסומנת כלא תקינה באופן זמני.
    לאחר הפעלת האוטומציה ובכל שעתיים מתבצע ניסיון לשחזר הודעות גם מתיבות שמסומנות כ-"לא תקינות". כל תיבה שהחיבור אליה מצליח, חוזרת לסטאטוס תקינה.
  • לחיצה על "בדוק דואר" בהייפר, גורמת ראשית לסנכרון תיבת הדואר האישית של המשתמש ולאחר מכן את כל התיבות הציבוריות שהוא מנוי עליהן !
    יש כאן פוטנציאל להעמיס את שרת הדואר ואף "להכעיס" שירותים כגון gmail שמראש מקצים כמות משאבים מוגבלת לתוכנות צד שלישי שמתחברות אליהם.
    לכן המודול אינו פונה לקרוא את תיבת הדואר בהפרש זמנים קטן מ- 8 שניות מרגע הניתוק האחרון (pop3 / imap logout).

כתובת דואר פנימית בהייפר Internal@Mail

הייפר יכולה לרשום כתובת דואר Internal@Mail (אין חשיבות לאותיות capital) ואז היעד הוא משתמש הייפר, כאשר שם המשתמש יופיע בשדה "שם הנמען".
הפונקציה הזאת שימושית רק להתכתבות פנימית בין משתמשים אשר אין להם תיבת דואר משלהם בשרת הדואר (משתמשים יכולים לחלוק תיבות דואר ציבוריות כגון Sales, Service).
ליתר ביטחון: נדגיש שהיעד יכול להיות רק משתמש של הייפר ולא אף ישות אחרת לרבות תיבת דואר ציבורית.

בעת שליחת דואר המשלב נמענים פנימיים בהייפר ונמענים מחוץ למערכת (דוא"ל יוצא מהשרת לעולם), עבור "הנמענים הפנימיים" יש אפשרות אחת משתיים:
  1. אם למשתמש יש תיבת דואר אישית, אזי המודול יחליף את שם המשתמש הפנימי בכותרת תיבת הדואר של המשתמש וגם כתובת הדוא"ל תיושם בהודעה במקום הכתובת הפנימית (רק בהודעה שיוצאת בשרת הדואר אבל לא בטבלת הנמענים במסד הנתונים).
  2. אם למשתמש אין תיבת דואר אישית, אזי הוא יוסר מההודעה שיוצאת בשרת הדואר, אבל לא מטבלת הנמענים במסד הנתונים.
* המטרה היא שהנמענים החיצוניים יוכלו להשיב לכמה שיותר מכותבים ולפי שמותיהם הרישמיים.

בניית כותרת (שם) של תיבת דואר

שם השולח בהודעת דוא"ל יוצא חייב להיות ייצוגי, נכון משפטית ורצוי באנגלית. לכן יש הפרדה בין הגדרה זו לבין שם המשתמש בהייפר או שם תיבת דואר ציבורית (משותפת).
עבור משתמש הייפר בעל תיבת דואר אישית, הכותרת תילקח מהשדות הבאים, לפי סדר עדיפות:
  1. 'Email Message From' לפחות 2 תווים.
  2. 'Employee Full Name in English' לפחות 3 תווים.
  3. 'Employee Full Name' לפחות 3 תווים.
עבור תיבה ציבורית יש רק שדה כותרת אחד 'Email Message From', אם הוא ריק, אזי הייפר תשלח את ההודעה ללא 'שם השולח' !

סינון דואר זבל וסיכוני אבטחה

להלן תיאור תהליך קליטת דואר חדש, משרת הדואר אל שרת הייפר:

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

  2. מופעל תהליך פענוח TNEF Winmail.dat שעדיין עלולים להגיע מתוכנת ms outlook.

  3. הפעלת אנטי וירוס (כגון kaspersky) אם מותקן ומוגדר, במכונה בה מותקנת Hyper Automation.
    הייפר תקרא לאנטי וירוס לסרוק כל קובץ EML חדש ובטרם הוא מועבר למסד הנתונים !

  4. בדיקת רשימה שחורה:
    חסימת הודעות לפי כתובת השולח או לפי דומיין השולח או כאשר ההודעה מכילה טקסט מסויים (אפשר להזין חלק מ script לרשימה השחורה בהייפר).
    הודעות שסוננו בשלב זה ישמרו בתת תיקייה Black List Messages בסמוך למודול האוטומציה, למשך 30 ימים.
    הרשימה השחורה מאוחסנת בטבלה SYE_Anti Spam Black List בכל מסד נתונים וניתן לערוך את תוכנה.

  5. מופעל סינון תסריטים מתוכן ההודעה (java script removal).

  6. חסימת הודעות המכילות קובץ מרשימת הסיומות הבאות:
    SCR;EXE;COM;BAT;CMD;PIF;APPLICATION;GADGET;MSI;MSP;CPL;MSC;JAR;VB;VBS;VBE;JS;JSE;
    WS;WSF;WSC;WSH;PS1;PS1XML;PS2;PS2XML;PSC1;PSC2;MSH;MSH1;MSH2;MSHXML;MSH1XML;MSH2XML;
    SCF;INF;REG;DLL;ADE;ADP;DMG;HTA;INS;ISP;LIB;MDE;MST;NSH;SCT;SHB;SYS';
    הסיומות הנ"ל אסורות למשלוח גם בתוך קובץ ZIP. אך מותרות בתוך ארכיונים בפורמטים אחרים (פחות פופולארים) ורצינו לאפשר למשתמשים לעקוף את המגבלה.
    הודעות שסוננו בשלב זה ישמרו בתת תיקייה Security Threat Messages בסמוך למודול האוטומציה, למשך 30 ימים.

  7. בדיקת תבניות תוכן: חסימת הודעות המכילות קובץ מסוג windows executable בלי קשר לסיומת שלו. בעתיד נסנן תבניות נוספות (כמו android exec).
    מותר לשלוח windows executable בתוך קובץ ZIP - בתנאי ששם הקובץ הוחלף, לדוגמא לסיומת txt.
    הודעות שסוננו בשלב זה ישמרו בתת תיקייה Security Threat Messages בסמוך למודול האוטומציה, למשך 30 ימים.

  8. כעת מבוצעת הערכת Spam וגילוי Active Trails על ידי קישורים ו/או תמונות. לאחר מכן נבדקות כתובות הדוא"ל של השולח ושאר הנמענים הגלויים.
    המודול בונה רשימת תיוק (Relationship) לפי כל הלקוחות והספקים המכותבים בהודעה באופן גלוי.
    הנושא יוסבר לעומק בהמשך.
    הודעות שסוננו בשלב זה ישמרו בתת תיקייה SPAM or Traced Messages בסמוך למודול האוטומציה, למשך 30 ימים.

אישור כתובת דוא"ל כמוכרת למערכת ותיוק אוטומטי (Relationship)

להלן רשימת הטבלאות שנבדקות וסדרן:
שם הטבלה תיאור הבדיקה
hyp_Clients חיפוש בשדה Email וגם השוואת דומיין מול השדה Web Page.
hyp_Suppliers חיפוש בשדה Email וגם השוואת דומיין מול השדה Web Page.
hyp_Contact Persons חיפוש בשדה Email וגם השוואת דומיין מול השדה Web Page.
hyp_Employees חיפוש ברשימת כתובות הדואר של העובדים השונים לרבות Private Email.
hyp_Anti Spam White List הרשימה הלבנה של הייפר, בה ניתן להלבין כתובת דואר או דומיין שלם.
hyp_User_Personal_Contacts אם כתובת הדואר רשומה ברשימת אנשי הקשר הפרטיים של המשתמשים, אזי הכתובת מאושרת.
* דומיין של שירותים ציבוריים כגון gmail, yahoo, outlook, icloud, yandex לא יבדק בשדה webpage.

סינון תוכן שחשוד להיות פרסומת

בכדי לזהות ולסנן דואר זבל, פרסומות ווירוסים ישנן 2 שיטות עיקריות:
  1. Big Data: בכל שירותי הדואר הגדולים (כמו Gmail, Office365) ניתן לזהות תוכן דומה שנשלח לכמות גדולה של נמענים שונים.
    הייפר הינה מערכת ארגונית השומרת על פרטיות המשתמשים שלה ולכן אינה מבצעת השוואת תכנים של מיילים בין ארגונים.
    בכדי להנות מפתרון big data אפשר להתחבר לשירותי דואר ציבוריים או ליישם מערכות הגנה כגון Pineapp שמבצעות השוואת תבניות תוכן.

  2. ניתן לזהות התנהגות חשודה האופיינית לספאמרים (הייפר מתעדכנת בהתאם לשינויים בתעשייה):
    • Http Trail: קיום של שדות מידע בכתובת URL של תמונה, כך ששולח ההודעה יודע שצפיתם בה. לפעמים שם התמונה עצמה כולל מזהה חד ערכי לנמען.
    • Http Trail: קיום של שדות מידע בקישור <a> כך שלחיצה על הקישור תזוהה חד ערכית אצל שולח ההודעה.
    • שימוש בשרת CDN ידוע לשמצה והפצת זבל.
    הייפר מכילה לוגיקה פנימית לזיהוי תבניות חשודות וניתן להשתמש בטבלת ה- Black List בכדי לחסום מילים (כמו fuck), כתובות CDN ברגע שמזהים חומר שהסתנן למערכת.

לכל תיבת דואר, ציבורית או אישית קיים שדה הגדרה בשם Spam Filter:
ערך לבחירה הסבר על הלוגיקה בקליטת דואר
Disabled ללא ניסיון זיהוי ספאם וללא התערבות בתוכן ההודעה. כל הדואר נכנס לתיבה בתיקייה הראשית. תיוק אוטומטי פעיל כמובן.
Simple White List הודעות שאינן מזוהות (לפי כתובות השולח והנמענים) או תוכן המזוהה כספאם - יועברו לאחסון "דואר מחוק" (Archive storage).
Store Spam in Inbox Deleted רק תוכן המזוהה כספאם - יועבר לאחסון "דואר מחוק" (Archive storage).
Filter Img Trails from Msg Body פעולה זהה ל-Simple White List. אך בנוסף:
משאירה תמונות אבל מסירה מהן את החלק ששולח מידע לשרת המפרסם. הקישורים נשארים ללא שינוי (כמו במקור).
Block Messages with Img Trails פעולה זהה לפריט הקודם אבל:
אם השולח אינו מזוהה, ההודעה תיחסם ותישמר בתת תיקייה SPAM or Traced Messages.

שליחת זימון לפגישה

  • עבור כל הודעת זימון או ביטול, לקוח הייפר מייצר רשומות בטבלה hyp_Meetings Automation Processing. רשומות אלה כוללות הוראה מפורשת מה לשלוח (זימון / אישור השתתפות / ביטול פגישה) וכיצד לשלוח (דוא"ל או סמס). נכון לעכשיו, פורמט השליחה הינו פנימי של הייפר (תבנית בסיסית) ולכן השליחה מתבצעת רק באמצעות הדוא"ל.
  • על מנת לקבוע באמצעות איזו תיבת דוא"ל ישלח הזימון, פועלת המערכת על פי הסדר הבא:
    1. אם למשתמש עצמו (אנושי או ישות יומן) יש תיבה המאפשרת שליחה – אזי ישלח הזימון דרכה.
    2. אם למשתמש האנושי שעדכן את הפגישה יש תיבה המאפשרת שליחה - אזי הזימון ישלח דרכה.
    3. שליחה באמצעות התיבה הציבורית הראשונה שמאפשרת שליחה, הכוללת את שם המשתמש או את קבוצת ההרשאה שלו ברשימת ההרשאות שלה.
    4. שליחה באמצעות התיבה הציבורית הראשונה שמאפשרת שליחה ואין לה כלל הרשאות (שדות ריקים).
  • אזור הזמן של הפגישה נשלח מהגדרות המשתמש המזמין או המאשר בהייפר, כאשר הקביעה האם מדובר בשעון קיץ או חורף מתבצעת על פי תאריך הפגישה (כולל שנה) – מול טבלת הסניפים במסד הנתונים הספציפי.
  • אם ברשומת הפגישה בהייפר, השדה Invited by Email מכיל את הערך Y, אזי התוכנה עונה לזימון (אישור/ביטול). אחרת, נשלח זימון ועדכון משתתפים על פי הצורך.
  • רק לאחר ניסיון השליחה בפועל – מתקבל הסטאטוס בשדה Status וזמן הטיפול בשדה Processed On (בטבלת hyp_Meetings).
  • בשלב זה, בהתאם למוכנות ממשק ה SMS, ישלחו מסרונים אודות הפגישה.