Hi!
VMime can handle all of this, except the SMTP server part. You will have to use another library for this work. Then, when you get a message, you can parse it, modify the header fields, regenerate it to a MIME message then forward it to another SMTP server.
Have a look at the examples that come in the "example" directory of the source tree.
Vincent