Outlook certainly has this capability using macros to provide the processing - the basic principles are covered on my web site at http://www.gmayor.com/extract_data_from_email.htm. Obviously each application needs to be processed according to individual requirements, but this provides the gist.
The main issue is your requirement to include the message body in your worksheet. E-mail message body formats do not lend themselves to Excel worksheet importation.
Get rid of that requirement and you can use ADODB to write directly to the worksheet, which is clearly the best way forward. For that you'll need additional code e.g.
Private Function WriteToWorksheet(strWorkbook As String, _
strRange As String, _
strValues As String)
Dim ConnectionString As String
Dim strSQL As String
Dim CN As Object
ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & strWorkbook & ";" & _
"Extended Properties=""Excel 12.0 Xml;HDR=YES;"";"
strSQL = "INSERT INTO [" & strRange & "$] VALUES('" & strValues & "')"
Set CN = CreateObject("ADODB.Connection")
Call CN.Open(ConnectionString)
Call CN.Execute(strSQL, , 1 Or 128)
CN.Close
Set CN = Nothing
lbl_Exit:
Exit Function
End Function
strRange is the worksheet name
strValues would be something like
strValues = strDate & "', '" & _
strTime & "', '" & _
strFrom & "', '" & _
strEmail & "', '" & _
strAttachmentName & "', '" & _
strSubject
where the strings are the extracted values from the message