How to send a simple e-mail by using XMLHTTP and WebDAV in Visual Basic .NET (314187)



The information in this article applies to:

  • Microsoft Visual Basic .NET (2003)
  • Microsoft Visual Basic .NET (2002)
  • Microsoft Exchange 2000 Server
  • Microsoft XML 4.0
  • Microsoft XML 3.0

This article was previously published under Q314187

INTRODUCTION

This article describes how to programmatically send a simple e-mail message by using the XMLHTTP object and the Web Distributed Authoring and Versioning (WebDAV) protocol in Microsoft Visual Basic .NET. The sample code in the "More Information" section performs the following steps:
  1. Creates an XMLHTTP object.
  2. Calls the Open method of the XMLHTTP object to open the mail submission Uniform Resource Identifier (URI) of the user.
  3. Builds up a request string, and then puts the mail headers and the body message in the request string.
  4. Sends the request string to the Exchange server by using the WebDAV PUT method.

MORE INFORMATION

To programmatically send a simple e-mail message, follow these steps:
  1. Start Microsoft Visual Studio .NET.
  2. On the File menu, click New, and then click Project.
  3. Under Visual Basic Projects types, click Console Application.

    By default, Module1.vb is created.
  4. Add a reference to Microsoft XML 3.0 or to Microsoft XML 4.0. To do this, follow these steps:
    1. On the Project menu, click Add Reference.
    2. On the COM tab, click Microsoft XML v3.0 or Microsoft XML v4.0, and then click Select.
    3. In the Add References dialog box, click OK to accept your selections.
    4. Click Yes if you receive a prompt to generate wrappers for the libraries that you selected.
  5. In the code window, replace the existing code with the following code:
    Module Module1
    
        Sub Main()
            ' To use MSXML 3.0, use the following Dim statements:
            Dim xmlReq As MSXML2.XMLHTTP30 = New MSXML2.XMLHTTP30()
    
            ' To use MSXML 4.0, use the following Dim statements:
            'Dim xmlReq As MSXML2.XMLHTTP40 = New MSXML2.XMLHTTP40()
    
            ' TODO: Replace with your Sender and Recipient information.
            Dim strSenderAlias As String = "UserAlias"
            Dim strFrom As String = "UserAlias@microsoft.com"
            Dim strTo As String = "to@microsoft.com"
            Dim strSubject As String = "Send Using Webdav"
            Dim strBody As String = "Hello World"
    
            Dim sUri As String
            'TODO: Replace ExchServer with the name of your Exchange Server.
            sUri = "http://ExchServer/Exchange/" & strSenderAlias & "/##DavMailSubmissionURI##"
    
            'TODO: Replace with the domain, the username, and the password for the sender. 
            xmlReq.open("PUT", sUri, False, "UserDomain\UserAlias", "UserPassword")
    
            Dim mySentTime As DateTime = New DateTime()
            Dim strReq As String
            strReq = "From: " & strFrom & vbNewLine & _
             "To: " & strTo & vbNewLine & _
             "Subject: " & strSubject & vbNewLine & _
             "Date: " & DateTime.Today.Now & vbNewLine & _
             "X-Mailer: My DAV mailer" & vbNewLine & _
             "MIME-Version: 1.0" & vbNewLine & _
             "Content-Type: text/plain" & vbNewLine & _
             "Charset = ""iso-8859-1""" & vbNewLine & _
             "Content-Transfer-Encoding: 7bit" & vbNewLine & vbNewLine & _
             strBody
    
            xmlReq.setRequestHeader("Translate", "f")
            xmlReq.setRequestHeader("Content-Type", "message/rfc822")
            xmlReq.setRequestHeader("Content-Length", "" & strReq.Length)
    
            xmlReq.send(strReq)
    
            Console.WriteLine(xmlReq.status)
            Console.WriteLine(xmlReq.statusText)
            Console.WriteLine(xmlReq.responseText)
    
            xmlReq = Nothing
        End Sub
    
    End Module
  6. Search for "TODO" in the code, and then modify the code for your environment.
  7. Press F5 to build and to run the program.
  8. Verify that the e-mail message has been sent and received.

REFERENCES

For additional information about WebDAV, visit the following Microsoft Developer Network (MSDN) Web site:For additional information about the Exchange Mail Submission URI, visit the following MSDN Web site:

Modification Type:MajorLast Reviewed:4/29/2004
Keywords:kbhowto KB314187 kbAudDeveloper