This is precisely what IMail.SafeFileName is supposed to do.
Those characters are invalid on most systems - this is why they are replaced with underscore ('_').
Additionally backslash ('\') is treated as a folder separator.
You can always use IMail.FileName to get the original file name assigned by the sender. Do not blindly use it as you may overwrite some important files on your system if sender is malicious.