Projects within Dada Mail that we would like to work on

- The Dada Mail Project
- Current Projects

- Multiple Subscriber Fields

- The problem:
- Three scenarios:

- Scenario #1
- Scenario #2
- Scenario #3

- Customizing These Multiple Fields:
- Using The Multiple Fields:
- Constraints:
- Time Frame

- Ongoing Projects

- The Dada Mail Testing Suite

- How you can help
- More Information

- Projects We're Looking for Sponsors

- Enhancements to the moderation system in Discussion Lists (dada_bridge.pl)
- Click through Tracking Enhancements
- Auto Pickup of Mass Emails/Sending Monitor

- The ability to set how many mailouts can happen at one time
- Setting a Safegaurd time limit for mailings that have been dropped

# The Dada Mail Project

Currently, Dada Mail is mostly developed by its Sole Developer, Justin Simoni for free. New features are added at his discretion and whim. Below are a few features we'd like to include into the program, but are actively looking for financial support to begin.

Commissioning a feature guarantees that the feature will be a part of Dada Mail for the forseeable future as well as giving your organization the feature needed right away. It also feeds Justin, so hey! everyone's a winner.

If you are interested in any feature involving Dada Mail that you can commission, please contact Justin Simoni directly:

http://dadamailproject.com/contact

# Current Projects

## Multiple Subscriber Fields

### The problem:

Currently, Dada Mail only supports the saving of an email address in its subscription database. This makes things very simple, but has become quite limiting on what you can do with the program.

### Three scenarios:

#### Scenario #1

You may want to personalize an email message, so as to make it seem you're talking to the subscriber personally. For example:

        Dear [first_name],

        I hear you like [favorite_food]! Well, at my store we have
        many different varieties of [favorite_food]! We're going to
        be having special cooking workshops coming to: [city],
        [state] and would like to know if you're interested in
        attending these workshops. As always, they're free and you
        will receive many interesting cooking tips and recipes for,
        [favorite_food] Please see: http://example.com/request.html
        to RSVP your attendance.

#### Scenario #2

You are in a rock and roll band. You are awesome. You would like to announce your impending arrival on your tour dates - but only right before you visit each city on your tour. Common sense tells you that emailing out an announcement every day would anger everyone that's not seeing you. If you had the option to only email out people living in, say, New York City one day and Philadelphia the next day, everyone would be happier.

#### Scenario #3

You are a starving artist. You use email list software to announce most of your shows. For very special dates, you like to have a physical mailout in postcard form. You'd like to keep track both email address and physical address.

These three (simplified) scenarios above would benefit GREATLY from the use of multiple fields.

### Customizing These Multiple Fields:

There will need to be a new screen in Dada Mail's control panel that will let you add/edit/remove fields. I propose that this be as simple as possible, mainly that the only thing you can set when adding a field is the name of the field itself. The field could then contain any kind of information you'd like.

I propose the program also be equipped to create the HTML subscription form code you'll need to use with Dada Mail - It will be bare-bones, but you can tweak the HTML form code in a real HTML editor to your liking - for example, if you want a form widget to be changed from a simple text box to a radio button group who's values are, 1 or 0, you can easily edit this yourself.

All fields, except the email address, can be marked optional/required.

At the moment, fields will not be set by type - meaning, a field will NOT know if it is a zip code, or a phone number, or a Sir Name. That may be added later.

### Using The Multiple Fields:

E-mail announcements and newsletters can then be sent selectively depending on the subscription options selected at the time of registration.

This can be done in the, ``Send a List Message'' screen by simply having a new part of the form specifically for the new fields - each field will have a labeled text box next to it that you can enter your search terms into.

If the search terms matches the subscriber's information, the subscriber will be sent the newsletter message. It may be a good idea to have a preview window, so you can see exactly who's getting the message. It may also be a good idea to have simple options by each form so you can do a little more of a fuzzy search - for example, if one of the fields is a zip code, it would be nice to have a option to have a, ``starts with'' option you can check, so, ``802'' would match, ``80205'' but not, ``06802''. Currently, sophisticated geo-spatial searches will not be supported - meaning, you will not be able to say, ``send to everyone 10 miles from Denver, Colorado.

All subscriber information can be exported to a delimited text file (Tab, CSV)for use in Microsoft Excel or another database program. This same format can be used to import information *into* Dada Mail.

New Subscribers can enter the information required in a form with all the fields that need to be filled out - once they filled it out, Dada Mail will handle the form and make sure all the fields are correctly filled out -

If they're not, Dada Mail will say exactly which fields need to be changed and present the form again to be amended. This will repeat until the form is filled out correctly.

If they are filled out correctly, Dada Mail will either send a confirmation email if one is needed, or just subscribe the email if none is needed.

The confirmation process will work exactly as before.

### Constraints:

The Multiple Field feature will only work if you set up Dada Mail using one of the SQL backends - either Postgres or MySQL - it will not work with a PlainText backend. If your hosting account supports an SQL database, you should be fine - the majority now do (not so when Dada Mail was first developed!)

### Time Frame

After the 2.10.13 release, we will be branching the program at the trunk.

The main trunk will have the work for Multiple Subscription Fields.

The branch will have everything else, basically.

Another branch will be made strictly for bug fixes.

We'll hopefully be able to have three different release schedules:

- Multiple Fields Release

  We'll most likely dub these releases, ``3.0.x''

- New Features

  We'll most likely dub these releases, ``2.11.x''

