It also deletes the text 'Begin forwarded message:' to clean things up and includes a find and replace routine from MacScripter so it can be easily customized.
Here is the script itself:
tell application "Mail"
set selectedMessages to selection
if (count of selectedMessages) is equal to 0 then
display alert "No Messages Selected" message "Select the messages you want to collect before running this script."
end if
set theText to ""
repeat with theMessage in selectedMessages
set theText to theText & (content of theMessage) as string
end repeat
end tell
on replaceText(find, replace, subject) -- from MacScripter
set prevTIDs to text item delimiters of AppleScript
set text item delimiters of AppleScript to find
set subject to text items of subject
set text item delimiters of AppleScript to replace
set subject to "" & subject
set text item delimiters of AppleScript to prevTIDs
return subject
end replaceText
set theText to replaceText("Begin forwarded message:", "", theText)
tell application "TextEdit"
set theDocument to make new document
set text of theDocument to theText
end tell
- Copy the script above,
- Open AppleScript Editor,
- Paste the code in your new AppleScript Editor document.
- Save the file to your user's Library » Scripts » Applications » Mail folder, and give it some memorable name; I called it Collect Text of Messages.scpt.
- Select some messages in Mail,
- Run the script from the Scripts Menu.
- The script will create a new document in TextEdit containing the messages, which you can edit further, save, etc.
[crarko adds: I tested this, and it works as described.]

