The original file name is available in message properties, so you can use outputPattern="error#[header:originalFilename]"
in the file outbound. If your method for reading the file content into database loses the original file content, you could set a variable to hold the content right after you have read the file, and then set the variable as payload before writing the into the error directory in the exception handler.
UPDATE: For the email part, you have several options: basically you just set your email message content as payload and then send it with Mule SMTP outbound, or some email service like Mailgun that offers a simple REST API. It is really quite simple if you just have a suitable email provider.