- Bug Fixes

  We'll most likely dub these releases, ``2.10.x''

Our main goal will be the multiple fields feature, although it will take time to first, flesh out the featureset and also test it. We'll be releasing alpha, beta, and RC releases.

Our second goal is the addition of secondary features. Mostly, these features will only be added if time allows them, or if the feature is commissioned.

Our tertiary goal will be bug fixes. These are applied depending on the severity of the bug.

This isn't a project we're currently looking for financial backing, but it may help speed up the project. If your organization has similar needs, we'd be most interested in having those needs work with the ideas above.

# Ongoing Projects

## The Dada Mail Testing Suite

The Dada Mail testing suite is a group of automated tests that are used to make sure the changes/enhancements to the program don't introduce new bugs into the program. The regression tests keep the program bug free and give us confidence onto when to ship the program.

We've had the testing suite for less than a year and have been fleshing it out. We're far from finished, since there was 6+ years of work done to Dada Mail before there was a testing suite.

### How you can help

If you know how to write Perl programs and Perl test programs, please submit some test files!

If you're experiencing a bug, write a test file that fails and we can use it to fix the bug.

If you have questions on how to write a test specifically for Dada Mail, do try asking for help on the dadadev mailing list:

http://dadamailproject.com/cgi-bin/dada/mail.cgi/list/dadadev/

### More Information

- dada_tester.cgi - a VERY rudimentary runner of Perl automated tests:

  dada_tester.cgi.html

# Projects We're Looking for Sponsors

We're looking for sponsors to commission the following features. Commissioning a project basically guarantees that a certain feature will exist in Dada Mail in the near future.

Unless a feature is commissioned it's questionable if a feature will be added at all and depends on the whims of the already overburdened main developer, who does all other development without payment.

We'd like to work directly with you to make sure any feature additions solve a problem you personally have. The below listings are general ideas on where we'd like to take the entire Dada Mail project. The below list isn't complete and will be added as time and our imaginations allow.

If you don't see a project listed here that you'd like to have work on, please simply contact us:

http://dadamailproject.com/contact

## Enhancements to the moderation system in Discussion Lists (dada_bridge.pl)

Currently, the moderation system is slightly less than rough. It works, but is a little kludgey. We'd like to make it much more easy to use, extendable and convenient.

Currently, The options for moderation look something like this:

[ ] Use Moderation Messages sent to your discussion list will have to be approved by the List Owner.

        [ ] Send a Rejection Message
         The original poster will receive a message stating that the
         message was rejected.

Fairly spartan.

We'd like to extend the functionality to include:

        [ ] Use Moderation
            Messages sent to your discussion list will have to be approved.
            Send moderation accept/reject messages to:

            [ ] the list owner (recommended)
            [ ] A separate Moderation list ( View/Add )
            [ ] A random pool of subscribers
                Randomly pick [-- 5 --] Subscribers
                to moderate.

        [ ] Moderate messages sent by non-subscribers

        [ ] Allow moderator list to send messages to the entire list

            [ ] Send messages sent by a moderator to all moderators

        [ ] Send a Message Received Confirmation Message
            The original poster will receive a message stating that the message has
            been received, but need moderating.

        [ ] Send an Acceptance Message
            The original poster will receive a message stating that the message
            was accepted

        [ ] Send a Rejection Message
            The original poster will receive a message stating that the message
            was rejected.

    All these features should take off much of the burden of moderating from the list owner and spread it to specific moderators, as well as being able to opt for a self-moderating list.

## Click through Tracking Enhancements

The Click through Tracker plugin currently tracks the following:

- How many times certain urls are clicked on in your list messages
- How many times a message is opened
- How many subscribers are present every time a message is sent
- ``Hard'' email Bounces

We'd like to extend the tracking to include Subscriptions and Unsubscriptions.

We'd also like to extend the URL tracking to automatically format all URL's in an email message to be trackable,as well as shorten the click through URL's from something that (currently) looks like this:

http://example.com/cgi-bin/dada/mail.cgi/r/listshortname/h/12345678/http%3A%2F%2Fexample.com/

To something more like this:

http://example.com/cgi-bin/dada/mail.cgi/r/12345678/

In PlainText email messages, this would make messages much more cleaner.

We would also like to have the addition of graphing features in Dada Mail, so you can graph the data that's saved in the clickthrough tracker logs in practically any way you'd like.

## Auto Pickup of Mass Emails/Sending Monitor

The Sending Monitor keeps track of mass mailouts.

The auto pickup feature restarts a mailing that seems to have been dropped.

Currently, it works very well and has pretty much solved the problem of people who's hosting account's have limitations on the amount of messages they can send out per hour. More information:

FAQ-mailing_list_sending.pod.html

We'd like to add some more features to the Sending Monitor/Auto Pickup functionality of Dada Mail:

### The ability to set how many mailouts can happen at one time

So as to not overburden the server Dada Mail is on, it would be really nice to be able to set exactly how many mass mailouts can happen at one time. Any mailouts that need to go out that are over this limit will simply be queued until they can be sent out.

### Setting a Safegaurd time limit for mailings that have been dropped

Currently, mailings that are dropped will be picked up as soon as possible, but if you aren't currently monitoring the mailout, it could be days until you check up on it. Dada Mail will currently happily restart the mailing. It would be nice to have a check so that after a few hours/days you're asked to confirm if you *really* want the mailing to continue.