init_globals
Initialize global variables used across MIMEDefang instance and filter.
print_and_flush(text)
Prints to stdout and flush buffer.
md_openlog(tag, facility)
Initialize e syslog object using Sys::Syslog or Unix::Syslog as appropriate.
md_syslog(facility, msg)
Prints a message to syslog(3) using the specified facility
md_graphdefang_log
This is called to log events that occur during mimedefang processing. It should be called from
mimedefang-filter with appropriate event names and values.
Possible examples:
"md_graphdefang_log('virus',$VirusName,$filename);"
"md_graphdefang_log('spam',$hits);"
"md_graphdefang_log('bad_filename',$filename,$extension);"
If you need to log UTF-8 strings you can call the sub as:
"md_graphdefang_log('spam',$hits, undef, 1);"
detect_and_load_perl_modules
Automatically detect and load Perl modules needed for some features like SpamAssassin, rbl checks,
zip file listing and HTML parsing.
detect_antivirus_support
Check if antivirus support should be loaded by looking at %Features
init_status_tag
Open the status file descriptor
set_status_tag(depth, tag)
Sets the status tag for this worker inside the multiplexor.
push_status_tag(tag)
Updates status tag inside multiplexor and pushes onto stack.
pop_status_tag
Pops previous status of stack and sets tag in multiplexor.
percent_encode(str)
Encode a string with unsafe chars as "%XY" where X and Y are hex digits.
percent_encode_for_graphdefang(str)
Encode a string with unsafe chars as "%XY" where X and Y are hex digits.
Quotes or spaces are not encoded but commas are encoded.
percent_decode(str)
Decode a string previously encoded by percent_encode().
write_result_line ( $cmd, @args )
Writes a result line to the RESULTS file.
$cmd should be a one-letter command for the RESULTS file
@args are the arguments for $cmd, if any. They will be percent_encode()'ed before being written to
the file.
Returns 0 or 1 and an optional warning message.
signal_unchanged
Tells mimedefang C program message has not been altered.
signal_changed
Tells mimedefang C program message has been altered.
in_message_context(name)
Returns 1 if we are processing a message; 0 otherwise.
in_filter_wrapup(name)
Returns 1 if we are not in filter wrapup; 0 otherwise.
in_filter_context
Returns 1 if we are inside filter or filter_multipart, 0 otherwise.
in_filter_end(name)
Returns 1 if we are inside filter_end 0 otherwise.
send_quarantine_notifications
Sends quarantine notification message, if anything was quarantined.
signal_complete
Tells mimedefang C program Perl filter has finished successfully.
Also mails any quarantine notifications and sender notifications.
send_mail(fromAddr, fromFull, recipient, body, deliverymode)
Sends a mail message using Sendmail.
Invokes Sendmail without involving the shell, so that shell metacharacters won't cause security
problems.
Delivery mode parameter is the optional sendmail delivery mode arg (default "-odd").
send_multipart_mail(fromAddr, fromName, recipient, subject, body_text, body_html, extra_headers)
Sends a multipart mail message using Sendmail.
Invokes Sendmail without involving the shell, so that shell metacharacters won't cause security
problems.
send_admin_mail(subject, body)
Sends a mail message to the administrator
read_commands_file()
This function should only be called from "filter_sender" and "filter_recipient". This will read the
"COMMANDS" file (as described in mimedefang-protocol(7)), and will fill or update the following
global variables: $Sender, @Recipients, %RecipientMailers, $RelayAddr, $RealRelayAddr,
$RelayHostname, $RealRelayHostname, $QueueID, $Helo, %SendmailMacros.
If you do not call "read_commands_file", then the only information available in "filter_sender" and
"filter_recipient" is that which is passed as an argument to the function.
SEEALSOMail::MIMEDefang::Actions(3)
Mail::MIMEDefang::Antispam(3)
Mail::MIMEDefang::Antivirus(3)
Mail::MIMEDefang::DKIM(3)
Mail::MIMEDefang::DKIM::ARC(3)
Mail::MIMEDefang::Authres(3)
Mail::MIMEDefang::Mail(3)
Mail::MIMEDefang::MIME(3)
Mail::MIMEDefang::Net(3)
Mail::MIMEDefang::RFC2822(3)
Mail::MIMEDefang::Unit(3)
Mail::MIMEDefang::Utils(3)
3.6 2025-05-19 Mail::MIMEDefang(3)