پروژه از سه تیم مجزا تحت نظر یک مدیر پروژه تشکیل شده است. این ساختار در شکل زیر مشخص شده است.

توضیح در مورد هریک از اجزا و شرح وظایفشان به صورت مختصر:

تیم توسعه: مسئولیت توسعه  فیچرهای سامانه به عهده این تیم می­باشد.

تیم بازرگانی: مسئولیت تعمق در رابطه با مدل کسب و کار و ارتباط بین سامانه ایمیل و دیگر اجزای طرح جویشگر؛ و همچنین تهیه گزارشهای مربوطه.

تیم شبکه و امنیت: مسئولیت برقراری و نگهداری زیرساخت مورد نیاز و تأمین امنیت سامانه

 

ساختار شرکت چکاد نوآوران عصر اطلاعات بصورت ماتریسی است و افراد متخصصان در واحدهای مربوطه از اشتراک دانش با همکاران خود بهره می­برند. تولید هر محصول جدید بصورت یک پروژه تعریف میگردد و افراد پروژه بر اساس توانمندی­های لازم، از بین افراد هر واحد تخصیص می­یابند. واحدهای شرکت در نمودار زیر قابل مشاهده هستند.

در بالاترین سطح چارت سازمانی شرکت چکاد نوآوران عصر اطلاعات، مدیر عامل قرار دارد و دفتر مدیریت پروژه (PMO Director) در سطح دوم قرار گرفته است که با تصمیم گیری و هدایت پورتفولیو و پروژه های شرکت، وظایف مدیرعامل را متمرکز بر روی اهداف استراتژیک شرکت نموده است. دفتر مدیریت پروژه با بهره گیری از جدید ترین متدولوژی های مدیریت پروژه و توسعه ی نرم افزار و بهبود مستمر در فرآیندهای پروژه، به هدایت مدیران پروژه می پردازد و تصمیمات راهبردی لازم را در خصوص طرح ها و پورتفولیوی سازمان اتخاذ می نماید.

ساختار سازمانی فوق در سطح سوم به ازای هر پروژه و مدیر پروژه ای که به آن تخصیص داده شده است تکرار می گردد. به منظور اتخاذ تصمیمات فنی نیازمندی های پروژه، کارگروه های زیر برای تسهیل وظایف مدیر پروژه ایجاد شده است:

  • کارگروه کلاینت
  • کارگروه سرور
  • کارگروه امنیت
  • کارگروه پشتیبانی و شبکه

با شکل‌گیری کارگروه‌های فوق، تصمیمات فنی با تمرکز بر تخصص افراد اتخاذ می‌گردد و از اتلاف وقت و دوباره‌کاری‌ها در تیم پروژه جلوگیری می‌شود. وظیفه اصلی کارگروه های فوق، شکستن اپیک‌های پروژه به آیتم‌های کاری (Tech story) و اتخاذ تصمیمات فنی در جهت پیاده سازی صحیح آیتم‌های مشخص شده طبق توافق صورت گرفته (Definition of Done) است.

 

1.3.2 معماری، نوع ماشین ها و پیکر بندی ماشین‌های مجازی

در شکل زیر شمای کلی از یک نرم افزار ایمیل امده است. این سامانه برای هر ماژول خود مانند وب، دریافت ایمیل های pop3,imap مسائل امنیتی و spam به صورت مجزا قابل راه اندازی است. کل سیستم  قابل نصب بر روی مراکز داده توزیع شده در سطح کشور هستند.

شکل ۱ـ معماری سیستم

 

2.3.2 منابع سخت افزاری مورد نیاز

خلاصه معماری سخت افزار در جدول زیر نشان داده شده است:

شکل ۲ـ سخت افزار مورد نیاز

 نکات:

- تعداد ماشین ها و معماری بر اساس 2.000.000 کاربر طراحی شده است.

- میانگین فضای اختصاصی به هر کاربر تقریبا 200MB است.

- سخت افزار مورد نیاز برای میرور و بک آپ در نظر گرفته نشده است.

 

زمان‌بندی سخت افزار لازم

جدول ۳ـ زمان‌بندی سخت افزار لازم

شروع

ماه 1

ماه 2

ماه 3

ماه 4

ماه 5

50 درصد سخت افزار مورد نیاز

60 درصد

70 درصد

80 درصد

90 درصد

100 درصد

 

3.3.2 تعداد آدرس‌های IP valid تنظیمات خاص برروی  DNS ها

در حال حاضر از سرویس PGP anycast  برای DNS استفاده شده است. این سیستم نیازمند 255 آیپی بر روی کشور های مختلف است . زیرا نداشتن ارتباط مطمئن با تمامی سرور های ایمیل دنیا برای spam نشدن و رسیدن ایمیل ها ضروری است.

در این سیستم برای جلوگیری از spam شدن ایمیل ها SPF ،  DKIM و rdns در DNS  سرور تعریف شده است.

 

4.3.2 میزان پهنای باند مورد نیاز (به تفکیک in/out) برای هر ماه

ترافیک مورد نیاز ماهانه:

برای یک میلیون کاربر که به طور متوسط، 10MB  ایمیل در ماه دریافت کنند، ترافیک ورودی مورد نیاز به صورت زیر است:

In : حجم ایمیل های دریافتی در ماه + سربار 50% ارتباطی

1000000*10MB = 10 TB

10 TB + 5 TB = 15 TB

ترافیک out معادل چک کردن ایمیل ها : برای مراجعه 30 بار در ماه و هر بار استفاده از 10MB  و سربار ارتباطی 0.5

10MB*30 * 1000000 = 300 TB

300 TB + 0.5*300TB = 450TB

بنابر این ترافیک in برابر 300TB و ترافیک out برابر 450 ترابایت براورد می گردد.

 

5.3.2 پهنای باند لحظه ای مورد نیاز

حدود 1Gb/s براورد می‌شود.

 

6.3.2 ویژگی‌ها و امکانات

Mailbox storage

فضای صندوق ایمیل یکی از مهمترین بخشهای یک سامانه ایمیل می باشد، این موضوع اهمیت خود را بیشتر برای کاربرانی که اکثر کارهای خود را با ایمیل انجام می‌دهند، نشان می‌دهد، زیرا این کاربران به هیچ وجه مایل نیستند که اطلاعات قدیمی خود را از دست دهند، در نتیجه اگر این فضا چندان کافی نباشد این کاربران با مشکل مواجه می‌شوند.

فضای صندوق ایمیل در این سامانه بصورت پیش فرض 2GB می‌باشد، این مقدار در سامانه الدپ ذخیره شده است، و براحتی قابل تغییر می‌باشد، هر کاربر می‌تواند به دو صورت از فضای صندوق ورودی خود مطلع گردد:

  1. با استفاده از UI ایمیل
  • در این بخش کاربر با مراجعه به بخش تنظیمات <- عمومی <- فضای ایمیل از میزان حجم صندوق ورودی خود، و میزان مصرف خود مطلع گردد.

 

شکل ۳ـ فضای ذخیره سازی ایمیل

  1. با استفاده از سرویس account
  • برای استفاده از این سرویس به آدرس https://account.elenoon.ir/index.php رفته و در بخش خرید می‌توانید میزان حجم مصرفی خود را مشاهده نمایید.

فضای ایمیل هر کاربر شامل دو قسمت می‌باشد، بخشی که در پایگاه داده (mysql) ذخیره می‌گردد. و بخشی که بصورت فایل سیستم ذخیره می‌گردد. قسمتی که بصورت فایل سیستم ذخیره می‌گردد، در انجین سامانه ایمیل می‌باشد، که بصورت MIME ذخیره شده است و شامل header، متن و پیوست ایمیل می‌باشد.

 

-        نحوه پیاده سازی

برای ذخیره پیام ها ما از MAPI STORE استفاده می کنیم هر store دارای حجم و یک شناسه GUID است که به کاربر اختصاص می یابد. هر store مربوط به mapi می تواند object های مختلف از جمله ویژگی های ایمیل ، پوشه ها، کار ها ، contact و هر آنچه کاربر ذخیره می کند را در خود نگهداری می کند. این object ها در پایگاه داده mysql در یک ساختار hierarchy model ذخیره می شود ایمیل ها به صورت فشرده شده در سیستم فایل نیز تحت فرمت فایل ذخیره می گردد و metadata های مربوط به ایمیل در پایگاه داده ذخیره می گردد. در لایه ui نیز با استفاده از php mapi می توانیم به این فضا های ذخیره شده دسترسی پیدا نمایند.

 

-        ماژول های استفاده شده و دلیل استفاده

