= mlist http://aiwilliams.github.com/mlist == DESCRIPTION: An insane attempt to build a mail list server library that can be used other applications very easily. The first target is Ruby applications that can load MList models for direct integration. It will later have a RESTful API so that non-Ruby applications can easily integrate. That may depend heavily on community involvement... == FEATURES/PROBLEMS: There is a LOT to do: segmenting, spam filtering, HTML conversion, i18n, backscatter - only the Mailman developers know what else. I have enough experience to know that rewrites are NEVER as easy as they seem. I begin this with fear and trepidation. Alas, I go boldly forward. ==== Extracting 'from' IP address from emails is not implemented http://compnetworking.about.com/od/workingwithipaddresses/qt/ipaddressemail.htm ==== Observing MList ActiveRecord subsclasses (ie, MList::Message, MList::Thread) ActiveRecord observers are reloaded at each request in development mode. They will be registered with the MList models each time. Since the MList models are required once at initialization, there will always only be one instance of the model class, and therefore, many instances of the observer class (all but the most recent invalid, since they were undefined) registered with it. There are a number of ways to solve this, the best being the one that makes things 'just work' such that I can delete this part of the document. For now, do the following in environment.rb: * remove the observer from the Rails' config.active_record.observers list * after the Rails::Initializer.run block, "require 'myobserver'" * after that require line, "Myobserver.instance" This will load the observer once, thereby only registering it once with the MList class you are observing. == SYNOPSIS: Let's say you want your web application to have a mailing list feature. Let's also say you care about the UI, and you don't want to learn all about creating the correct HTML structures for a mailing list. You want to have lots of power for searching the mail, and you have your own strategy for managing the lists. You love Ruby. == REQUIREMENTS: You'll need some gems. * activesupport * activerecord * tmail == INSTALL: * FIX (sudo gem install, anything else) == LICENSE: (The MIT License) Copyright (c) 2008 Adam Williams (aiwilliams) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.