MIMEDefang is a GPL licensed framework for filtering e-mail. It uses sendmail's "Milter" API, some C glue code, and some Perl code to let the user write high-performance mail filters in Perl.[2]
![]() | |
Developer(s) | Dianne Skoll, Dave O'Neill, Faraz Vahabzadeh, Giovanni Bechis, Bill Cole, Kevin A. McGrail |
---|---|
Stable release | 3.5
/ July 30, 2024[1] |
Repository | |
Written in | C, Perl |
Type | Mail filtering |
License | GNU General Public License |
Website | mimedefang |
History
editMIMEDefang was originally developed by Dianne Skoll,[3] who was contracted by the Royal College of Physicians and Surgeons of Canada in 2000 to help stop the flood of email viruses to the college's network. The software was written to filter attachments and was originally called MIMESweeper, then MIMEDefanger, and currently MIMEDefang. Skoll announced her software to the public on August 28, 2000. On December 21, 2001, a version incorporating support for SpamAssassin was released, making MIMEDefang a filter for both spam and viruses. Skoll's company, Roaring Penguin Software, developed and sold a commercial anti-spam product known as CanIt, which is based on the open-source version of MIMEDefang.[citation needed]
Roaring Penguin Software was acquired by AppRiver in March 2018.[citation needed]
On March 5, 2020, AppRiver agreed to give The McGrail Foundation leadership of the open-source MIMEDefang project[4] for a period of three years, automatically renewable for one-year terms after that unless either AppRiver or The McGrail Foundation chooses not to renew the agreement.[citation needed]
On May 28, 2021, Dianne Skoll announced[5] a fork of the project, known as Mailmunge.[citation needed]
Architecture
editThe Milter library included with Sendmail uses POSIX threads to allow multiple concurrent filters. MIMEDefang's Perl filter uses a pre-forked process model, similar to the traditional Apache Web server multi-processing model. MIMEDefang therefore consists of three components:[6]
- A multithreaded C program that communicates with Sendmail and the filtering processes[citation needed]
- A multiplexer (written in C) that manages a pool of Perl scanning processes (called "workers")[citation needed]
- A Perl program called mimedefang.pl that provides the basic filtering infrastructure.[citation needed]
MIMEDefang users code their filtering policies in Perl, using the infrastructure provided by mimedefang.pl. They don't need to worry about thread synchronizations because each Perl filter is a separate single-threaded process.[citation needed]
The infrastructure provided by mimedefang.pl follows the Milter API reasonably closely, but not exactly. It includes convenience routines for parsing and rebuilding MIME messages so that filter authors can concentrate on high-level policy rather than worry about low-level API details. This convenience comes with a small loss of flexibility and some loss of performance.[citation needed]
References
edit- ^ Bechis, Giovanni (30 July 2024). "MIMEDefang 3.5 released". mimedefang (Mailing list).
- ^ "MIMEDefang". Archived from the original on 22 May 2014. Retrieved 21 May 2014.
- ^ "Who is Dianne?".
- ^ "MIMEDefang donated to The McGrail Foundation".
- ^ "Mailmunge Announcement".
- ^ "Frequently Asked Questions". Archived from the original on 22 May 2014. Retrieved 21 May 2014.