برای پیاده سازی این سرویس از   پرتکل میانجی برنامه ریزی برنامة کاربردی ارسال پیام (MAPI)یک معماری ارسال پیام است و یک مدل عینی سازنده مبتنی بر API برای ویندوز میکروسافت می باشد . MAPI به نرم‌افزارهایی که از آن استفاده می‌کنند امکان می‌دهد تا پیام‌محور (ایمیل) یعنی آگاه به پیام‌ها و یا قادر به ارسال پیام باشند. این کار از طریق فراخوان روال‌های زیرسیستم‌های سرورهای خاصی صورت می‌گیرد. با وجود اینکه MAPI طوری طراحی شده است که مستقل از پروتکل‌ها عمل کند، معمولاً به همراه MAPI/RPC استفاده می‌شود. این پروتکل در نرم‌افزار Microsoft Outlook برای ارتباط با Microsoft Exchange استفاده می‌شود.

 

Simple MAPI یک مجموعه متشکل از 12 تابع است که برنامه‌نویسان را قادر می‌سازد تا توانایی اولیه ارسال پیام را به نرم‌افزارها اضافه کنند. MAPI توسعه یافته، امکان کنترل کامل سیستم ارسال پیام را در کامپیوتر مشتری ( ارباب رجوع )، ایجاد و مدیریت پیام ها، مدیریت جعبه ایمیل مشتری، تأمین کنندگان سرویس، و غیره را فراهم می کند. MAPI ساده با ویندوز میکروسافت بعنوان بخشی از Outlook Express/windows Mail، تحویل می‌شود، در حالیکه MAPI کاملاً توسعه یافته همران با محصولات Office Outlook و Exchange تحویل می‌شود. علاوه بر MAPI توسعه یافته، میانجی ارباب رجوع، برنامه ریزی پیام ها می تواند بصورت غیرمستقیم از طریق میانجی ارباب رجوع Simple MAPI API، از طریق میانجی ارباب رجوع API رایج ارسال پیام ها (Common Messaging Calls) یا (CMC)، یا بواسطه میانجی کتابخانة CDO مبتنی بر هدف تهیه گردد . این سه روش برای استفاده و طرح ریزی به منظور ارسال پیام کمتر پیچیده، آسان تر و مناسب تر می باشند . (Simple MAPI و CMC از Exchange 2003 حذف شدند ) . MAPI در اصل توسط شرکت میکروسافت طراحی شد . این کمپانی تیم Ms Mail خود را در سال 1987 بنا نهاد، اما آن وجود نداشت تا اینکه نرم‌افزار کاربران یا Consumers Software را در سال 1991 برای دستیابی به Network Courier که تولید پیام بود، کسب کرد. آن مورد بازنگری قرار گرفت، و بعنوان MSPC Mail (یا میکروسافت میل برای شبکه PC ) فروخته شد. API مبنا برای MS PC Mail بصورت ورژن 0 از MAPI ( یا MIPL 0) شناخته شد. MAPI کارکردهایی تقریباً مبتنی بر استاندارد X.400 XAPIA را بکار می برد. MAPI شامل امکاناتی برای دسترسی به امکانات انتقال پیام، حافظه های پیام، و راهنماها می باشد.

استفاده از mapi باعث می شود که ساختار معماری میتنی بر سرویس رعایت شود و باعث شود با بسیاری از سرویس های دیگر ایمیل بدلیل استفاده از روش استاندارد یکپارچه شود. از انجایی که ماهیت اشیا مربوط به ایمیل به صورت درختی است از معماری hierarchy model برای ذخیره سازی استفاده شد. این امر امکان جستجو و پیدا کردن اشیا در پایگاه داده را بسیار سریعتر ممکن می کند.

 

-        نسخه استاندارد پیاده سازی شده

  • استفاده از MAPI
  • استفاده از hierarchy model در پایگاه داده

 

-        قابلیت ها

  • سرعت بالا خواندن داده و قابلیت نگهداری داده های بسیاز بزرگ در این معماری برای 200000  کاربر برای هر نود
  • قابلیت توزیع کاربران بر روی نود های مختلف برای scalable بودن معماری و افزایش خطی منابع با افزایش کاربران
  • معماری سرویس گرا و قابلیت یکپارچه شدن با دیگر سرویس ها

 

-        امنیت

  • در معماری های سرویس گرا سرویسی جهت کنترل دسترسی وجود دارد که قابلیت خواندن دسترسی ها را از ldap و یا active دارا می باشد.
  • تمامی ارتباطات mapi توسط سوکت های tls رمزنگاری می شود.
  • پایگاه داده harden شده و با کاربری با حداقل مجوز دسترسی به پایگاه داده ممکن است.

 

-        پرتکل رمزنگاری

  • استفاده از سوکت های tls

 

Maximum attachment limit

این میزان در اکثر ایمیلها موجود در حدود 25MB می باشد، این موضوع در ایمیلها از درجه اهمیت متوسطی برخوردار است.

این قابلیت در حال حاضردر سیستم وجود داشته و مقدار آن در حال حاضر 25MB می باشد.

در پیوست می توان بیش از یک فایل را بارگذاری نمود و در صورتی که مجموع مقادیر این فایلهای بیشتر از این مقدار باشد با پیغام خطای زیر مواجه می شوید.

شکل ۴ـ محدودیت حداکثر حجم پیوست

جهت تغییر این مقدار به مقدار دلخواه فقط کافیست در فایل .htaccess مقدار upload_max_filesize را تغییر دهید. همچنین در فایل php.ini می توان تعداد مجاز فایلهایی که امکان بارگذاری بعنوان پیوست دارند، را مشخص نمود.

 

-        نحوه پیاده سازی

کنترل حجم مربوط به هر ایمیل در چندین لایه انجام می شود.

  • در لایه ui در تنظیمات php حجم قابل ارسال به سرور محدود شده است.
  • در اخرین لایه یعنی در Email gateway نیز تنظیمات جهت کنترل حجم انجام شده که بر روی کلیه ایمیل های دریافتی و ارسالی اعمال می گردد.
  • در mapi فایل های attachment به صورت فشرده شده با zip7 در نود های مختلف توزیع شده ذخیره می شود.سرویس در mapi برای جدا سازی فایل ها attach از mime ایمیل نوشته شده است. که امکان نمایش انها را بوجود می اورد.
  • در ارسال attachment ها نیز با zip7 تمامی ارتباطات فشرده می شود ولی در مورد محدودیت حجم فایل بدون فشرده سازی در نظر گرفته می شود
  • در زمانی که attachment    به سرور انجین ایمیل ارسال می شود ابتدا hash ان بررسی می شود. ولی این امر برای duble check  نیست تنها بررسی می شود که محتوی فایل با ان چیزی که کاربر ارسال کرده مطابقت دارد یا خیر، استفاده می گردد.

 

-        ماژول های استفاده شده و دلیل استفاده

استفاده از کنترل حجم کاربر در لایه ui برای دادن پیغام مناسب به کاربر

استفاده از کنترل حجم در لایه gateway ایمیل  در تنظیمات postfix برای حجم 25 MG برای ایمیلهای دریافتی و ارسالی

 

-        نسخه استاندارد پیاده سازی شده

استفاده از 25MG که عدد نرمالی که در اکثر سرور های ایمیل وجود دارد.

استفاده از محدود سازی مربوط به postfix

-        قابلیت ها

اعمال محدودیت در کلیه لایه ها سیستم از جمله gateway ایمیل برای کلیه ایمیل های دریافتی و ارسالی در کلیه رابط ها

-        امنیت

رعایت اصل دفاع در عمق با قرار دادن limitation در اخرین لایه نرم افزار و Gateway مربوط به ایمیل

 

 Supported Local languages

این موضوع اهمیت خود را زمانی نشان می‌دهد که کاربران ایمیل در تعامل با افرادی باشند که با زبانهای مختلف صحبت می‌کنند. و با توجه به این مطلب که در حال حاضر اکثر افراد از زبان انگلیسی برای تعامل به بقیه استفاده می‌کنند، وجود زبان این زبان در ایمیل ضروری بنظر می‌رسد.

در حال حاضر این سامانه ایمیل از دو زبان فارسی و انگلیسی بصورت کامل پشتیبانی می کند.

برای تغییر زبان می توان به دوطریق عمل نمود:

  1. در صفحه لاگین می توان با کلیک بر روی بخش انتخاب زبان، زبان مورد نظر خود را انتخاب کرد. مطابق شکل زیر:

شکل ۵ـ تغییر زبان نمایش (۱)

 

  1. در صفحه ایمیل می توان با ورود به بخش تنظیمات <- بخش عمومی زبان مورد نظر خود را انتخاب نموده و با کلیک روی گزینه اعمال آنرا تغییر دهید.

شکل ۶ـ تغییر زبان نمایش (۲)

-        نحوه پیاده سازی

