It's about time this project got some real testing. I'm removing the old Rails 2.x test project and putting in a new Rails 3 project, as well as writing the first test. More to come, now that the framework for testing is (mostly) set up.
file does nothing useful
This is a tricky but VERY IMPORTANT CHANGE. Here's the deal. In ActiveMailer::Base there's this line

has_many    :recipients, :through => :email_user_associations, :source => "email_user"

which is backed by ActiveRecord. In ActiveRecord, there is a check called #raise_on_type_mismatch to make sure that you are assigning a model of the correct type to this association. Normally, nil values are fine. Not in this case.

Let's look at #raise_on_type_mismatch

def raise_on_type_mismatch(record)
	unless record.is_a?(reflection.klass) || record.is_a?(reflection.class_name.constantize)
		message = "#{reflection.class_name}(##{reflection.klass.object_id}) expected, got #{record.class}(##{record.class.object_id})"
		raise ActiveRecord::AssociationTypeMismatch, message
	end
end

When you call TotallyValidActiveMailerEmailModel.new(:sender => "foo@bar.com", :recipients => nil), it invokes #raise_on_type_mismatch. In this invocation, reflection.klass correctly uses #compute_type to determine that "email_user" is the class ActiveMailer::EmailUser. Sadly `record.is_a?(reflection.klass)` fails because record is nil so it tries `record.is_a?(reflection.class_name.constantize)`

That's dumb, because `reflection.class_name` returns "EmailUser" which you can't constantize because it's supposed to be ActiveMailer::EmailUser. There's no way to pass a namespaced value to :source, so we are explcitly stripping nils.

I'm explaining this in EXCRUCIATING DETAIL because this line has been removed before. Don't remove it, or I'll be sad. And you'll be sad. SADNESS.
standard gitignore
First complete test. Needs lots more, but it's a start.
version bump for bug fixes