Yeah, for what it’s worth, the most useful thing that I’ve looked at so far is the Easy Newsletter module:
http://modxcms.com/Easy-Newsletter-1589.html (thanks bunk58 for the good suggestion).
This is definitely a step in the right direction. This module uses a custom table (that is created upon installation), and it has a nice form to accept data from the user to store into that table.
I’m not clear on how to lock out non-admin users from the page(s) that might use something like this, but I think I can find this in the forums. The other thing that concerned me about this particular module’s Snippet is that its SQL statements are highly vulnerable to injection attacks, e.g.
INSERT INTO `easynewsletter_subscribers` VALUES ('', '".$_POST['firstname']."', '".$_POST['lastname']."', '".$_POST['email']."', '', '', '', now())
However, all that soap-box stuff aside, I’m still not entirely sure why this has to be a module and why a Snippet wouldn’t suffice... sure, I’d have to run my CREATE TABLE statements beforehand, but that’s not really a problem. Why is this a module and not just a Snippet?