برای localization کلیه قسمت ها به صورت tag های gettext مروبط به php در ui قرار گرفته و ترجمه با توجه به انتخاب کاربر از فایل های mo انتخاب می گردد.

برای پیاده سازی تقویم هجری شمسی نیز از کد های اختصاصی برای تبدیل تاریخ میلادی به شمسی استفاده می شود. به صورتی که کلیه تاریخ ها به صورت میلادی ذخیره می گردد. سپس در لایه ui به تاریخ های شمسی تبدیل می گردد.

 

-        ماژول های استفاده شده و دلیل استفاده

استفاده از mo و po فایل برای زبان های مختلف در php می توان به سادگی می توان چند زبانی را پیاده کرد.

با توجه به نقش تاریخ در پرتکل MIME مربوط به ایمیل ها و وجود تاریخ میلادی کلیه تاریخ ها میلادی ذخیره شد و در نمایش با کتابخانه اختصاصی تبدیل می شود.

 

-        نسخه استاندارد پیاده سازی شده

استفاده از mo و po فایل ها برای نگهداری ترجمه های تمامی قسمت ها

 

-        قابلیت ها

ترجمه تمامی قسمت ها و سادگی در ترجمه و پیاده سازی در ui .

حفظ تاریخ های میلادی مطابق استاندارد MIME

 

IMAP / JMAP support

با پیشرفت تکنولوژی و تمایل انسانها به آسایش، افراد مایل هستند که دسترسی آنها به ایمیلهایشان از روشهای مختلفی امکان پذیر باشد. پروتکل IMAP این امکان را برای کاربران فراهم می‌کند که با استفاده از هر ابزاری که امکان اتصال به اینترنت را داشته باشد و از این پروتکل پشتیبانی می‌کند، ایمیلهای دریافتی خود را مشاهده نمایند. لذا برای هر سامانه ایمیل پشتیبانی از این پروتکل ضروری می‌باشد.

این سامانه از این پروتکلهای پشتیبانی می کند. با کمک این پروتکل می توان ایمیلهای خود را در تمام نرم افزارهای که از این پروتکل پشتیبانی می کنند مشاهده نمود، نرم افزارهای از قبیل outlook، نرم افزارهای موبایلی و ... .

برای مثال تنظیمات مورد نیاز جهت مشاهده ایمیل ها در نرم افزار outlook در ادامه  خواهد آمد:

۱ـ نرم افزار Outlook را اجرا کرده و از منوی فایل بر روی Add Account کلیک کنید.

شکل ۷ـ تنظیمات outlook (1)

 

۲ـ سپس در پنجره زیر گزینه Manual setup or additional server type را انتخاب کنید و روی گزینه Next کلیک نمایید.

شکل ۸ـ تنظیمات outlook (2)

۳ـ در این پنجره گزینه POP or IMAP را انتخاب کرده و برروی گزینه Next کلیک کنید.

شکل ۹ـ تنظیمات outlook (3)

