Isso provavelmente não é exatamente o que você está procurando, mas é um começo (e grátis!). É uma macro do Outlook que escrevi um tempo atrás para fazer exatamente isso. O maior problema é que ele não faz anexos que poderiam ser um obstáculo para você, mas pensei em compartilhar de qualquer maneira. Você clica em uma pasta que deseja exportar e envia as informações da mensagem para uma tabela SQL. É fácil modificar isso se você quiser mais campos.
Sub ExportMsgData()
Dim objConn As New ADODB.Connection
Dim rsMsgs As New ADODB.Recordset
Dim strDBFile As String
On Error Resume Next
Set objConn = New ADODB.Connection
With objConn
.ConnectionString = "Provider=SQLOLEDB;data source=MySQLSvr;initial catalog=MyMail;integrated security=SSPI"
.Open
End With
Set objExp = Application.ActiveExplorer
If objExp.Selection.Count > 0 Then
If objExp.Selection(1).Class = Outlook.OlObjectClass.olMail Then
For Each objMsg In objExp.Selection
With rsMsgs
.CursorLocation = adUseClient
.Open "SELECT TOP 1 * FROM t_Msg", objConn, adOpenDynamic, adLockBatchOptimistic
.AddNew
!MsgFrom = objMsg.SENDERNAME
!MsgFromEmail = objMsg.SenderEmailAddress
!MsgDateSent = objMsg.SentOn
!MsgDateReceived = objMsg.ReceivedTime
!MsgSubject = objMsg.Subject
.UpdateBatch
rsMsgs.Close
End With
Next
End If
End If
objConn.Close
Set rsMsgs = Nothing
Set objConn = Nothing
End Sub