# Copyright (c) 2010 Flowerfire, Inc. All Rights Reserved. hmailserver_smtp = { plugin_version = "1.0.0" info.1.manufacturer = "hMailServer - www.hmailserver.com" info.1.device = "SMTP Mail Server" info.1.version.1 = "4.x" info.1.version.2 = "5.x" # 2007-09-13 - gas - 1.0.0 : Added support for version 4.x logging # 2009-04-20 - gas - 1.0.1 : Added audodetect_lines to make sure we see an APLICATION line in v5 logs # The name of the log format log.format.format_label = "hMailserver Log Format" log.miscellaneous.log_data_type = "mail" log.miscellaneous.log_format_type = "mail_server" # The log is in this format if any of the first ten lines match this regular expression log.format.autodetect_regular_expression = `^\\"APPLICATION\\" [0-9]+ \\"[0-9]+-[0-9]+-[0-9]+ [0-9]+:[0-9]+:[0-9]+\\.[0-9]+\\"` # Look through a lot of lines to make sure we see an APPLICATON line log.format.autodetect_lines = "200" # The format of dates and times in this log log.format.date_format = "auto" log.format.time_format = "auto" log.format.parse_only_with_filters = "true" # Log fields log.fields = { date.type = "date" time.type = "time" sender = "" recipient = "" spam_sender_address = { type = "hierarchical" hierarchy_dividers = "@" left_to_right = false leading_divider = "false" } # spam_sender_address spam_sender_ip = "" spam_reject_reason = "" # size.type = "size" } # log.fields # Database fields database.fields = { date_time = "" day_of_week = "" hour_of_day = "" sender = "" recipient = "" spam_sender_address = "" spam_sender_ip = "" spam_reject_reason = "" } # database.fields # Log Filters log.filters = { # not_authenticated = { # label = "$lang_admin.log_filters.not_authenticated_label" # comment = "$lang_admin.log_filters.not_authenticated_comment" # value = "if (authenticated_user eq '-') then authenticated_user = '(not authenticated)';" # } # not_authenticated # mark_entry = { # label = '$lang_admin.log_filters.mark_entry_label' # comment = '$lang_admin.log_filters.mark_entry_comment' # value = 'messages = 1;' # } # mark_entry } # log.filters log.parsing_filters.parse = ` # SMTP in: mail accepted for delivery if (matches_regular_expression(current_log_line(), '^\\"APPLICATION\\" [0-9]+ \\"([0-9]+-[0-9]+-[0-9]+) ([0-9]+:[0-9]+:[0-9]+)\\.[0-9]+\\" \\"SMTPDeliverer - Message ([0-9]+): Delivering message from ([^ ]+) to ([^ ]+)\\. File.*$')) then ( v.key = $3; set_collected_field(v.key, 'date', $1); set_collected_field(v.key, 'time', $2); set_collected_field(v.key, 'sender', $4); set_collected_field(v.key, 'recipient', $5); # set_collected_field(v.key, 'messages_sent', 1); ); #if SMTP in else if (matches_regular_expression(current_log_line(), '^\\"APPLICATION\\" [0-9]+ \\"([0-9]+-[0-9]+-[0-9]+) ([0-9]+:[0-9]+:[0-9]+)\\.[0-9]+\\" \\"hMailServer SpamProtection rejected RCPT \\(Sender: ([^,]+), IP:([^,]+), Reason: ([^"]+)\\"$')) then ( set_collected_field('', 'date', $1); set_collected_field('', 'time', $2); set_collected_field('', 'spam_sender_address', $3); set_collected_field('', 'spam_sender_ip', $4); set_collected_field('', 'spam_reject_reason', $5); set_collected_field('', 'spam', 1); accept_collected_entry('', false); ); else if (matches_regular_expression(current_log_line(), '^\\"APPLICATION\\" [0-9]+ \\"[0-9]+-[0-9]+-[0-9]+ [0-9]+:[0-9]+:[0-9]+\\.[0-9]+\\" \\"SMTPDeliverer - Message ([0-9]+): Message delivery thread completed\\.\\"$')) then ( set_collected_field($1, 'messages', 1); accept_collected_entry($1, false); );` database.numerical_fields = { messages = { label = "$lang_stats.field_labels.messages" default = true requires_log_field = false type = "int" display_format_type = "integer" entries_field = true } # messages spam = { label = "spam" default = true requires_log_field = false type = "int" display_format_type = "integer" entries_field = true } # spam # messages_sent = "" # messages_received = "" # size.display_format_type = "bandwidth" } # database.numerical_fields create_profile_wizard_options = { # How the reports should be grouped in the report menu report_groups = { date_time_group = "" spam_group = { spam_sender_address = true spam_sender_ip = true spam_reject_reason = true } } # report_groups } # create_profile_wizard_options } # hmailserver_smtp