Simple Windows-based mailing list server.
After having evaluated the various unix-based and windows-based mailing list server programs out there, I have come to the conclusion that there is room for a greatly simplified windows-based mailing list server program of the following design.
Upon starting the application, a small splash window appears showing “The Ridiculously Simple Mailing List Server v1.0” for a second or two, after which a small window appears having a scrollable list, with the following buttons below the list:
- Create Mailing List Profile
- Edit Mailing List Profile
- Delete Mailing List Profile
- Process List
- Process All Lists
where the edit, delete, and process list buttons apply to whatever mailing list profile is highlighted within the scrollable list. This is the main window.
When “Create Mailing List Profile” is selected, another window opens with the following fields to be entered:
- Mailing list profile name (for display in the scrollable list of the main window)
- POP3 address of mailing list
- POP3 server name
- POP3 account name
- POP3 account password
- SMTP server name
- SMTP account name
- SMTP account password
- Check every __ (minutes/hours/days) starting at (date/time)
- Default From address (if blank, use sender address)
- Default To address (if blank, use subscriber address)
- Subject line prefix
- Allow attachments (y/n)
- Max. size (in bytes)
- Subscribe response text (if blank, use default response)
- Unsubscribe response text (if blank, use default response)
followed by OK and Cancel buttons. The minutes/hours/days should be a drop-down list, as should the month, day, year of the date, and the hours, minutes, and am/pm of the time.
The “Create Mailing List Profile” window should also have a scrollable list of email addresses and names of subscribers with its own Add, Edit, Delete, and Import buttons, where Import will import addresses and names from a comma-delimited text file that the user is asked to specify. The subscriber list should itself be stored in a separate comma-delimited text file for each mailing list profile.
Once a profile has been defined, the program will periodically check the POP3-based email inbox according to the schedule specified in the profile. For each email in the inbox, the program uses its own SMTP emailer to send the email to each email address in the subscriber list. The script then deletes the email from the inbox. The email is not to be simply forwarded along with its header information, but rather a new email is to be constructed into which the body of the email is to be copied. This is to ensure sender anonymity if such is specified in the profile by inserting an anonymizing address in the “Default From address” field. The subject line is preserved, and a subject line prefix may be added to the subject line if one is specified.
The script distinguishes between subscribe/unsubscribe emails which are not to be forwarded to the list, and all other emails which are to be forwarded to the list. An email whose subject line begins with the word “subscribe” (case doesn’t matter) will cause the sender’s “from” email address to be added to the email address text file (check first to avoid duplicates). An email whose subject line begins with the word “unsubscribe” (case doesn’t matter) will cause the sender’s “from” email address to be removed from the email address text file if the entry exists. A response email will be sent to the subscriber/unsubscriber including any specified Subscribe or Unsubscribe response text or just “Your subscription is confirmed” or “You have been unsubscribed” if no alternate response text is specified.
The “from” address of forwarded emails will indicate the “from” address of the sender unless an anonymizing address is specified in the “Default From address” field, in which case the “from” address will be replaced with the specified default from address. Emails are forwarded with or without attachments, depending on how the attachment field is set, and provided that the email+attachment is below the specified maximum size.
If the user specifies 127.0.0.1 or “localhost” for the SMTP server, the program will send the email to the local machine’s SMTP server (e.g., Surgemail, Argosoft, etc). Otherwise, the program’s own SMTP server should provide for multiple SMTP connections to allow for fast mail delivery (for example, Surgemail provides 100 concurrent SMTP connections by default) direct to the recipients.
Should you accept this project, your work in connection with this project will be on a “work for hire” basis in which I will retain full copyright to the source code and the executable software and will have the exclusive right to sell or otherwise exploit the source code and the executable software.