3.9. How do I edit held message(s) before approving it/them for the list?
Here's how to do this:
- Use the "forward this message" feature in the admindb page to forward the message to yourself.
- At the same time, discard the original held message. You may want to do this later, after you're sure the message was properly forwarded to you.
- Edit the message in your mail reader. You should include a notice in the message explaining that the list moderator has edited the message. Please use proper netiquette!
- Resend the message to the list using a Resent-To: header containing the list posting address. If the edited message would be held again, you may also include an Approved: header containing the list's admin or moderator password to pre-approve the edited message, but
you can't pre-approve messages that will be held for header_filter_rules, and in Mailman through 2.1.13, if you try, the Approved: header with password won't be removed.
In MS Outlook, you can open the message and select "Tools > Actions > Resend this message" (or possibly "Other actions > resend") to edit and resend the message.
Voila! The edited message should be forwarded to the list membership.
Note: If you set admin_immed_notify on the lists General Options page to Yes, the owners/moderators will receive a notification of the held post. This contains a message/rfc822 part which contains the original post with all headers intact. You can edit this instead of forwarding the post from the admindb interface. Then, if your MUA/email client allows it, you can bounce/resend/redirect the edited message to the list. If this feature is not available in your MUA, you can still post the edited message directly if you are on a machine with an MTA, e.g., sendmail, etc., by saving the edited message in a file and giving a command similar to the following:
/path/to/sendmail firstname.lastname@example.org < edited_message_file
You can also discard the original post by simply replying to the other attached message in the original notification, but however you do it, you need to discard the original.
Alternatively (mostly for Mailman 2.0.x), you can edit the actual held message found in ~mailman/data/... The message will be in a file called heldmsg-<listname>-<number>.txt
You can use "grep" to find the message, and your favorite editor to change it.
Once you have modified the message, feel free to approve it.
The web-interface shows you a portion of the message that has been copied into a database called request.db. When you edit the message via the web-interface you are actually editing the portion captured in request.db and not the original message.
Approval of the message sends the actual held message from ~mailman/data/..
Note for Mailman 2.1: this doesn't work so well because by default, held messages are stored on disks in a more efficient binary representation called a "pickle". Pickles aren't normally editable. If you still want to use this, you might want to set HOLD_MESSAGES_AS_PICKLES to No in mm_cfg.py, which tells Mailman to store them using the older, less efficient, plaintext representation instead of pickles.
This is still limited to only those who have access to the system disk and command line. Also, in MM2.1 the admindb interface doesn't fool you into thinking you can edit the message, as the text areas are now read-only.
This is one of many Frequently Asked Questions.