http://mojo.skazat.com/support/requirements.html
Short answer: yes
Long answer:
http://mojo.skazat.com/support/documentation/README-windows.pod.html
...yes
No and no. Dada Mail does not listen to any particular port, nor does it always run in the background awaiting a request. Dada Mail runs (mostly) as a simple CGI script.
Dada Mail does have some modes where it can be run from a command line/cron job, but even then, it runs and exits; there is no daemon activity in Dada Mail. Dada Mail should always be run as a regular user and never as root.
Dada Mail is installed on your hosting account; thus, you will be the one hosting it.
Personally, no - but check out my affiliate:
http://mojo.skazat.com/hosting/thinkhost_hosting.html
Yes:
http://mojo.skazat.com/installation/request.html
Yes!
Always try to stay current with the latest version of Dada Mail. Great lengths are taken to make sure that the program for the most part is backwards compatible with previous versions, so you shouldn't have many problems.
Before upgrading, you may want to look at the NOTES, that will list any change/incompatibility:
http://mojo.skazat.com/support/documentation/NOTES.pod.html
There's an upgrade FAQ available as well:
http://mojo.skazat.com/support/documentation/UPGRADE_README.pod.html
I also provide upgrade services - it's fairly inexpensive:
http://mojo.skazat.com/installation/request.html
Dada Mail handles announce only lists with ease - a standard installation will be all you need to run Dada Mail as an announce-only list.
Dada Mail can also be set up to allow discussion lists. At the moment, this is done using a plugin called dada_bridge.pl
http://mojo.skazat.com/support/documentation/dada_bridge.pl.html
dada_bridge.pl can also be set up to provide announce-only message sending from your mail reader -
so instead of having to log into Dada Mail to write your message, you write the message in your mail reader and send it to a specific address for the message to be broadcasted to your list.
Note: even with the installation of dada_bridge.pl, you're list won't ``automatically'' become a discussion list. A list will only become a discussion list after you have checked the, Make this list a discussion list option in the dada_bridge administration screen.
See Mystery Girl, the bounce handler for Dada Mail:
http://mojo.skazat.com/support/documentation/dada_bounce_handler.pl.html
Log into your list control panel, click, Manage Appearance - Subscription Form HTML
Not really. I can't, in good faith tell you what Dada Mail has and Brand X lacks, since I, personally, only use Dada Mail. The feature list of Dada Mail is very verbose, the easiest way to get an idea of what Dada Mail can do is try it out.
Yes.
http://mojo.skazat.com/cgi-bin/demo/mail.cgi
The Dada Mail Root Password has been set to, demo. Mail sending has been disabled.
See the error FAQ:
http://mojo.skazat.com/support/documentation/error_faq.pod.html
Short Answer:
If all you want to do is tweak the css styles of Dada Mail, the global css file is located at:
dada/DADA/Template/templates/default_css.css You will never see this file directly in use in Dada Mail, but you can view it in your web browser by added I</css> to the end of the URL to Dada Mail:
http://example.com/cgi-bin/dada/mail.cgi/css
Really Long Answer:
Dada Mail is extremely flexible in this respect. Extremely.
First: Clarification.
Dada Mail uses different templating system, depending on what needs to be done, but there's basically two types:
dada/DADA/Template/templates
directory.
The templates themselves are written in a templating language called HTML::Template. More info here:
http://search.cpan.org/~samtregar/HTML-Template-2.7/Template.pm
A description of the templating language, by the author, is:
just a normal HTML file with a few extra tags, the simplest being <TMPL_VAR
meaning, if you read the HTML::Template docs, you should have a pretty firm understanding on how to play with these templates.
These templates control many of the administration screens. You'll want to play around with these templates if there are some layout/formatting changes you want to do to the program itself.
Note: that by design, these templates have almost no programatic logic to them - they are almost strictly layout only, so don't expect to change the behavior of the program by editing the template files.
To find the correct template to modify, find out the name of the function that uses the template - usually, the template will be named similarily to the function name. The ``flavor'' parameter (sometimes shortened to, ``f'') is also, usually named the same as the function name that responsed to it, so you shouldn't have to go through the code just looking for what darn template to use.
For example, the, ``Send a List Message'' screen, has a flavor parameter query string of, send_email. The template that creates this screen is called, send_email_screen.tmpl Easy enough.
[i_am_a_tag]
There are no conditional statements in this system. Sometimes, you'll see a tag that looks like this:
<!--[i_am_another_tag]-->
When interpolated, the entire tag, including the comment around it, will be replaced.
This templating system is the one that is disclosed to a user of the Dada Mail program.
Some of the places this system is used are as follows:
dada/DADA/Template/templates/default_list_template.tmpl
You may edit this file directly, although you most likely do not want to, since your changes will be lost when you upgrade the program.
There are a few ways to make changes to this template, without changing this copy.
You can also set $USER_TEMPLATE to a URL - if your server supports that. There's more overhead involved with Dada Mail fetching the program this way, but it does allow you to preprocess the Template before it's seen by Dada Mail. For example, you want to have PHP calls in the template itself, or generate any sort of dynamic content.
dada/DADA/Template/templates
in whichever directory you set the $TEMPLATES Config.pm variable to. If you did not set this variable, it defaults to whatever you set the $FILES variable to. Making changes to this copy will override the copy in the dada/DADA/Template/templates location.
The above information is valid for any of the templates located in the dada/DADA/Template/templates directory.
NOTE: The List/User Template can be overridden by any of the lists; meaning, each list has its own copy of the list template that it can change. This can be of some confusion if you're trying to edit the main template, and you don't see the changes taking affect for one of your lists, or, you make a change to the list template, and it's not affecting the default screen you see in Dada Mail.
If you want to have all your lists use the default List/User Template:
get_template_data => 'from_default_template', Information on the %LIST_SETUP_OVERRIDES hash can be found at:
http://mojo.skazat.com/support/documentation/Config.pm.html#list_setting_defaults
Again, any list screen that does not have a single list associated with it, will be given the default list template look.
default_admin_template.tmpl
The information about the Default List Template also follows for the Default Admin Template. The Config.pm variable for it is: $DEFAULT_ADMIN_TEMPLATE
You may also be interested in the admin_menu_widget.tmpl, which is used to created the left hand menu. It's written using the HTML::Template templating system.
Again, we just haven't gotten to placing these in separate template files.
You can edit these messages separately for each list under: Manage Copy - Email Messages. To reset these messages to their default, select all the text in the textarea you want to reset, delete the text and click, Save all Changes
You can edit these HTML screens separately for each list under: Manage Copy - HTML Messages.
http://search.cpan.org/dist/CGI.pm/CGI.pm
to spot it in the code, you'll want to look for Perl subroutines/functions that are named similar to HTML tags.
No. But, SQL is an option.
Short answer, yes
Long Answer:
Dada Mail supports MySQL and Postgres with saving its:
It does not support SQL with saving its:
There's no real reason why the list settings cannot be saved in an SQL table, the backend just hasn't been written
You'll need to create the needed SQL tables manually.
The correct SQL table schemas to use to create both the Subscriber and Archive tables are located at:
dada/extras/SQL
and at:
http://mojo.skazat.com/support/documentation/Config.pm.html#_sql_params
the above URL also gives more information on how to setup Dada Mail to use the SQL backend - basically, you have to set some of the Config.pm variables - no real surprises.
SQL archives also saved the entire raw message, which allows Dada Mail to show much more interesting things in its archives.
The DB File backend for the Archives has an auto backup feature; the SQL backend does not - it is advised to you create a simple auto-backup routine for your SQL tables.
Not really a disadvantage, but the SQL backend will not speed up your mailing list sendings.
/dada/extras/scripts/dada_archive_dbtosql.pl
It's documentation is at:
http://mojo.skazat.com/support/documentation/dada_archive_dbtosql.pl.html
By default, the Mailing List Messages - meaning, messages that are sent to everyone on a list, provide quite a bit of information about the list and how to unsubscribe. It's very verbose, but we feel that it's a good start.
To change the mailing list message template, login into your list control panel and navigate to: Manage Copy - E-mail Messages
You'll see many text fields with all the email message templates that are easy to change. You are looking for two: Mailing List Message (Text Version) and Mailing List Message (HTML Version)
Edit to your liking - one special tag that you're going to want to make sure you still include is the: [message_body] tag. This tag will be replaced by your actually message body - meaning, what you wrote, when your mailing list message is sent.
If your mailing list messages are coming to you as blank, make sure you did not remove the, [message_body] tag!
These two messages can be changed globaly in the Config.pm file, under the variables: $MAILlING_LIST_MESSAGE and $MAILlING_LIST_MESSAGE_HTML
If a list already has edited any of the email message templates, your global changes will not take affect for that list.
Log into a list using the Dada Mail Root Password. You'll see the option under the, Manage List heading.
The amount of subscribers that Dada Mail can handle depends on your server setup. Roughly, the cheaper a setup you have, the smaller a subscription list you're going to be successfully be able to have. Cheap webhosts usually impose limits on the resources available to their clients. These limitations include the amount of emails that can be sent in a window of time, the amount of CPU time a program like Dada Mail can use and software libraries and helper applications available to Dada Mail. Basically, you get what you pay for with web hosts.
I do not have any stats.
I have listed some hosts I like here:
http://mojo.skazat.com/support/hosting.html
At the moment, no, there is no factory set limit.
You can impose a limit on the amount of subscribers per list by logging into a list using the Dada Mail Root Password. Navigate to: Manage Subscribers - Options
Check: Limit The Number of Subscribers
And then select what that limit should be.
To impose a limit on the amount of lists that can be created, set the Config.pm variable, $LIST_QUOTA to the number of lists you allow. Setting this variable to, undef will allow you to have an unlimited number of lists.
Not in Dada Mail. We feel that this is an intrusion of privacy. It also doesn't really fit in with our main goal of making a great Mailing List Manager.
There is a clickthrough tracker for Dada Mail, but it only tracks clicks of URLs in email messages, perl email message - it does not couple this information with the address that the messsage was delivered to:
http://mojo.skazat.com/support/documentation/clickthrough_tracking.cgi.html
There is no ``best'' batch setting, and the batching feature is meant to be flexible. Some hosting providers only allow a certain amount of email to be sent in a length of time. If, all of a sudden you're getting error messages from the SMTP server or from the sendmail command, you most likely have overburdened the mail server.
The best thing to do is to experiment and see what works best with you and your specific constraints.
Generally, it's best not to go too overboard with the length of time between batches; I would generally recommend never going over 5 or 10 minutes. I would also recommend not having a batch of more than 1,000 messages. If these limits don't seem reasonable, it's best to lessen the time between batches (from 5 minutes, to 4), instead of having more messages per batch.
Short Answer:
Bounces will go to which ever email address is set in the Return-Path of your list messages. Look at the source of an email message sent by Dada Mail, to find where the Return-Path header is set.
Longer Answer:
A brief tutorial in email sending:
An email message has basically two parts: the Message Headers and the Message Body. The Message Body is the easiest thing grasp - it's the message itself. The Message Headers all serve different roles, but a few should be familiar to anyone.
For example, the Subject: header is where the subject of the message is, the From header tells you where the message originated from, the To: header tells you where it's going. Easy enough. I'll throw in two more headers at you, that sometimes do not visually appear when you view a message in your mail reader.
The first is the Reply-To header. It'll hold a email address, just like the From: and To header. When you reply to a message, and the Reply-To header is present, it'll be sent to that address. If the Reply-To header is not present, your message will be sent to the email address that's present in the, From header.
The other header I want to talk about is the Return-Path header. This header also contains an email address and serves a similar purpose as the Reply-To: header, but is instead used for automatic response systems - like when a server bounces your message back, or a vacation script sends a note to you. It'll never be used by a real live human being, so it's not something you need to check.
So, in general:
Saying all that, Dada Mail's list administrator should be what's being set in its message Return-Path.
By default, this is probably not the case - you'll have to do some minor tweaks to your list. If you don't, the best bet is that the Return-Path header is set to a email address that is quite foreign to you.
Depending on how your sending options are setup, you need to do different tweaks. Here they are:
Set the Sender of SMTP mailings to the list administration email address
You're all done.
In Sending Options - Advanced check,
Add the Sendmail '-f' flag when sending messages
You're all done.
After checking this option, test and see if mailing is still functioning. Depending on how Sendmail is setup, this could in fact stop messages from being delivered.
If this doesn't work, uncheck that option and try checking,
Print the 'Return-Path' header in all list emails
In my findings, this sometimes works for servers running Qmail - although you're not supposed to be able to directly set the Return-Path header.
And, that's it.
Now that you know how to set the Return-Path header, put it to some good use! Set up Mystery Girl, the Bounce Handler for Dada Mail:
http://mojo.skazat.com/support/documentation/dada_bounce_handler.pl.html
Dada Mail is a light-weight, fully featured announce-only Mailing List Manager. It does also support discussion lists, with the help of the dada_bridge.pl script. Discussion support is minimal, compared to its announce-only capabilities.
Dada Mail is primarily run as a plain old CGI script, it does not need any special modules installed, except the one it comes with. It does not run as a mod_perl enabled script and needs no special treatment. If you can run CGI scripts on your hosting account, Dada Mail will work for you.
Dada Mail takes care of much of the drudgery of maintaining a mailing list. It primarily does three things very very well:
When submitted, Dada Mail will take the request and email a confirmation. This email confirmation will include a special URL that includes a special 'pin' number, which is used to confirm the correct person wants to subscribe. Following this link will subscribe the email address.
Unsubscription is a similar process, where someone who wants to unsubscribe will fill out a web form with their email address and receive a confirmation email.
Dada Mail does not support email confirmation. That is, confirming an address by having to replying to an email. The URL confirmation is usually much simpler and doesn't make you create an alias email that goes to a program that does the confirmation. We circumvent quite a bit of complexity this way.
Dada Mail can be configured to do these two simple things in a variety of ways. Dada Mail also takes account of if the email is already subscribed to the list, if the email is 'blacklisted' and thus unable to subscribe, invalid emails, and a plethora of 'gotchas' when dealing with these things.
Message sending can also be done in 'batches' a desired amount of emails are sent in timed intervals.
Dada Mail saves its information in many different files, in two (possibly three...) formats, plain text and DB_File and SQL flavors.
The list subscription list is saved in either:
dada/extras/SQL
directory of the distribution.
List Settings are saved in DB Files. Dada Mail is flexible in what DB_File package you use, be it DB_File, GDBM, ODBM, or SDBM, the Berkeley DB_File format is preferred. Settings are stored with one setting per key, the key name the same as the setting name.
Message archives can also be stored in:
dada/extras/SQL
directory of the distribution.
No. At the present time, only the email address is saved. Fields such as First Name, Last Name, Street Address, Zip Code, etc aren't. There are tentitive plans to create this, but it would mean quite a major overhaul of the program.
We like the idea and see the merits to the features. When we do it, we'll do it so it is well-designed. We're not going to cobble together a half working implementation.
Seriously. It's not in Dada Mail yet. Honestly.
It would take about a month of full time development. Not to blush, but that's quite a bit, but if you're serious, we're serious too. We'll fly out and make it exact to your specifications, if you'd like,. Honestly. We'll sleep in our car. We'll camp out in the local Net Coffee shop. We'll strike fear in your soul on our caffeine consumption. You'll wonder how these piano hands fly on such a small keyboard!
(do you see what I go through?! :-) )
Putting this feature just will take a lot of time. When I personally develop the program, I can't work to make money, so I become poor. I don't know if I can, at the same, develop a feature this large, for free, for a month's time - working full time and survive. And be happy.
A feature like this will also break backwards compatibility, and that has to be dealt with.
Don't get me wrong, I'm all for the feature, I want the feature. I'll be needing the feature soon enough, but I want the feature done right. And I want to eat.
Justin Simoni is the lead designer of Dada Mail. Many other people have helped out along the way, but most everything is the work of his grubby little hands.
Justin prides himself on being one of those people who gets into everything. He holds a Bachelors of Fine Art in Painting and doesn't have any ``official'' Computer Science training. A Hacker and Painter ala Paul Graham's book.
See his portfolio:
Purchase some art. This kid's going places.
Dada Mail is developed using the Sourceforge suite of tools.
I use BBEdit as my text editor - http://www.barebones.com/products/bbedit
Transmit as my FTP program - http://panic.com/transmit/
And not much else;
Yes.
In so many ways, depending on your knowledge of the technology involved - and there's a lot, including Network programming, UI design, HTML, CSS, Perl, CGI - lots and gobs more on top of that.
As far as I'm concerned, I'm an absolute gear head when it comes to layout, design and usability. Not always shows up in Dada Mail's design, but I try. Got that BFA and all...
I'm passable when it comes to Perl. Really.
I'm an absolute clutz when it comes to SQL database design.
If you don't know anything about the underlying technology, but are having problems using the program, describe your problem to the developers, either on the boards or on the mailing lists
If you know a little about the underlying technology, point us to the problem with error log snippets, etc.
If you'd like to start hacking away at the program, start by submitting patches to be applied to the latest version checked out from the CVS server.
If you rock the patches, I'll be happy to give you checkin rights - honestly, you'd be my saviour. If you're really good at that, we can talk about babysitter the bunny that lives with me. He's cute.
Yes.