CountVectorizer in Python
Your problem is you have two large sparse feature vectors (email body and subject) and also small dense feature vectors. Here is my simple suggestion:

(Jerome's idea) Reduce the dimension of email body and subject (via PCA, AutoEncoder, CBOW, Doc2Vec, PLSA, or LDA) so that you will end up with a dense feature vector. Then, concatenate it with other meta information.
I think concatenating the matrix with other features are okay. If you use a simple linear model, you can put more weights on meta information and scale down all weights learned from subject and body of the emails.

The real problem is when you use a bag-of-word representation (either term-frequency or TFIDF), your feature vector will be extremely sparse for a very short email. The model might not perform well.
By the way, I think the author information could be a good indicator whether the email will be opened or not.
I am working on a problem in which I have to predict whether a sent email from a company is opened or not and if it is opened, I have to predict whether the recipient clicked on the given link or not.
I have a data set with the following features:

Total links inside the emai`
Total internal links inside the
email 
Number of images inside the email 
Number of sections
inside the email 
Email_body 
Email Subject

For the email body and subject I can use a CountVectorizer but how can I include my other feature to that sparse matrix created by said CountVectorizer.