I created a Automator Service that receives Files or folder from Finder.app.
The first action is to Get Selected Finder Items. It then passes these files to a Run AppleScript action containing the following:
on run {input, parameters}
set thisFilePath to (the first item of the input) as text
set fileContents to do shell script "cat " & quoted form of POSIX path of thisFilePath
tell application "Mail"
activate
set composeMessage to (a reference to (make new outgoing message))
tell composeMessage
set the content to fileContents
set visible to true
end tell
end tell
end run
This grabs the file name of the first file selected, which is then passed to a shell script that uses cat
to get the contents of the text file. Then AppleScript is used to create a new message with the contents of the file as the body of the message.