یکی از روشهای آشکارسازی* در سیستم مدیریت فرایندها، روش شناسایی و آشکارسازی ایمیلهاست. این روش برای سیستمهایی است رویدادهای خود را به شکل ایمیل ذخیره و ارسال می کنند. بطور کلی در این روش، با اتصال به صندوق پست الکترونیک (Inbox)، ایمیلهایی که شرایط معینی دارند شناسایی می شوند و برای هر ایمیل یک پیام (رخداد) منتشر می شود.
*: پیش نیاز این مطلب، آشنایی با مفاهیم آشکارسازی است. برای اطلاعات بیشتر در این زمینه به مطلب آشکارسازها-1: مفاهیم مراجعه کنید.
تعریف یک آشکارساز از نوع پست الکترونیک
برای تعریف یک آشکارساز جدید، مطابق شکل زیر، از منوی گردش کار، گزینه آشکارسازهای گردش کار را کلیک کنید:
به این ترتیب، محاوره آشکارسازهای گردش کار به شکل زیر روی صفحه باز می شود:
حال برای تعریف یک آشکارساز جدید، در نوار ابزار روی آیکون کلیک کنید تا در فهرست آشکارسازها یک سطر جدید به شکل زیر ایجاد شود:
حال روی سطر ایجاد شده، دبل کلیک کنید تا محاوره تنظیمات آشکارسازها به شکل زیر روی صفحه باز شود:
همانطور که مشاهده می کنید، این محاوره شامل سه برگه (Tab) است که بطور پیش فرض برگه عمومی باز می شود. در این برگه تنظیمات عمومی تمام انواع آشکارسازها (از جمله نوع پست الکترونیک) تعیین می شود.
یک مثال : آشکارسازی فیشهای حقوقی
تنظیمات برگه عمومی
برای نمونه در شکل بالا، این تنظیمات برای آشکارساز فیشهای حقوقی وارد شده است. این آشکارساز قرار است در Inbox، ایمیلهای فیش حقوقی را تشخیص دهد و آشکارسازی کند. جزئیات این تنظیمات به شرح زیر است:
کد: این کد بصورت اتوماتیک و توسط سیستم درج می شود.
نام: در این قسمت یک نام فارسی برای آشکارساز وارد کنید. در این مثال عبارت فیش حقوق وارد شده است.
نام لاتین: در این ناحیه در صورت تمایل می توانید یک نام انگلیسی برای آشکارساز وارد کنید.
نوع: در اینجا نوع آشکارساز (پست الکترونیکی یا SQL) انتخاب می شود. همانطور که در مثال مشخص است، این گزینه به شکل پیش فرض روی نوع پست الکترونیکی است.
محدودیت زمانی: اگر می خواهید عملیات آشکارسازی در محدوده زمانی خاصی انجام شود، در این ناحیه زمان (ساعت، دقیقه، ثانیه) شروع و زمان پایان را تعیین کنید. برای مثال ممکن است بخواهید این عملیات در زمان اداری (16- 8) انجام شود تا اگر خطایی رخ داد در زمان اداری رفع گردد.
حداکثر تعداد آشکارسازی در هر مرحله: زمانی که تعداد ایمیلها در Inbox زیاد است، بهتر است عملیات به شکل مرحله ای انجام شود. در اینجا تعیین می کنیم که در هر مرحله چه تعداد ایمیل بررسی شود. در این مثال عدد 50 انتخاب شده است و به معنی این است که در هر مرحله، 50 ایمیل بررسی می شود و در صورت انطباق با شرایط درخواستی، آشکارسازی می گردد.
زمان انقضا (روز): در این قسمت معیاری برای حذف ایمیلهای قدیمی تر تعیین می شود. معیار قدیمی بودن ایمیل، تعداد روزی است که ایمیل وارد صندوق پستی (MailBox) است. بنابراین اگر یک عدد (مثلا 7) را در این ناحیه وارد کنید آنگاه ایمیلهای قبل از این تعداد روز (7 روز)، قدیمی محسوب شده و در خواندن و بررسی ایمیلها شرکت داده نمی شود.
کلید حرفی شناسایی پیام: در این قسمت، عبارت کلیدی پیام تعیین می شود. در مثال فوق عبارت WD_Mail_PaySlipبه عنوان کلید حرفی تعیین شده است. برای امکان دسته بندی و مدیریت بهتر آشکارسازها، توصیه می شود برای آشکارسازهای ایمیل از این الگو استفاده کنید. یعنی عبارت WD_Mail_ را بصورت پیشوند در ابتدای عبارت حرفی درج کنید.
غیرفعال: با تیک زدن این چک باکس، آشکارساز غیرفعال خواهد شد.
تنظیمات برگه پست الکترونیک
محاوره برگه پست الکترونیک به شکل زیر است:
موارد موجود برای تنظیمات در این محاوره به شرح زیر است:
آدرس سرور IMAP: در این قسمت آدرس سرور ایمیل (Mail Server) وارد می شود. دقت کنید که این سرور باید پروتکل IMAP را پشتیبانی کند. البته سرورهای مرسوم از قبیل Exchange و Gmail و Yahoo Mail این پروتکل را پشتیبانی می کنند.
شماره پورت سرور IMAP: در این قسمت شماره پورت سرور ایمیل وارد می شود. برای مثال برای سرور Exchange مانند مثال بالا شماره این پورت 993 است.
نام کاربری (آدرس Email): در اینجا باید نام کاربری را که به صندوق پستی MailBox دسترسی دارد وارد کنید.
کلمه عبور: در اینجا کلمه عبور معتبر در سرور ایمیل را وارد کنید.
*نکته مهم: اگر در اینجا سرور Gmail را به عنوان Mail Server معرفی کرده اید، برای امنیت بیشتر، در اینجا باید بجای کلمه عبور کاربر (google account) ، از مفهومی بنام App Password استفاده کنید. برای توضیحات بیشتر در این زمینه به پست با عنوان نحوه تنظیمات پارامترهای شیوه های اطلاع رسانی پیام با ارسال ایمیل از طریق Google Account در انجمن مطالب آموزشی در سامانه پشتیبانی نرم افزارهای جامع مدیریت اطلاعات (libsupport.nosa.com) مراجعه کنید.
نام پوشه (MailBox) : در اینجا نام صندوق پستی (Mail Box) را وارد کنید. توضیح اینکه در قریب به اتفاق موارد، نام پوشه صندوق پستی به شکل پیش فرض Inbox است مگر اینکه ادمین سیستم به دلایلی نام آن را تغییر داده باشد.
حداکثر مدت زمان انتظار برای اتصال (میلی ثانیه): در اینجا حداکثر زمان انتظار آشکارساز برای اتصال به سرور ایمیل را برحسب میلی ثانیه تعیین کنید. این مقدار بطور پیش فرض 30000 میلی ثانیه (30 ثانیه) می باشد یعنی این که آشکارساز به مدت 30 ثانیه سعی می کند به سرور ایمیل متصل شود و اگر در این مدت اتصال برقرار نشود، آنگاه عملیات آشکارسازی متوقف می شود.
حداکثر مدت زمان انتظار برای خواندن (میلی ثانیه): در اینجا تعیین می شود که آشکارساز پس از اتصال به سرور ایمیل، تا چه مدت برای خواندن ایمیلها سعی نماید. در این ناحیه هم مقدار 30000 میلی ثانیه (30 ثانیه) بطور پیش فرض تعیین شده است. یعنی اگر آشکارساز پس از 30 ثانیه موفق به خواندن ایمیلها نشود، عملیات آشکارسازی متوقف خواهد شد.
آخرین کلید ذخیره شده پست الکترونیک: در این قسمت شماره شناسه یکتا (UID) مربوط به آخرین ایمیل آشکارسازی شده درج می شود. بدیهی است که قبل از خواندن ایمیلها، مقداری برای این ناحیه وجود ندارد اما پس از آشکارسازی، یک عدد در این قسمت مشاهده خواهید کرد که UID آخرین ایمیل آشکارسازی شده خواهد بود. بر مبنای این شماره، آشکار ساز در هر مرحله متوجه می شود که باید از این UID به بعد عملیات آشکارسازی را ادامه دهد.
نکته: اگر به هر دلیل ایمیلهای آشکارسازی از فهرست ایمیلها حذف شوند آنگاه برای آشکارسازی مجدد این ایمیلها، باید مقدار آخرین کلید ذخیره شده را برابر با صفر قرار دهید.در واقع با این کار، بررسی، شناسایی و آشکارسازی ایمیلها، از ابتدا آغاز می شود.
پست های الکترونیک ذخیره شوند: اگر بنا به هر دلیل، می خواهید متن ایمیلهای خوانده شده را داشته باشید، این گزینه را تیک بزنید. به این ترتیب ایمیلهای خوانده شده، در سیستم مدیریت فرایندها ذخیره خواهد شد. استفاده از ذخیره ایمیلها زمانی مهم می شود که سرور ایمیل، طوری تنظیم شده باشد که ایمیل ها را پس از خواندن، از صندوق پستی حذف کند.
استفاده از پروتکل انتقال امن :TLS استفاده از بستر امن اطلاعات به این دلیل اختیاری است که ممکن است در بعضی از مراکز، سرورهای ایمیلی استفاده شود که قابلیت تهیه Certificate های لازم برای برپاسازی TLS را نداشته باشد. در غیر این صورت و در استفاده از سرورهای استاندارد ایمیل، معمولا امکان استفاده از این پروتکل وجود دارد ولذا این گزینه به شکل پیش فرض تیک خورده است.
تعیین شرایط آشکارسازی ایمیل ها
در این قسمت تعیین می شود که از مجموعه ایمیلهای موجود در MailBox، کدام ایمیلها و با چه شرایطی شناسایی و آشکارسازی شود. برای این کار باید شرایط مورد نظر خود را تعریف کنید. تعریف شرایط از طریق آیکون واقع در نوار ابزار انجام می شود اما مانعی که در اینجا وجود دارد این است که در هنگام تعریف یک آشکارساز جدید، آیکون مربوط به تعیین شرایط در نوار ابزار غیرفعال است (به شکل زیر توجه کنید):
برای فعال کردن این آیکون، کافی است آیکون بازخوانی را کلیک کنید یا اینکه کلید F5 را فشار دهید. به این ترتیب آیکون تعیین شرایط به شکل زیر فعال می شود:
حال این آیکون را کلیک کنید تا محاوره تعیین شرایط به شکل زیر باز شود:
در این محاوره قرار است شرایط به فرمت یک جستجو پیاده سازی شود. از طرف دیگر برای هر جستجو به دو مفهوم نیاز داریم: مدخل جستجو و عبارت جستجو لذا این محاوره به دو بخش تقسیم شده است. در بخش بالا مداخل جستجو در ایمیل ها تعیین می شود و در بخش پایین، عبارت جستجو تعیین می شود. فهرست مداخل جستجو در ایمیل ها را در شکل زیر می توانید مشاهده کنید:
بنابراین در مداخل زیر امکان جستجو در ایمیل ها وجود دارد:
- آدرس فرستنده (From)
- موضوع (Subject)
- متن (Body)
مثالهای تعیین شرایط (جستجو)
اگر به شکل بالا دقت کنید، ستونی را مشاهده می کنید با عنوان عملگر با سطرهای قبلی. این ستون برای تعیین عملگر در جستجوهای ترکیبی است. بنابراین در ادامه، با ذکر مثال، ابتدا جستجوی ساده و سپس جستجوی ترکیبی شرح داده شده است.
جستجوی ساده
فرض کنید می خواهیم ایمیلهایی را که یک فرستنده خاص (payroll@nosa.com) ارسال کرده است، شناسایی و آشکارسازی کنیم. به این ترتیب باید مدخل جستجو را آدرس فرستنده انتخاب کنیم و در قسمت پایین، عبارت جستجو را مطابق شکل زیر تعیین کنیم:
همانطور که در شکل می بینید، در این مثال، نوع شرط مساوی انتخاب شده و به این معنی است که به دنبال ایمیلهایی هستیم که آدرس فرستنده آنها دقیقا برابر با payroll@nosa.com است. بدیهی است که برای انواع جستجوهای دیگر (مثلا جستجو در متن ایمیل) این نوع شرط مناسب نیست و باید از انواع دیگر شرط (مثلا شامل) استفاده کنیم. فهرست انواع شرایط را در شکل زیر مشاهده می کنید:
جستجوی ترکیبی
ترکیب جستجو هم در قسمت مداخل جستجو و هم در قسمت عبارت جستجو می تواند اتفاق بیفتد. به مثالهای زیر توجه کنید:
ترکیب عبارتهای جستجو
در این مثال، در قسمت عبارت جستجو یک سطر جدید با عملگر یا به سطر قبلی اضافه شده و به این معنی است که ایمیلهایی بازیابی شود که آدرس فرستنده آنها یا با payroll آغاز شود و یا با irancell .
ترکیب مداخل جستجو
در این مثال، در قسمت مداخل جستجو، یک سطر جدید با عملگر "و" به سطر قبلی افزوده شده است. یعنی ایمیلهایی آشکارسازی می شود که آدرس فرستنده آنها با payroll آغاز می شود و موضوع آنها شامل عبارت فروردین است (یعنی فیش حقوقی فروردین).
مشاهده ایمیلهای آشکارسازی شده
برای مشاهده فهرست ایمیل (های) بازیابی شده، همانند شکل زیر، از منوی گردش کار، گزینه پست های الکترونیکی ذخیره شده توسط آشکارسازهای گردش کار را کلیک کنید:
به این ترتیب، محاوره زیر روی صفحه باز می شود:
این محاوره دارای سه برگه (Tab) است که از این میان، برگه محتوا به شکل پیش فرض باز می شود. در این برگه، همانطور که در شکل نشان داده شده است، ابتدا باید نام آشکارساز خود را مشخص کنید. لازم به توضیح است که این ناحیه بطور پیش فرض روی گزینه تمام آشکارسازها است و ایمیلهای آشکارسازی شده توسط تمام آشکارسازهای ایمیل را نمایش خواهد داد. برگه های شرایط و ترتیب هم مشابه ابزارهایی برای فیلترینگ و دقیق تر کردن جستجو و مرتب سازی نتایج جستجو ارائه می کنند که برای پرهیز از طولانی شدن مطلب از جزئیات آن صرف نظر می کنیم.
با تصویب این محاوره، فهرست ایمیل(های) آشکارسازی شده نمایش داده می شود:
مشاهده پیام (رخداد)های منتشر شده از آشکارساز
همانطور که در تعریف مفاهیم آشکارساز گفته شد، برای هر ایمیلی که آشکارسازی می شود، یک پیام (رخداد) منتشر (سیگنال) می شود. برای مشاهده، پیامهای منتشر شده، همانند شکل زیر، از منوی گردش کار، گزینه پیامهای ارسال شده برای گردش کارها را کلیک کنید:
به این ترتیب، محاوره انتخاب و فیلترینگ پیامهای ارسالی به شکل زیر روی صفحه باز می شود:
برای امکان مشاهده پیامهای از نوع رخداد، نباید هیچ فیلترینگی روی دسته بندی و نام گردش کار انجام شود، یعنی همانطور که در شکل مشخص شده است، فیلد دسته بندی گردش کار باید روی گزینه تمام دسته بندیهای گردش کار، و فیلد گردش کار روی گزینه تمام گردش کارها باشد. به این ترتیب فهرست رخدادهای ارسالی آشکارساز به شکل زیر
نمایش داده می شود:
ملاحظه می کنید که برای هر ایمیل آشکارسازی شده، یک پیام منتشر شده است. نکته مهمی که باید دقت کنید این است که هرکدام از این پیامها یک پارامتر حرفی دارد که شامل اطلاعات ایمیلهای آشکارسازی شده است. بخشی از این پارامتر را در شکل بالا و در ستون پارامتر حرفی پیام ملاحظه می کنید.
محتوای پارامتر حرفی پیام آشکارساز
همانطور که گفته شد، هر پیام (رخداد) حاوی یک پارامتر حرفی است که حاوی اطلاعات ایمیل آشکارسازی شده است. اطلاعات ایمیل به شرح زیر است.
- UID: کلید شناسایی پست الکترونیک
- To: آدرس پست الکترونیک گیرنده
- From: آدرس پست الکترونیک فرستنده
- Subject: موضوع پست الکترونیک
- Body: متن پست الکترونیک
- InternalDate: زمان و تاریخ ارسال پست الکترونیک (میلادی)
این اطلاعات با فرمت JSON در پارامتر حرفی پیام درج میشوند؛ به مثال زیر توجه کنید:
{"UID": 120,
"To":"tariverdi@nosa.com",
"From": "payroll@nosa.com",
"Subject": "PaySlip of January",
"Body": "Dear Alireza, This Email has been sent for you for …",
"InternalDate": 1644402341000}
نکته 1: اگر در Subject یا Body ایمیل، کاراکتر فارسی وجود داشته باش بصورت Unicode نمایش داده خواهد شد. به یک نمونه ایمیل با اطلاعات فارسی توجه کنید:
{"UID":8027,
"To":"Tariverdi",
"From":"payroll@nosa.com",
"Subject":"\u0641\u064A\u0634 \u062D\u0642\u0648\u0642 \u0641\u0631\u0648\u0631\u062F\u064A\u0646 1400",
"Body":"\u0641\u064A\u0634 \u062D\u0642\u0648\u0642",
"InternalDate":1619329647000}
برای مثال در این مورد، متن Body عبارت "فیش حقوق" است که کاراکترهای آن به شکل یونیکد نمایش داده شده است.
نکته2: مقدار InternalDate بصورت عدد ذخیره شده است. برای نمایش این عدد به فرمت تاریخ، باید آن را به فرم تاریخ و زمان تبدیل کنید.