۴ـ در پنجره زیر اطلاعات کاربر را بصورت زیر وارد کنید:

  • You Name: نام کاربری مورد نظر خودتان را وارد کنید. ( این نام اختیاری است)
  • Email Address:  آدرس ایمیل را با دامنه وارد کنید (username@elenoon.ir     که username شناسه شما می باشد).
  • Account Type: برای این گزینه مقدار IMAP را انتخاب کنید.
  • Incoming mail server: در کارد جلوی این گزینه عبارت imap.elenoon.ir را وارد کنید.(پورت ۱۴۳)
  • [Outgoing mail server [SMTP: در کارد جلوی این گزینه عبارت smtp.elenoon.ir را وارد کنید.(پورت ۲۵)
  • User Name: آدرس ایمیل را با دامنه وارد کنید (username@elenoon.ir     که username شناسه شما می باشد).
  • Password: پسورد ایمیل خود را وارد نمایید.

سپس روی گزینه More Setting کلیک کنید.

شکل ۱۰ـ تنظیمات outlook (4)

۵ـ در پنجره زیر به  بخش Outgoing Server بروید و تیک گزینه … My Outgoing server را بزنید، سپس روی گزینه OK کلیک کنید.

شکل ۱۱ـ تنظیمات outlook (5)

۶ـ در پنجره زیر بر روی گزینه Next کلیک کنید.

شکل ۱۲ـ تنظیمات outlook (6)

۷ـ همانطور که در تصویر زیر مشخص است، پیکربندی به درستی انجام شده است.

شکل ۱۳ـ تنظیمات outlook (7)

۸ـ در پنجره بالا روی گزینه Close کلیک کنید تا پنجره زیر باز شود. سپس در پنجره زیر روی گزینه Finish کلیک کنید.

شکل ۱۴ـ تنظیمات outlook (8)

۹ـ در صورت موفقیت آمیز بودن عملیات، یک ایمیل از طرف Outlook دریافت می کنید.

 

شکل 15 تنظیمات outlook (9)

 

SMTP / POP3 support

همانطور که در مورد پروتکل IMAP توضیح داده شد، وجود این پروتکل نیز برای یک سرویس ایمیل ضروری می‌باشد. پروتکل SMTP این امکان را برای کاربران فراهم می‌کند که با استفاده از هر ابزاری که امکان اتصال به اینترنت را داشته باشد و از این پروتکل پشتیبانی می‌کند، اقدام به ارسال ایمیل نمایند.

این سامانه از این پروتکل نیز پشتیبانی می نمایید. با کمک این پروتکل می توان از طریق تمام نرم افزارهایی که از این پروتکل پشتیبانی می کنند، ایمیل ارسال کرد.

تنظیمات مربوطه مانند تنظیمات مرحله قبل می باشد.

-        نحوه پیاده سازی

برای این منظور یک MAIL Gateway با زبان c++ پیاده سازی شده است که با استفاده از MAPI4linux با انجین ایمیل ارتباط برقرار می کند این سرویس به صورت واسط پرتکل IMAP/POP/IMAPS/POPS را برقرار می کند این سیستم ابتدا نود مربوط به هر کاربر را پیدا می کند و از ماشین مربوطه اطلاعات و ایمیل های کاربر را با کمک پرتکل mapi استخراج می کند.

 

-        ماژول های استفاده شده و دلیل استفاده

استفاده از c++ و mapi4linux بدلیل نیاز به قابیلت پشتیبانی از تعداد بالا connection ها و بهینه کردن منابع سیستم این سرویس قابلیت cluster شدن و انتخاب کاربر از نود های مختلف را دارد.

 

-        نسخه استاندارد پیاده سازی شده

استفاده  از mapi4linux و قابلیت یکپارچه شدن با سیستم های مبتنی بر mapi

 

-        قابلیت ها

قابلیت یکپارچه شدن با کلیه سیستم های مبتنی بر mapi

بهینه بودن مصرف منابع و قابلیت کارکردن برای تعداد زیاد کاربر

 

-        امنیت

پشتیبانی از پرتکل های TLS و امکان انتخاب cipher suite امن

-        پرتکل رمزنگاری

پشتیبانی از TLS V1 ,2

 

Integration with IM message

این شرکت در کنار طراحی یک سامانه ایمیل اقدام به طراحی یک سرویس پیام‌رسان بنام نسیم نیز نموده‌است، که می‌توان این سرویس را از آدرسهای زیر دانلود کرد:

لینک نسخه اندروید:

https://cafebazaar.ir/app/ir.nasim/?l=fa

لینک نسخه iOS:

https://itunes.apple.com/us/app/nasim/id1092959340?ls=1&mt=8

با توجه به دردسترس بودن سرویس پیام رسان از طریق برنامه موبایلی و کاربردهای فراوان آن، یکپارچگی آن با سرویس پست الکترونیک النون می تواند به توسعه ی استفاده از این سرویس کمک نماید. برای این منظور، بات EmailBot در سرویس پیام رسان نسیم توسعه داده شده است که شخص می تواند از طریق آن ایمیل های خود به همراه فرستنده، عنوان ایمیل، متن ایمیل مشاهده نماید و در صورت لزوم به آن ایمیل پاسخ دهد. بات ایمیل نسیم علاوه بر این، امکان فرستادن ایمیل جدید را به گیرندگان دلخواه فراهم می نماید. شخص می تواند با وارد کردن ایمیل گیرنده/گیرندگان، عنوان و متن ایمیل، اقدام به ارسال ایمیل جدید توسط بات ایمیل نسیم نماید.

همچنین از آنجائیکه یکی از اهداف سامانه پست الکترونیکی النون تعامل نزدیک و همراه با کاربر خصوصا در بستر شبکه تلفن همراه است، لذا از ویژگیهای مهم آن خدمات پیامکی می‌باشد. در این راستا تمام پیامکهایی که میان این سامانه و کاربر، ردوبدل می شود با سامانه پیام رسان نسیم یکپارچه می‌شود و در این سامانه قابل مشاهده می‌باشد. اینکار بدین صورت پذیرفته است، زمانیکه قراراست یک پیامک برای کاربر ارسال شود، سرویس ارسال پیامک علاوه بر ارسال پیامک برای پنل پیامک این پیامک را برای وب.سرویس نسیم نیز ارسال می‌کند.

-        نحوه پیاده سازی

با توجه به معماری سرویس گرا ایمیل النون تمامی سرویس های النون قابیلت دسترسی از طریق سیستم webapi های RESTFULL را دارا می باشد. لذا می توان به پیام رسان ها متصل شود. سرویس پیام رسان نسیم نیز که محصول شرکت است با معماری سرویس گرا و استفاده از protobuf قابیلت اتصال به سرویس ایمیل را فراهم می کند در حال حاضر سرویس های مشترکی مانند انجین پیامک به هر دو سرویس سرویس دهی می کند.

 

-        ماژول های استفاده شده و دلیل استفاده

استفاده REsful API در دو سرویس بدلیل راحتی استفاده و کارایی بالا

 

-        قابلیت ها

امکان سرویس دهی امن دو طرفه و قابلیت اتصال به ESB و ESU ها ، کنترل دسترسی مرکزی

 

-        امنیت

کنترل سرویس ها با استفاده از APIKEY تمامی ارتباطات بر روی https و به صورت رمز شده انجام می شود.

تمامی داده های مبادله شده ثبت و امضا انها برای تغییر نکردن چک می شود.

 

-        پرتکل رمزنگاری

استفاده از TLSV1,2 بر ای رمزگاری داده های مبادله شده

 

Address Book

سرویس مخاطبین یکی از سرویسهای بااهمیت در یک سامانه ایمیل می‌باشد، زیر یک کاربر مایل است که آدرس کاربرانی را که با آنها در تعامل است را در محلی ذخیره کند.

این سامانه برای آدرس مخاطبین دارای یک سرویس مجزا بنام مخاطبین (contact) می باشد. امکاناتی که این سرویس ارائه می دهد، بشرح زیر می‌باشد:

  1. امکان ایجاد مخاطب جدید
  2. امکان گروه‌بندی مخاطبین
  3. امکان ویرایش مخاطبین
  4. امکان خروجی گرفتن از مخاطبین
  5. امکان وارد کردن مخاطبین بصورت دسته ای (به کمک فایل اکسل)
  6. امکان جستجوی مخاطبین

این سرویس دارای یک بخش بنام مخاطبین پیشنهادی نیز می‌باشد که در آنرا مخاطبینی که قبلا برای آنها ایمیل ارسال کرده‌اید ولی در لیست مخاطبین شما نیستند، قابل مشاهده است.

برای مشاهده به این سرویس به دو صورت زیر می‌توان عمل نمود:

  1. از درون UI ایمیل با کلیک روی گزینه مخاطبین

شکل ۱۶ـ مخاطبین

  1. با وارد کردن آدرس https://contact.elenoon.ir در مرورگر خود.

-        نحوه پیاده سازی

سرویس RESFULL مخاطبین نوشه شده که به صورت واسط با MAPI STORE برای نگهداری مخاطبین کاربران استفاده می شود در لایه UI با استفاده از PHP در بک و jquery و angularjs استفاده می شود.  

در زمان ارسال ایمیل کسانی که در بخش to وجود دارد با صدا زدن وب سرویس اضافه کردن به suggestion به لیست contact ها اضافه می شوند. در زمان نوشتن نام افراد در to افراد با استفاده از سرویس خواندن از suggestion ها پیشنهاد داده می شوند.

 

-        ماژول های استفاده شده و دلیل استفاده

استفاده از معماری سرویس گرا برای قابلیت یکپارچگی با کل سیستم

استفاده از MAPI برای ذخیره سازی مخاطبین در محیط کارا و یکپارچه شدن بهتر با ایمیل در تمامی محیط های کاربری.

استفاده از php/jquery/angularjs باعث شده رابط کاربری زیبا و سازگار با بخش های دیگر ایمیل ایجاد شود. وجود phpmapi استفاده از php را در بک ui ساده تر می سازد.

 

-        نسخه استاندارد پیاده سازی شده

  • استفاده از mapi
  • استفاده از angularjs و jquery

-        قابلیت ها

قابلیت اتصال به کلیه بخش ها به صورت RESFULL API

واسط کاربر سریع و مطمئن

 

-        امنیت

رمزنگاری tls در ارتباط کلیه بخش های سیستم با contact

استفاده از api key

 

-        پرتکل رمزنگاری

استفاده از پرتکل tls

 

Search Function

سرویس جستجو نیز از سرویس‌های مهم یک سامانه ایمیل می‌باشد، زیرا یک کاربران قطعا به جستجو در ایمیل‌های قبلی خود نیاز پیدا خواهد کرد.

در این سامانه امکان جستجوی در ایمیلها نیز وجود دارد. که بدین منظور بخشی از ایمیل مورد نظر را در کادر مربوط به جستجو نوشته و با زدن کلید enter و یا کلیک برروی علامت ذره‌بین عمل جستجو انجام می شود. مطابق شکل زیر:

شکل ۱۷ـ جستجو

 

-        الگوریتم جستجو

سرویس جستجو در پست الکترونیک النون، دارای امکان جستجوی کامل واژگان فارسی و انگلیسی می باشد. در این سرویس برای اطمینان از نتیجه ی جستجو و رسیدن به هدف مورد نظر، توجه به زبان ورودی صفحه کلید ضروری می باشد. جداسازی واژگان در این الگوریتم توسط فاصله انجام می پذیرد و جستجوی بخشی از عبارات که مدنظر کاربر می باشد و به صورت بخشی از واژگان است، بدین صورت مورد جستجو قرار می گیرد. به عنوان مثال، از واژه ی "پژوهش" برای جستجوی عبارت "پژوهشگاه"استفاده می گردد و در صورتی که کاربر عبارت "گاه" را وارد نماید، الگوریتم به دنبال واژه ای می گردد که با گاه شروع می شود مانند واژه ی "گاهی". بنابراین قرارگیری حروف در ابتدای کلمه به عنوان یک واژه ی مستقل (جداسازی شده با فاصله) ضروری می باشد. الگوریتم جستجوی به کار رفته در پست الکترونیک النون، نیم فاصله را در نظر نگرفته و همانند عبارت بدون فاصله رفتار خواهد کرد. به عنوان مثال جستجوی واژه ی " سیستم‌های" و "سیستمهای" منتهی به یک نتیجه می شود و الگوریتم، به صورت یکسان رفتار خواهد کرد. برای واژه هایی که مشابه عربی داشته باشد مثل ی، ک و گ، حالت های مختلف کلمه به ازای هرکدام در نظر گرفته می شود و به صورت or جستجو می گردد.

 

-        عملکرد سرویس جستجو

این سرویس با استفاده از xapian-core نوشته شده است که یکی از بهترین text search engine  رایگان و open source موجود است. هر ایمیل که وارد سیستم می شود توسط این سرویس به xapian داده شده و ایندکس می شود.

در این سرویس  تنظیماتی برای ایندکس کردن ایمیل براساس قسمت های مختلف مانند (گیرنده، فرستنده، محتوای پیوست ایمیل و ... ) وجود دارد.

 

-        نحوه پیاده سازی

برای پیاده سازی search از ابزار متن باز Xapian[1]  استفاده شده است این ابزار با توجه به سرعت مناسب هماهنگی خوبی برای index کردن پایگاه داده و ایمیل ها را دارا است. وب سرویس هایی برای استفاده از این ماژول توسعه داده شده است که با کمک ان به این سیستم ارتباط برقرار می شود. این وب سرویس ها به زبان php توسعه داده شده است.

 

-        ماژول های استفاده شده و دلیل استفاده

استفاده از Xapian  بدلیل هماهنگی خوب برای index کردن داده هایی که در mapi store ها ذخیره شده است. از ویژگی های این کتابخانه پشتیبانی از Ranked probabilistic search  است که در ایمیل کمک بسیار مناسب است.

 

-        نسخه استاندارد پیاده سازی شده

استفاده از xapian برای جستجو ایمیل

 

-        قابلیت ها

پشتیبانی از Ranked probabilistic search

سرویس های RESFUL جهت استفاده در تمامی قسمت ها

 

-        امنیت

  • استفاده از api key جهت دسترسی به سرویس ها
  • کلیه مبادلات با استفاده از tls رمز می شود.
  • کنترل کلمات stop word برای جستجو ها و جلوگیری از حمله dos با استفاده از stop word

 

-        پرتکل رمزنگاری

استفاده از tls v1 ,2

Create Folders

با توجه به تعدد ایمیلها دریافتی، امکان دسته‌بندی و پوشه‌بندی برای هر سامانه ایمیل ضروری است، در صورت وجود امکان پوشه بندی، دسترسی به ایمیل مورد نظر برای کاربر اسانتر می‌گردد.

در این سامانه امکان ایجاد پوشه نیز وجود دارد، برای ایجاد پوشه جدید بدین صورت عمل کرده که:

  1. در بخش ایمیل من کلیک راست کرده و گزینه پوشه جدید را انتخاب می کنیم.

شکل ۱۸ـ پوشه جدید (۲)

  1. بعد از کلیک روی گزینه پوشه جدید، پنجره زیر ظاهر می شود، که در بخش نام، نام پوشه مورد نظر و در بخش مکان پوشه ، بخشی که قرار است پوشه به آن اضافه گردد را انخاب کرده و برروی کلید تایید، کلیک می‌نماییم.

شکل ۱۹ـ پوشه جدید (۲)

در این سامانه امکان انتقال ایمیلها به پوشه های، با روش drag and drop نیز وجود دارد.

در این سامانه این امکان نیز وجود دارد که ایمیلهای دریافتی بصورت اتوماتیک به یک پوشه خاص انتقال داده شوند، برای این کار بصورت زیر عمل می‌شود:

  1. با کمک مراحل بالا یک پوشه جدید ایجاد می گردد.
  2. به بخش تنظیمات <- فیلترهای ایمیل رفته و برروی گزینه جدید کلیک می‌نماییم.

شکل ۲۰ـ فیلتر ایمیل (۱)

  1. پس از کلیک برروی گزینه جدید پنجره زیر ظاهر می‌گردد در این بخش در قسمت نام نقش، یک نام اختیاری برای این فیلتر ایمیل انتخال می‌کنیم، در قسمت زمانی‌که ایمیل ...، یکی از شرطهای موجود را انتخاب می کنیم، در قسمت انجام عملیات زیر ...، یکی از عملیات موجود، که در اینجا انتقال ایمیل به پوشه، می‌باشد را انتخاب کرده و بررسی گزینه ذخیره کلیک می‌کنیم.

شکل ۲۱ـ فیلتر ایمیل (۲)

  1. سپس برروی گزینه اعمال کلیک می‌کنیم.

-        نحوه پیاده سازی

معماری hierarchy model در پایگاه داده و mapi store ها امکان اینکه هر شی دارای container store باشند را فراهم می اورد این معماری پیاده سازی پوشه ها را ساده می کند. هر object ، mapi از جمله پوشه ها می تواند دسترسی تعریف کرد و به کاربران مختلف اجازه دیدن و یا تغییر ان ها داد.

امکان ذخیره سازی ایمیل ها به صورت دستی و یا به صورت اتوماتیک با تعریف فیلتر ها در ایمیل وجود دارد خود فیلتر ها نیز به صورت object هایی شامل شرط هایی در store mapi هر کاربر ذخیره می گردد.

 

-        ماژول های استفاده شده و دلیل استفاده

معماری hierarchy model در پایگاه داده و mapi store ها امکان  ذخیره سازی و مرتب سازی ایمیل ها را به صورت درختی را می دهد.

 

-        نسخه استاندارد پیاده سازی شده

معماری hierarchy model در پایگاه داده

Mapi store

 

-        قابلیت ها

دسته بندی با استفاده از ساختار درختی در سلسله مراتب به صورت کارا

امکان قرار دادن دسترسی بر روی پوشه ها

-        امنیت

استفاده دسترسی در پوشه ها امکان دفاع در عمق را بوجود می اورد و هر کاربر تنها ایمیل های مربوط به خود را می تواند مشاهده نماید.

 

Personal Signature

این قابلیت در سامانه های ایمیل از درجه اهمیت بالایی برخوردار نیست.

برای استفاده از این امکان به بخش تنظیمات <- ایمیل، رفته سپس در قسمت امضاء  می‌توان انواع مختلفی امضاء تعریف کرد.

شکل ۲۲ـ امضا

برای تعریف یک امضاء جدید بصوت زیر عمل می‌کنیم:

  1. برروی گزینه جدید کلیک کرده و در بخش نام یک نام اختیاری برای امضاء خود انتخاب می کنیم. در بخش زیر نام، متن امضاء را وارد کرده و سپس برروی گزینه ذخیره کلیک می‌کنیم.
  2. در قسمت امضاء می‌توان تمام امضاءهای که تعریف کرده ایم را مشاهده نماییم.
  3. در قسمت امضاء برای پیام‌های جدید مشخص می‌کنیم که برای پیامهای جدید از چه امضاءای استفاده شود، و در بخش امضاء برای پاسخ‌های و بازارسال‌ها ، نیز امضاء مورد استفاده برای پیامهای بازارسالی را مشخص می‌نماییم.

 

-        نحوه پیاده سازی

در mapi store مریوط به هر کاربر settings وجود دارد که ویژگی هایی مانند امضا شخصی و زبان در ان ذخیره می گردد. بعد از ذخیره سازی در ui با استفاده از php mapi قابلیت دسترسی به آن وجود دارد.

 

-        ماژول های استفاده شده و دلیل استفاده

استفاده از mapi store استاندارد ذخیره سازی ما در این نرم افزار است. و اطلاعات کاربر نیز در این بخش ذخیره می گردد.

 

Spell Check

ویرایش گر املایی (Spell Check) مورد استفاده در پست الکترونیکی بومی النون، ویراستیار می باشد که قادر است کلمه، جمله و پاراگراف را بررسی کرده و پیشنهادات اصلاحی را برای واژگان مشخص نماید. کاربر با بررسی این پیشنهادات می تواند تغییر مورد نظر را برای آن کلمه در همان جمله و یا در سایر سطرهای متن اعمال نماید. کاربر می تواند پس از نوشتن متن ایمیل، برای مشخص کردن مشکلات نگارشی خود، بر روی گزینه ی ویرایشگر متن کلیک نماید و ویرایشگر ایمیل پس از بررسی متن، پیشنهادات را با کشیدن خط قرمز در زیر متن مشخص می نماید و سپس کاربر با کلیک بر روی آن، تمامی پیشنهاداتی که ویرایشگر برای آن کلمه مشخص کرده را مشاهده می نماید و پیشنهاد درست تر را برمی گزیند.

مطابق تصویر زیر:

شکل ۲۳ـ spell check (1)

که با کلیک راست برروی کلمه نادرست، کلمات با املاء درست را به شما پیشنهاد می‌دهد. مطابق تصویر زیر:

شکل ۲۴ـ spell check (2)

همچنین در صورت درست بودن املاء این کلمه با انتخاب گزینه Add to dictionary آنرا به دیکشنری اضافه کرده تا در دفعات بعد این کلمه را بعنوان کلمه اشتباه در نظر نگیرد.

 

-        نحوه پیاده سازی

برای این منظور در text editor ما که از TinyMCE استفاده می کنیم. این ادیتور spell check در خود برای زبان انگلیسی دارد. همچنین برای زبان فارسی از ویرایشگر متن ویراستیار استفاده شده است.

 

-        ماژول های استفاده شده و دلیل استفاده

استفاده از TinyMCE با توجه با سازگاری با مرورگر های مختلف و مناسب برای ساخت ایمیل

 

Rich Text Editor

ویرایشگر متنی می‌تواند یکی از مهمترین ویژگیهای یک سامانه ایمیل باشد، در صورتی که سامانه از یک ویرایشگر قوی و کارآمد بهره ببرد، کاربر در نوشتن متن با مشکل مواجه نشده و بیشتر نیاز‌های وی را برطرف می‌نمایید.

این سامانه از ویرایشگر Tiny بعنوان ویرایشگر متنی خود بهر می‌گیرد که یکی از قویترین ویرایشگرهای موجود می‌باشد، در ادامه بخشی از امکانات این ویرایشگر ذکر می‌گردد:

  1. قابلیت انتخاب فونت های مخلف فارسی و انگلیسی
  2. قابلیت انتخاب اندازه قلم
  3. امکان italic، bold و Underline کردن متن
  4. امکان SubScript و SuperScript
  5. امکان انتخاب رنگ متن
  6. امکان انتخاب رنگ پس‌زمینه متن
  7. امکان راست‌چین، وسط‌چین و چپ‌چین کردن متن
  8. امکان RTL و LTR متن
  9. امکان Numbered list  و Bullet list
  10. امکان ایجاد/حذف لینک برای بخشی از متن
  11. امکان وارد کردن تصویر در متن
  12. امکان قرار دادن emoji در متن
  13. امکان copy متن از word

در تصویر زیر این امکانات قابل مشاهده می‌باشند:

شکل ۲۵ـ ویرایشگر متن

 

-        نحوه پیاده سازی

  • برای این منظور در text editor ما که از TinyMCE استفاده می کنیم. این ادیتور spell check در خود برای زبان انگلیسی دارد.

 

-        ماژول های استفاده شده و دلیل استفاده

استفاده از tinymce بدلیل قدرت و مشکل کمتری که با زبان فارسی دارد. همچنین این ادیتور در محیط های HTML5 و angularjs نیز به خوبی کار می کرد. پشتیبانی از این ادیتور نیز به خوبی صورت می گیرد

-        نسخه استاندارد پیاده سازی شده

Tinymce  به عنوان ادیتور در وب استفاده شده است.

 

-        قابلیت ها

ادیتور زیبا و سبک دارای قابلیت های زیادی از جمله پلاگین های زیادی برای افزودن قابلیت هایی مانند spell check

 

-        امنیت

نسخه های اخر این سیستم مشکلات امنیتی خاصی ندارد. ما قسمت هایی که استفاده نمی کردیم کد هایش را حذف کردیم و امن سازی را در این ادیتور انجام دادیم علاوه بر این در php و انجین mapiتابعی برای htmlencode کردن به صورتی که از حمله xss جلوگیری نماید تعبیه شده است.

 

View Attachments

برای مشاهده ایمیلهای که دارای پیوست هستند با کلیک برروی هر پوشه مثلا صندوق ورودی، هر ایمیل که دارای پیوست باشد، دارای یک گیره می باشد، همانند تصویر زیر:

شکل ۲۶ـ مشاهده پیوست (۱)

همچنین برای مشاهده پیوست آن ایمیل، با بازکردن آن ایمیل در بخش پیوست‌ها، پیوست آن ایمیل و حجم آن قابل مشاهده می‌باشد. همانند تصویر زیر:

شکل ۲۷ـ مشاهده پیوست (۲)

پست الکترونیک بومی النون همچنین امکان نمایش فایل های پیوست را در مرورگر به کاربر می دهد. بدین صورت که با کلیک بر روی پیوست های ایمیل، با توجه به نوع فایل ضمیمه شده، مرورگر آنها را نمایش داده و کاربر می تواند در صورت نیاز، آنها را ذخیره نماید.

 

-        نحوه پیاده سازی

در mapi فایل های attachment به صورت فشرده شده با zip7 در نود های مختلف توزیع شده ذخیره می شود.سرویس در mapi برای جدا سازی فایل ها attach از mime ایمیل نوشته شده است. که امکان نمایش انها را بوجود می اورد.

 

Auto Reply

قابلیت پاسخ خودکار یکی از قابلیتهایی که به کاربران این امکان را می‌دهد، در صورتیکه برای مدتی به اینترنت دسترسی نداشته باشند ویا بهر دلیل امکان مشاهده ایمیل‌های خود را ندارند، به افرادی که برای آنها ایمیل ارسال می‌کنند، خبر دهد.

برای استفاده از این سرویس باید به بخش تنظیمات <- خارج از محل کار برویم و با انتخاب گزینه من هم اکنون خارج از محل کار هستم یک موضوع و یک پیغام را نوشته تا زمانیکه می‌خواهیم پاسخ پیامها بصورت خودکار داده شود، این گزینه را انتخاب نماییم، برای اعمال تغییرات برروی کلید اعمال کلیک می‌نماییم.

شکل ۲۸ـ پاسخگویی خودکار

-        نحوه پیاده سازی

در انجین mapi و در settings مربوط به کاربر بخشی وجود دارد که مشخص می کند کاربر می خواهد به صورت خودکار به ایمیل ها پاسخ داده شود. پس از این تنظیم به صورت خود کار پیامی که کاربر ثبت کرده برای ایمیل ارسال می کند.

 

-        امنیت

بدلیل نوشتن کد در انجین اصلی ایمیل کلیه کنترل ها از جمله تعداد ایمیل های دریافتی و وضعیت spam بودن ایمیل های دریافتی تنها به ایمیل های مورد نیاز پاسخ داده می شود و دفاع در عمق رعایت می شود.

 

Undo send

این ویژگی این قابلیت را برای کاربر فراهم می کند که بتواند در مدت زمان محدودی بعد از زدن دکمه ارسال، عملیات ارسال ایمیل را لغو کند. مدت پیش فرض درنظر گرفته شده برای لغو عملیات ارسال ایمیل، برابر با 15 ثانیه می باشد. کاربر باید توجه نماید که در این مدت، در صورتی که پنجره ی مرورگر را ببندد، به منزله ی لغو عملیات ارسال ایمیل می باشد و ایمیل به مقصد مورد نظر ارسال نخواهد شد.

 

Filter to e.g. only see newsletters or Emails from contacts

امکان فیلترینگ یکی از امکانات موثر در جلب رضایت کاربران ایمیل می‌باشد، با کمک این امکان کاربران می‌توانند براحتی ایمیلهای دریافتی خود را دسته‌بندی کنند، تا در زمان مطالعه، بررسی و جستجوی ایمیل راحت‌تر عمل کنند.

در سامانه ایمیل النون امکان فیلتر کردن ایمیل های دریافتی وجود دارد، بدین معنی که کاربر می‌تواند یک فیلتر تعریف نماید که زمانیکه یک ایمیل از آدرس خاصی، دارای کلمه خاصی در متن یا در آدرس فرستنده و ... بود، فعل خاصی مانند، انتقال ایمیل به پوشه خاص، ارسال یک پیامک، حذف ایمیل و ... صورت پذیرد.

برای استفاده از این سرویس باید مراحل زیر را انجام دهید:

  1. به بخش تنظیمات <- فیلترهای ایمیل رفته و برروی گزینه جدید کلیک می‌نماییم.

شکل ۲۹ـ فیلتر ایمیل (۱)

  1. پس از کلیک برروی گزینه جدید پنجره زیر ظاهر می‌گردد در این بخش در قسمت نام نقش، یک نام اختیاری برای این فیلتر ایمیل انتخال می‌کنیم، در قسمت زمانی‌که ایمیل ...، یکی از شرطهای موجود را انتخاب می کنیم، در قسمت انجام عملیات زیر ...، یکی از عملیات موجود، که در اینجا انتقال ایمیل به پوشه، می‌باشد را انتخاب کرده و بررسی گزینه ذخیره کلیک می‌کنیم.

شکل ۳۰ـ فیلتر ایمیل (۲)

  1. سپس برروی گزینه اعمال کلیک می‌کنیم.

-        نحوه پیاده سازی

در setting کاربر در store mapi مربوطه شرط و action  می توان تعریف کرد این شرط ها و action ها در زمان دریافت ایمیل بررسی می شود در صورتی که هر یک از شرطها محقق شود انجین action مربوط به ان شرط را تعریف می کند متناظر این ها در phpmapi دستورات لازم برای تعریف شرط ها وجود دارد.

 

-        ماژول های استفاده شده و دلیل استفاده

استفاده از انجین ایمیل بدلیل سرعت بالا در بررسی action ها و انجام آنها

 

-        امنیت

در انجین mapi و action مربوط به forward messageid و refrenceid برای تشخیص loop ارسال کنترل می شود. تا action مربوط به forward موجب ایجاد loop ارسال بی نهایت ایمیل نشود و حمله dos نشود.
 

Spam filter

با توجه به افزایش ایمیلها تبلیغاتی، سرویس اسپم می‌تواند مهمترین بخش یک ایمیل باشد، اگر سرویس اسپم یک سامانه ایمیل بدرستی کار نکند، کاربر ایمیلهایی را در صندوق ایمیل خود دریافت می‌کند، که غیرضروری بوده و همین مشکل موجب ایجاد نارضایتی شدید کاربران شده و بررسی ایمیل را برای آنها با مشکل روبرو خواهد کرد.

در این سامانه از سرویس amavist بعنوان آنتی اسپم و از سرویس clam بعنوان آنتی ویروس استفاده شده است، در زمان دریافت یک ایمیل، سرویس amavist ایمیل را بررسی کرده و براساس سیاستهای تعیین شده به آن امتیازهای می‌دهد و در انتها بررسی می‌کند در صورتی که آن ایمیل امتیازهای لازم برای اسپم شدن را دریافت کرده باشد، بصورت خودکار ایمیل را به پوشه هرزنامه (spam) منتقل می‌نمایید.

 

-        عملکرد اسپم و سرویس های مورد استفاده

  • Amavisd-new

Amavisd-new به عنوان یک رابط میانی بین میل سرور (postfix)  و سرویس های فیلتر محتوای (SpamAssassin) قرار می گیرد وبا استفاده از تحلیل امتیازهای به دست امده از نتایج سروریس های فیلتر محتوا یک محیط قرنطینه برای فرستنده های مخرب ایجاد می کند درواقع وظیفه بررسی محتوا را برعهده سروریس دیگر قرار داده است. از مهمترین خصوصیات این رابط میانی عبارت است از :

Reliability

سرویس amavis با ذخیره ی state ایمیل ها در صف ، در مواقع بروز خطا در هنگام بررسی محتوای ایمیل هیچ ایمیل را از دست نداده و دچار Lost data نمی شویم

Security

سرویس amavis  طوری طراحی شده است که با داشتن کمترین دسترسی های سیستمی اجرا شود تا با ایمیل مخرب دچار buffer overflows نشود

Performance

سرویس amavis با اینکه با زبان مفسری perl نوشته شده است به دلیل طراحی درست در کد نویسی و اجتناب  کردن از تبادل کردن داده ها به طور متناوب در بین ماژول های مختلف دارای کارایی خوبی می باشد.

 

  • SpamAssassin

spamassassin با داشتن تکنیک های مختلف (DNS-based fuzzy-checksum Bayesian) دربررسی  محتوای ایمیل یکی از کارآمدترین spam filter هاست

از مهمترین خصوصیات این سرویس عبارت است از

subprogram usage: این سرویس می تواند به صورت یک زیر برنامه در اختیار سرویس های دیگر قرار بگیرد.

Operation: این سرویس دارای کاملترین  رول های مختلف در بررسی header و body ایمیل است و می تواند تمام موارد تست کند

سرویس sa-learn: با استفاده از این سرویس می توان اسپم های جدید را به SpamAssassin  اموخت تا ایمیل مشابه این ایمیل را اسپم کند

 

  • clamav

آنتی ویروس پیش بینی شده برای سیستم ClamAV است. مهمترین دلیل استفاده از ClamAV همخوانی بالا با فیلتر محتوای amavisd-new است. علاوه بر این موارد زیر نیز در اتخاب ClamAV موثر بوده است:

1-    به روزرسانی منظم پایگاه اطلاعات ویروس ها

2-    سهولت به روزرسانی

گستردگی استفاده خصوصا در کنار میل سرورهای تحت لینوکس

 

-        نحوه پیاده سازی

در این سامانه amavis و انتی ویروس تگ هایی را در header mime مروبط به ایمیل ایجاد می کنند. سرویس انجین ایمیل با پردازش این تگ ها در صورتی که score اختصاص داده شده دارای تگ spam باشد به پوشه mapi spam منتقل می کند. به صورت پیش فرض تمامی کاربرن در store mapi خود پوشه به نا spam دارند.

علاوه بر این برای learn کل سیستم spam mime ایمیل به الگوریتم bayesian learning spam ارسال می شود. برای کمک بهینه سازی شده در spam موارد مربوط به چک spf بازنویسی شده است و RBL ها و pattern های ویروس اختصاصی به سیستم اضافه شده است.

ادمنین های سیستم در RBL ها مربوطه را کنترل می کنند و pattern های مورد نظر را در ان وارد می کنند.

 

-        ماژول های استفاده شده و دلیل استفاده

از spamassassin و clamav برای انتی ویروس و انتی spam بدیل متن باز بودن و قابلیت توسعه خوب انتخاب شد. علاوه بر این مواردی توسعه هایی در زمینه SPF چک و RBL ها در این سیستم انجام شد.

 

-        نسخه استاندارد پیاده سازی شده

استفاده از spamassassin و clamav و amavis

 

-        قابلیت ها

مقاوم بودن در برابر دور زدن spf check در different header

پیاده سازی لیست سیاه و سفید اختصاصی

 

-        امنیت

  • مقاوم بودن در برابر دور زدن spf check در different header
  • امن سازی در برابر حملات anti spam check و محدود سازی حملات مروبط penpals  و لیست های سفید
  • موارد مربوط به DKIM و RDNS در این سیستم ذخیره شده است

 

Report Spam

سرویس Amavist یک سرویس یادگیرند می‌باشد، بدین صورت که کاربر می‌تواند در تشخیص اسپم به این سرویس کمک کند، بدین منظور در صورتیکه کاربر یک ایمیل را که اسپم می‌باشد را در صندوق ایمیل خود دریافت کند، می‌بایست با کلیک راست برروی ایمیل و انتخاب گزینه افزودن به فهرست هرزنامه ایمیل را به پوشه هرزنامه منتقل نمایید، و با این کار به سرویس اسپم کمک کند تا زین پس اینگونه ایمیلها را بعنوان اسپم شناسایی کند، همانند شکل زیر:

شکل ۳۱ـ اسپم (۱)

برعکس اتفاق بالا نیز وجود دارد، اگر ایمیل دریافتی بهر دلیلی بصورت اشتباه بعنوان یک ایمیل اسپم شناسایی شده و در پوشه هرزنامه قرار گرفت، می توان با کلیک برروی آن ایمیل و انتخاب گزینه حذف از فهرست هرزنامه ایمیل را به صندوق ورودی منتقل کرد و به سرویس Amavist کمک کرد تا زین پس این ایمیل را بعنوان اسپم شناسایی نکند، همانند تصویر زیر:

شکل ۳۲ـ اسپم (۲)

 

-        نحوه پیاده سازی

سرویس های Restful برای ارتباط با amavis نوشته شده است این سرویس ها امکان ارتباط بر قرار کردن با سیستم اسپم را فراهم می کند. در ui ایمیل پلاگین نوشته شده است. که با زدن دکمه spam ایمیل مذکور به پوشه spam تغییر می کند. در انجین mapi برای ایمیل های جدیدی که به پوشه اسپم منتقل شده اند اقدامات زیر صورت می گیرد.

  • اضافه کردن MIME برای bayesian learning spam (با فراخوانی سرویس Restful مربوطه توسط انجین ایمیل)
  • به روز رسانی لیست سیاه و سفید با توجه به تغییرات پوشه sapm  ( با فراخوانی سرویس Restful مربوطه توسط انجین ایمیل)

 

-        قابلیت ها

معماری سرویس گرا با توجه به نوشتن سرویس های Restful بر روی سیستم تشخیص spam

یکپارچگی انجین ایمیل با سیستم انتی اسپم با معماری سرویس گرا

-        امنیت

  • کلیه مبادلات با سرویس انتی spam به صورت رمز شده یا TLS انجام می شود
  • سرویس ها با استفاده از APKIKEY محافظت می شود.
  • سیستم در برابر سوء استفاده spf Fail برای لیست و سفید مقاوم است. در صورتی که کاربر خود را به جای کاربری جا بزد که در لیست سفید است باز هم ایمیل او spam می شود.

 

-        پرتکل رمزنگاری

TLSv1,2

 

Auto Save

قابلیت ذخیره خودکار در سامانه ایمیل از درجه اهمیت متوسطی برخوردار می‌باشد، این قابلیت این امکان را به کاربر می‌دهد که متن ایمیل بعد از یک مدت زمان معلوم در پوشه پیش‌نویس ذخیره گردد، تا در صورت قطع ارتباط با سرور ایمیل، متن نوشته شده، پاک نگردد.

این قابلیت در سامانه ایمیل بدین صورت وجود دارد که اگر زمان نوشتن ایمیل بیش از یک دقیقه طول بکشد، بصورت خودکار، ایمیل در پوشه پیش نویس ذخیره می‌گردد.

مدت زمان ذخیره خودکار را می‌توان به دلخواه خود تغییر داد، برای انجام اینکار به بخش تنظیمات <- ایمیل میرویم و مقدار ذخیره خودکار ایمیلهای ارسال نشده را به مقدار دلخواه تغییر می‌دهیم و سپس برروی گزینه اعمال کلیک می‌کنیم. همانند تصویر زیر:

شکل ۳۳ـ ذخیره خودکار

-        نحوه پیاده سازی

در پیاده سازی این ویژگی در بازه های زمانی که در js مشخص شده است کد مربوط به ایمیل به سرویس ذخیره سازی ایمیل ارسال می شود این سرویس ایمیل را در پوشه DRAFT که به صورت پیش فرض در store هر کاربر وجود دارد ذخیره می گردد. در settings مربوط به هر کاربر در mapi store عددی وجود دارد که مشخص می کند بعد از چه زمانی ایمیل ذخیره سازی شود.

 

-        امنیت

  • ارتباطات با  mapiو ui به صورت رمز شده تحت TLS صورت می گیرد.
  • تمامی ایمیل ها ابتدا در Draft ذخیره می گردد سپس ارسال می شود تا در صورت پر بودن صف ها ایمیل از بین نرود.
  • برای ارسال ایمیل صف های مختلفی برای کنترل بار سرور تعبیه شده تا ایمیل در استفاده تعداد زیاد کاربر همزمان از بین نرود.(صف DRAFT ، outbox، spooler ، (postfix

 

-        پرتکل رمزنگاری

TLSv1,2

 

Account recovery

در حال حاضر این قابلیت بصورت دستی وجود دارد، بدین صورت که اگر کاربر اکانت خود را پاک نمایید با اطلاع رسانی به ادمین‌های ایمیل و دریافت شناسه کاربر امکان برگرداندن ایمیل‌های قبلی وی وجود دارد.

 

-        نحوه پیاده سازی

در ایمیل النون هیچ چیز دفعتا پاک نمی شود. بلکه پایگاه داده به صورتی است که دارای فیلد به نام isdelete است. که true بودن ان به معنی پاک شدن ان رکرد است. بنابراین تغییر در پایگاه داده قابل ردیابی در بازه های به تشخیص ادمین garbage collector بر روی store ها اجرا و موارد که isdelete برابر 1 دارند پاک می کند.

در پایگاه داده جدولی وجود دارد.و که شناسه مربوط به mapi store را به شناسه کاربر map می کند. در زمانی که کاربر مشخصات تغییر می کند و isdelete مربوط به  ان یک می شود می توان با برگردادن این رکرد دو باره account را بازگرداند.

 

-        قابلیت ها

برگردادن ایمیل ها و account های حذف شده با کمک isdelete و تغییر این فیلد.

در حال حاضر ui برای این بخش نوشته نشده و این کار توسط ادمین های سیستم و اپراتور ها انجام می شود.

 

-        امنیت

نگه داشتن کپی تمامی تغییرات کاربر این امکان را به ما می دهد در صورتی که در سیستم مشکل و رخنه ایجاد شد سیستم را به وضعیت stable در زمان مشخص برگردانیم.

 

سرویس ذخیره سازی ابری (درایو مجازی)

یکی از سرویس‌های یکپارچه شده با سرویس پست الکترونیکی بومی النون، سرویس درایو می باشد که به کاربر این امکان را می دهد تا سقف حجم 3GB از این سرویس به صورت رایگان استفاده نماید. همچنین درایو مجازی النون از زبان فارسی به طور کامل پشتیبانی می نماید. کاربران می توانند با به اشتراک گذاری لینک فایل ها، به انتقال فایل های خود با افراد دیگر اقدام نمایند. این درایو به کاربر امکان ایجاد پوشه‌ و زیر مجموعه و انتقال فایل بین پوشه‌ها را می دهد. با استفاده از برنامه Owncloud Desktop می توان درایو را بر روی دسکتاپ خود منتقل کرد و با آپدیت فایل ها در برنامه، درایو مجازی النون نیز آپدیت می گردد و رابط کاربری ساده و سریعی را برای کاربران فراهم می آورد. از دیگر قابلیت های درایو النون می توان به قابلیت رمز گذاری روی برنامه جهت حفظ امنیت، شناسایی انواع فایلها و اجرای آنها داخل برنامه، اجرای فایلهای صوتی و تصویری، قابلیت گزارشگیری از فعالیتهای انجام شده در سرویس، امکان مشاهده جزئیات فایلها و تغییر نام آنها و قابلیت تنظیم برنامه، ارسال بازخورد و دعوت از دوستان اشاره کرد.

شکل ۳۴ـ درایو مجازی

سرویس نقشه

سرویس نقشه ی النون، نقشه ی ایران را شامل می شود که استانها و شهرها و مسیرهای ارتباطی را مشخص نموده است. امکان بدست آوردن مختصات جغرافیایی هر نقطه از ایران در این نقشه وجود دارد. همچنین مکان های مهم مانند مساجد و ... نیز در این نقشه مشخص شده است. برای توسعه ی این نقشه می توان موارد زیر را در نظر گرفت:

  • توسعه ی نقشه فراتر از مرزهای ایران
  • امکان مسیریابی با توجه به مبدا و مقصد مورد نظر
  • پیشنهادات مربوط به حرکت با وسایل نقلیه عمومی، خودروی شخصی و پیاده
  • ارائه نقشه ترافیکی ایران
  • امکان ثبت مکان های مورد نظر کاربران و ...

 

شکل ۳۵ـ سرویس نقشه

 

سرویس تقویم

سرویس تقویم یکی از مهمترین سرویس های یکپارچه شده با سرویس پست الکترونیکی النون می باشد. این سرویس به کاربر امکان تعریف تقویم شخصی، یادآوری ها، مشخص کردن زمان های شروع و پایان، اولویت دهی، دعوت گروهی افراد و ... را می دهد. کاربران می توانند با تعریف تقویم برای دعوت از دوستان اقدام نمایند؛ بدین صورت که پس از مشخص کردن موضوع تقویم، زمان شروع و پایان جلسه، برچسب و متن دعوت، افرادی را که می خواهیم به جلسه دعوت کنیم را انتخاب کرده و پست الکترونیکی النون، تقویم را برای آن افراد ارسال می نماید و گیرندگان پس از دریافت دعوت نامه از طریق ایمیل، می توانند قبول کنند و یا دعوت را نپذیرند که پس از آن، جواب پذیرش برای دعوت کننده فرستاده می شود و دعوت کننده می تواند تعداد شرکت کنندگان در جلسه را مشخص نماید.

شکل ۳۶ـ سرویس تقویم

 

سرویس ایجاد Task

یکی ازسرویس های پرکاربرد النون، سرویس ایجاد Task می باشد که کاربر می تواند کارهای روزمره ی خود را برنامه ریزی نماید. این سرویس امکان دسته بندی کارها، گزارش وضعیت انجام کار، تاریخ شروع و پایان، مجموع کار و ... را برای کاربر فراهم می آورد. از موارد قابل توسعه در این سرویس عبارتند از:

  • امکان ایجاد Task برای افراد دیگر و ایمیل Task ها و مایل استون ها به فرد مورد نظر
  • ایجاد سلسله مراتبی Task ها و تعریف انواع مختلف آن
  • امکان ایجاد لاگ بر روی Task ها
  • امکان اولویت بندی تسک ها با توجه به اهمیت آن

شکل ۳۷ـ سرویس ایجاد Task

 

سرویس یادداشت

با توجه به نیاز افراد به یادداشت برداری به منظور ثبت متون که برای مقاصد مختلف مورد استفاده قرار بگیرد، سرویس یادداشت با سرویس پست الکترونیکی النون یکپارچه شده است و به کاربر این امکان را می دهد تا یک دسته بندی برای یادداشت های خود ایجاد نماید و به صورت درختی آنها را توسعه دهد. این یادداشت ها به صورت بلوکی در کنار هم قرار می گیرند و کاربر می تواند با توجه به دسته بندی که ایجاد کرده است، به یادداشت مورد نظر دسترسی پیدا کند.

شکل ۳۸ـ سرویس یادداشت

 

سرویس پنل پیامک

دیگر سرویسی که با سرویس پست الکترونیکی بومی النون یکپارچه شده است، سرویس پیامک می باشد، این سرویس امکاناتی از قبیل هشدار هنگام ورود به سیستم، ارسال ایمیل همراه پیامک و دریافت پیامک در صورت دریافت ایمیلهای مهم را برای کاربران فراهم میکند.

سرویس پنل پیامک دارای ظاهری کاربر پسند می باشد، یکی از مهمترین ویژگیهای این سرویس نمایش تمام پیامکهای ارسالی و دریافتی کاربران بصورت Conversation می باشد. این سرویس امکان ارسال پیامک برای شماره تلفنهایی که عضو ایمیل النون نیستند را نیز برای کاربران فراهم می کند. کاربران این سرویس می تواند به کمک این پنل برای کاربران النون ایمیل نیز ارسال کنند.

در این پنل امکان کاربران می تواند موجودی شارژ خود را نیز مشاهده نمایند.

شکل ۳۹ـ سرویس پنل پیامک

 

نسخه های استاندارد پیاده سازی شده

version

service

7.2.3

https://www.zarafa.com

Mail-core

Webapp

https://www.zarafa.com

Webmail1

7.4.71afterlogic

https://www.afterlogic.com

Webmail2

postfix-2.10.1

http://www.postfix.org

MTA

amavisd-new-2.10.1

https://www.ijs.si/software/amavisd

MTA-CONTENTFILTER

3.4.0 spamassassin

http://spamassassin.apache.org

ANTSPAM

clamav-server-0.99.2

https://www.clamav.net

ANTIVIRUSE

5.5.47-MariaDB

http://mariadb.org

DATABASE

OpenDKIM Filter v2.10.3

http://www.opendkim.org

dkim

cluebringer-v2.1.x

http://wiki.policyd.org

Limiter mail

Jdk-1.7

Java

Cas-4.0.1

https://www.apereo.org/projects/cas/download-cas

Central Authentication Service 

 



[1] https://xapian.org/