Outgoing mail – проверка за писма в мейл лог
Съдържание
Съобщенията, които се обработват от мейл сървъра се записват в лог файл и съдържат голям брой мета-данни за съобщението - време, техническа информация (IP, ID…), подател, получател, тема, статус и т.н.
Тази информация се съхранява за определен период от време (28 дни) и след това се премахва. Една от целите за създаване на този филтър е да може клиента да провери и запази избрана част от записите в лог файловете преди те да бъдат изтрити от сървъра. Между изпращането на съобщението и появата на записа в лог файла има кратко закъснение, обикновено в рамките на 10 минути.
Независимо от големината на акаунта филтъра е настроен да връща най-много 1000 резултата за конкретно запитване.
В нов прозорец ще се зареди панела на приложението и в главната страница кликнете иконата Logs в секция Outgoing или линка Logs в подменюто Outgoing в навигационната лента:
Създаване на заявка (Query Rules)
На изображението виждате началния екран на приложението:
Най-общо можем да разделим панела на две области. В горната област се намират следните три полета:
- списък с елементите на съобщението;
- логически оператор;
- атрибути или стойности на елементите.
Заявката по подразбиране на разговорен език може да се прочете по следния начин: покажи ми съобщенията, изпратени през последните седем дни.
Ако кликнете бутона Show Results ще се заредят всички налични (max 1000) записи за съобщения, изпратени от вашите пощенски акаунти към домейна:
Падащото меню предлага достъп до следните логически оператори:
previous - предишен (трябва да се въведе число в първото поле и да се избере една от опциите в полетата минути, часове, дни, седмици, месеци), показва съобщения, изпратени в интервала между посоченото и текущото време.
on - на дата (при кликане в полето се зарежда календар, в който избирате ден от месеца), показва съобщения, изпратени на посочената дата.
before - преди (при кликане в полето се зарежда календар, в който избираме дата; при кликане върху полето в долната част [Select Time] календара се превръща в часовник за точно настройване на времето); показва съобщения, изпратени преди посочените дата и час.
after - след (работи по същия начин както before), показва съобщения, изпратени след посочените дата и час.
between - между (при кликане в двете полета поотделено се настройва интервал от време по същия начин, както за операторите before и after), показва съобщенията, изпратени в посочения интервал.
Под падащото меню с елементите на заявката, означено с Quick select има три линка, които автоматично изчисляват текущото време и при кликане създават следните заявки:
- Yesterday - показва съобщенията, изпратени през вчерашния ден;
- Last week - показва съобщенията, изпратени през предишната седмица (седем дни);
- Last month - показва съобщенията, изпратени през последния календарен месец (например 01.01 - 01.02).
Елементи на съобщението и логически оператори
Списъка с елементи на имейл съобщенията, които може да използвате за филтриране на записите в лог файла е твърде голям и голяма част от тях служи единствено на системни администратори с root достъп до мейл сървърите:
Различни групи от елементите в списъка ползват различни логически оператори, които ще разгледаме в тази част от статията. Най-голямата група елементи ползва логически оператор с опция по подразбиране contains, където всеки отделен оператор означава следното:
- Contains - съдържа - например дали адреса (support@icn.bg) на подателя съдържа израза sup;
- Does not contain - не съдържа;
- Equals - равно - в полето трябва да въведем пълното име, дума или точна цифра (support@icn.bg);
- Does not equal - не е равно;
- Starts with - започва - например дали адреса (support@icn.bg) на подателя започва с sup;
- Ends with - завършва - например дали адреса (support@icn.bg) на подателя завършва с bg;
- Matches - съвпада - например дали адреса (support@icn.bg) на подателя съвпада с support@icn.bg;
- Does not match - не съвпада.
В примера заявката означава следното - покажи ми всички писма, в които адреса на получателя съдържа dir - като резултат се зареждат всички писма, изпратени до пощи в dir.bg:
Следващата група съдържа само два логически оператора:
- is - e - например дали локацията на подателя е на посоченото място;
- is not - не е.
При кликане в текстовото поле и въвеждане на няколко букви на латиница се зарежда списък с предположения, от които може да изберете това, което считате за подходящо - само за примера избираме Germany:
В резултат на тази заявка ще се заредят само писма, изпратени от Германия. Явно тази опция може да е полезна само за международни корпорации, които ползват същият софтуер.
Група от математически оператори, които се използват за сравнение на числа (в случая - размер на писмо):
- Equals - равно - в полето трябва да въведем само число;
- Does not equal - не е равно.
Заявката в примера означава - покажи ми всички изпратени писма с размер по-голям от 9999 bytes:
Размера за сравнение трябва да бъде посочен в байтове (bytes), при въвеждане на съкращение ще получите грешка:
Следващите оператори следят, най-общо казано, за принадлежност към множество:
- is one of - е един от - дали в лог файла има записи за писма, които принадлежат към някой от класовете в посочената група;
- is not one of - не е един от;
- matches - съвпада - ако е посочен само един клас;
- does not match - не съвпада с посочения клас.
Когато кликнем в полето и започнем да пишем автоматично се зарежда списък с предположения, от които може да изберем онова, което считаме за подходящо:
За улеснение софтуера ни предлага два линка с готови класове:
Good mail - всички класове означават писмо с легитимно съдържание, което не задейства никакви защитни филтри:
Bad mail - всички форми на нежелани писма:
Елемента Статус на писмо е един най-често използваните, тъй като логично е да проверяваме кои писма не са доставени за да изпратим ново писмо или за да опитаме да се свържем с получателя по друг начин.
Статус елемента ползва същата група оператори, но съдържа други групи с атрибути:
Accepted - приети:
Not accepted - отхвърлени:
Може да използвате само един атрибут, например bounced като изтриете всички останали класове от готовия линк или като кликнете в полето и изберете съответния клас от списъка с предложения:
Елемента Delivery port използва следните оператори за сравняване:
- Equals - равно - в полето трябва да въведем само номер на порт;
- Does not equal - не е равно;
- Greater than - по-голямо;
- Less than - по-малко;
- Greater than or Equals - по-голямо или равно;
- Less than or Equals - по-малко или равно.
Заявката означава: покажи всички писма, които са изпратени на по-висок порт от 26. Резултат - нула изпратени писма.
В същата заявка сменяме само оператора и виждаме, че всички писма са изпратени през порт, по-малък от 26 (т.е. през стандартния SMTP порт 25):
С този пример завършихме представянето на логическите оператори, които ползват елементите от писмата.
В таблицата по-долу показваме какво означават отделните елементи:
Име на елемент | Означава |
---|---|
Message ID | ID на съобщението |
Filtering host | Филтриращ хост |
Timestamp | Дата и час |
Auth username | Удостоверяване на потребителско име |
Identity | Идентичност |
Sender | Подател |
Recipient | Получател |
Sender hostname | Хост име на подателя |
Sender IP | IP адрес на подателя |
Sender location | Местоположение на подателя |
Bytes received | Получени байтове |
Bytes sent | Изпратени байтове |
Main class | Основен клас |
Sub class | Подклас |
Extra class | Екстра клас |
Error class | Клас на грешка |
From | От, адрес на подателя на писмото |
To | До, адрес на получателя на писмото |
CC | Адрес за изпращане на копие на писмото |
Subject | Тема на писмото |
Original message ID | Идентификатор на оригиналното съобщение |
Status | Статус |
Delivery date | Дата на доставяне |
Delivery IP | IP на доставяне |
Delivery hostname | Хост име на доставчика |
Delivery port | Порт за доставяне |
Delivery data | Данни за доставяне |
Delivery interface | Интерфейс за доставяне |
На следващия ред има три панела, през които указвате как да бъдат подредени резултатите при изпълнение на заявка.
В първия панел Group results by от падащия списък с елементи може да изберете някой от елементите, според който да бъдат подредени писмата. Например Timestamp (дата и час), Status (статус) или Sender (подател):
При кликане в панела Group results by се зарежда панел Sort от който управлявате как да бъдат подредени писмата: по азбучен и възходящ ред (Ascending) или обратно (Descending):
В третия панел избирате кои елементи да бъдат публикувани като маркирате полето пред името на елемента. Трябва да има маркиран поне един елемент за да се публикуват резултатите от заявката:
Добавяне на правила в заявка
Дотук разгледахме елементите и логическите оператори, с които филтрираме съобщенията в лог файла.
При 50 тестови писма, изпратени от два акаунта, в примерите се справяхме прилично със заявка към един елемент и сортиране на резултатите спрямо друг елемент.
Но когато говорим за професионална имейл услуга с връщане на 1000 резултата от всяко запитване и работа със стотици акаунти става ясно, че първоначалната схема на създаване на заявки не може да бъде ефективна и големи масиви от вече филтрирани резултати ще трябва допълнително да бъдат обработвани ръчно.
Тук на помощ ни идва възможността да добавяме филтри и да създаваме комплексни и конкретни запитвания, които да връщат малък брой прецизни резултати.
В примера по-долу използваме само една заявка без сортиране и в резултат получаваме списък с всички изпратени писма:
Ако приложим към заявката сортиране спрямо елемента Sender (подател), резултатите се подреждат по акаунти:
Сортиране по Status (статус) ни показва първо всички върнати писма - това вероятно е най-често използваната функция на филтъра:
Сега нека добавим нови правила към заявката. Това става като кликнем линка +New rule под заявката. Появява се второ поле, в което създаваме втора заявка към друг елемент, в допълнение към първата. Може да добавим трета заявка по същия начин за да конкретизираме максимално заявката с цел получаване на малък брой прецизни резултати.
Обърнете внимание на групата вдясно от етикета Query Rules - Match - радио бутон с две състояния - All (всички) и Any (който и да е).
Заявката от примера означава следното: покажи всички върнати съобщения, изпратени от акаунт, който започва с def и тема, съдържаща lorem. Филтъра Match e в положение All (всички), така че като резултат ще получим писмо, което отговаря на всички три изисквания:
Ако превключим филтъра Match от All (всички) на Any (който и да е) като резултат ще получим всички писма, които отговарят поне на една от заявките:
Използването на филтъра Any (който и да е) донякъде обезсмисля добавянето на нови правила тъй като вместо да конкретизира резултата, той го разширява.
Кликане на линка Х Reset rules изтрива всички създадени нови правила и рестартира филтъра в началното състояние по подразбиране с елемента Timestamp.
В конкретния пример въпросното писмо може да бъде открито и само с една конкретна заявка за темата на писмото и сортиране спрямо статуса:
Възможностите на софтуера за филтриране на резултатите в лог файла са огромни и е въпрос на време и практика да се разбере логиката на системата и да се създават прецизни заявки за търсене.
Съдействие от системен администратор
В панела с резултати има възможност да се избират (или изключват) всички съобщения:
Това е свързано с възможността да се извършват определени действия с едно или повече избрани съобщения по един от описаните начини.
При кликане върху стрелката срещу всяко съобщение се зарежда меню, от което може да бъде избрано едно от посочените действия:
При маркиране на едно или повече съобщения се зарежда допълнително меню със списък от действия и възможност едно от тези действия да бъде изпълнено при кликане на бутона Apply:
Тези действия са свързани с начина на работа на мейл сървъра, който прилага система от класове (в списъка с елементи: Main class, Sub class, Extra class и Error class) към всяко съобщение, които се записват в административната част на програмата, достъпна само за системните админситратори.
Препоръчаме тази функционалност да бъде поверена на грижите на системните администратори тъй като непрецизни действия могат да доведат до нежелани последици като изтриване на съобщения, блокиране на подател или добавяне в спам списъци.
Достъп до предишна версия
Все още потребителите имат достъп до стария интерфейс на филтъра през линка deprecated log search page и, честно казано, сме щастливи, че не се налага вече да работим с него.
В първата секция трябва да се въведат ръчно данни в полето на елемент:
В масивите от опции Classification, Status и Match имаме нелеката задача да включим правилните опции за да получим търсения резултат:
Малко предимство на този дизайн според нас е показването на избраните опции в списъка Customise - в новия компактен дизайн този избор остава скрит в падащото меню Columns to be displayed: