Vorrei aprire un messaggio mail con il corpo in formato html.

utilizzo il seguente codice per farlo, me il messaggio appare comunque text/plan

codice:
Dim comando As String            comando = "mailto:" & "mar@sa.it" & "?body=" & "<html><strong>ciao</strong> come stai</html>"
            'avvia il processo
            Dim process As New Process()
            process.Start(comando)

ho provato anche la libreria SendFileTo ma appare il messaggio di errore "Overflow di una operazione aritmetica"


codice:
Imports System.Runtime.InteropServices


Namespace SendFileTo


    Public Class SendFileTo


        Class MAPI
            Public Function AddRecipientTo(ByVal email As String) As Boolean
                Return AddRecipient(email, howTo.MAPI_TO)
            End Function


            Public Function AddRecipientCC(ByVal email As String) As Boolean
                Return AddRecipient(email, howTo.MAPI_CC)
            End Function


            Public Function AddRecipientBCC(ByVal email As String) As Boolean
                Return AddRecipient(email, howTo.MAPI_BCC)
            End Function


            Public Sub AddAttachment(ByVal strAttachmentFileName As String)
                m_attachments.Add(strAttachmentFileName)
            End Sub


            Public Function SendMailPopup(ByVal strSubject As String,
                    ByVal strBody As String) As Integer
                Return SendMail(strSubject, strBody, MAPI_LOGON_UI Or MAPI_DIALOG)
            End Function


            Public Function SendMailDirect(ByVal strSubject As String,
                ByVal strBody As String) As Integer
                Return SendMail(strSubject, strBody, MAPI_LOGON_UI)
            End Function




            <DllImport("MAPI32.DLL")> _
            Private Shared Function MAPISendMail(ByVal sess As IntPtr,
             ByVal hwnd As IntPtr, ByVal message As MapiMessage,
             ByVal flg As Integer, ByVal rsv As Integer) As Integer
            End Function


            Private Function SendMail(ByVal strSubject As String,
                ByVal strBody As String, ByVal how As Integer) As Integer
                Dim msg As MapiMessage = New MapiMessage()
                msg.subject = strSubject
                msg.text = strBody.Trim


                msg.recips = GetRecipients(msg.recipCount)
                msg.files = GetAttachments(msg.fileCount)


                m_lastError = MAPISendMail(New IntPtr(0), New IntPtr(0), msg, how, 0)
                If m_lastError > 1 Then
                    MessageBox.Show("MAPISendMail failed! " + GetLastError(),
                        "MAPISendMail")
                End If


                Cleanup(msg)
                Return m_lastError
            End Function


            Private Function AddRecipient(ByVal email As String,
                ByVal howTo As howTo) As Boolean
                Dim recipient As MapiRecipDesc = New MapiRecipDesc()


                recipient.recipClass = CType(howTo, Integer)
                recipient.name = email
                m_recipients.Add(recipient)


                Return True
            End Function


            Private Function GetRecipients(ByRef recipCount As Integer) As IntPtr
                recipCount = 0
                If m_recipients.Count = 0 Then
                    Return 0
                End If


                Dim size As Integer = Marshal.SizeOf(GetType(MapiRecipDesc))
                Dim intPtr As IntPtr = Marshal.AllocHGlobal(
                    m_recipients.Count * size)


                Dim ptr As Integer = CType(intPtr, Integer)
                Dim mapiDesc As MapiRecipDesc
                For Each mapiDesc In m_recipients
                    Marshal.StructureToPtr(mapiDesc, CType(ptr, IntPtr), False)
                    ptr += size
                Next


                recipCount = m_recipients.Count
                Return intPtr
            End Function


            Private Function GetAttachments(ByRef fileCount As Integer) As IntPtr
                fileCount = 0
                If m_attachments Is Nothing Then
                    Return 0
                End If


                If (m_attachments.Count <= 0) Or (m_attachments.Count >
                    maxAttachments) Then
                    Return 0
                End If


                Dim size As Integer = Marshal.SizeOf(GetType(MapiFileDesc))
                Dim intPtr As IntPtr = Marshal.AllocHGlobal(
                    m_attachments.Count * size)


                Dim mapiFileDesc As MapiFileDesc = New MapiFileDesc()
                mapiFileDesc.position = -1
                Dim ptr As Integer = CType(intPtr, Integer)


                Dim strAttachment As String
                For Each strAttachment In m_attachments
                    mapiFileDesc.name = IO.Path.GetFileName(strAttachment)
                    mapiFileDesc.path = strAttachment
                    Marshal.StructureToPtr(mapiFileDesc, CType(ptr, IntPtr), False)
                    ptr += size
                Next


                fileCount = m_attachments.Count
                Return intPtr
            End Function


            Private Sub Cleanup(ByRef msg As MapiMessage)
                Dim size As Integer = Marshal.SizeOf(GetType(MapiRecipDesc))
                Dim ptr As Integer = 0


                If msg.recips <> IntPtr.Zero Then
                    ptr = CType(msg.recips, Integer)
                    Dim i As Integer
                    For i = 0 To msg.recipCount - 1 Step i + 1
                        Marshal.DestroyStructure(CType(ptr, IntPtr),
                            GetType(MapiRecipDesc))
                        ptr += size
                    Next
                    Marshal.FreeHGlobal(msg.recips)
                End If


                If msg.files <> IntPtr.Zero Then
                    size = Marshal.SizeOf(GetType(MapiFileDesc))


                    ptr = CType(msg.files, Integer)
                    Dim i As Integer
                    For i = 0 To msg.fileCount - 1 Step i + 1
                        Marshal.DestroyStructure(CType(ptr, IntPtr),
                            GetType(MapiFileDesc))
                        ptr += size
                    Next
                    Marshal.FreeHGlobal(msg.files)
                End If


                m_recipients.Clear()
                m_attachments.Clear()
                m_lastError = 0
            End Sub


            Public Function GetLastError() As String
                If m_lastError <= 26 Then
                    Return errors(m_lastError)
                End If
                Return "MAPI error [" + m_lastError.ToString() + "]"
            End Function


            ReadOnly errors() As String = New String() {"OK [0]", "Annullato dall'utente [1]",
                "Errore generale MAPI [2]", "Accesso MAPI fallito [3]",
                "Disco pieno [4]", "Memoria insufficente [5]", "Accesso negato [6]",
                "-sconosciuto- [7]", "Troppe sessioni [8]",
                "Sono stati specificati troppi files [9]",
                "Sono stati specificati troppi destinatari [10]",
                "L'allegato specificato non è disponibile [11]",
                "Apertura allegato fallita [12]", "Scrittura dell'allegato fallita [13]",
                "Destinatario sconosciuto [14]", "Tipo di destinatario non corretto [15]",
                "Nessun messaggio [16]", "Messaggio non valido [17]", "Testo troppo grande [18]",
                "Sessione non valida [19]", "Tipo non supportato [20]",
                "Uno dei destinatari specificati è ambiguo [21]",
                "Messaggio in uso [22]", "Errore di rete [23]",
                "Campi di modifica non vallidi [24]", "Destinatari non validi [25]",
                "Non supportato [26]"}


            Dim m_recipients As New List(Of MapiRecipDesc)
            Dim m_attachments As New List(Of String)
            Dim m_lastError As Integer = 0


            Private Const MAPI_LOGON_UI As Integer = &H1
            Private Const MAPI_DIALOG As Integer = &H8
            Private Const maxAttachments As Integer = 20


            Enum howTo
                MAPI_ORIG = 0
                MAPI_TO
                MAPI_CC
                MAPI_BCC
            End Enum


        End Class


        <StructLayout(LayoutKind.Sequential)> _
        Public Class MapiMessage
            Public reserved As Integer
            Public subject As String
            Public text As String
            Public messageType As String
            Public dateReceived As String
            Public conversationID As String
            Public flags As Integer
            Public originator As IntPtr
            Public recipCount As Integer
            Public recips As IntPtr
            Public fileCount As Integer
            Public files As IntPtr
        End Class


        <StructLayout(LayoutKind.Sequential)> _
        Public Class MapiFileDesc
            Public reserved As Integer
            Public flags As Integer
            Public position As Integer
            Public path As String
            Public name As String
            Public type As IntPtr
        End Class


        <StructLayout(LayoutKind.Sequential)> _
        Public Class MapiRecipDesc
            Public reserved As Integer
            Public recipClass As Integer
            Public name As String
            Public address As String
            Public eIDSize As Integer
            Public enTryID As IntPtr
        End Class


    End Class


End Namespace


Quanlcuno puoi aiutarmi.