Microsoft Knowledge Base Article
This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved.
Terms
of Use |
Trademarks
Article ID: 314188 - Last Review: June 29, 2007 - Revision: 2.2
How to search for the URI property of a sender's e-mail submission and to send an e-mail message by using this property in Visual Basic .NET
This article was previously published under Q314188
SUMMARY
This
article describes how to use Microsoft XML 3.0 to search for the
URI property of a sender's e-mail submission and to send an
e-mail message by using this property in Microsoft Visual Basic .NET.
MORE INFORMATION
To use Microsoft XML 3.0 to search for the
URI property of a sender's e-mail submission and to send an e-mail
message by using this property in Visual Basic .NET, follow these steps.
Note This sample code uses Microsoft XML 3.0, but the information also applies to Microsoft XML 4.0.
- Start Microsoft Visual Studio .NET.
- On the File menu, point to
New, and then click Project.
- In the Visual Basic Projects list,
click Console Application.
By default, the Module1.vb
file is created. - Add a reference to Microsoft XML 3.0. To do so, follow
these steps:
- On the Project menu, click Add
Reference.
- Click the COM tab, click
Microsoft XML v3.0, and then click Select.
- In the Add References dialog box,
click OK.
- If you are prompted to generate wrappers for the
libraries that you selected, click Yes.
- In the code window, replace the existing code with the
following:
Imports System.Reflection
Module Module1
Sub Main()
'TODO: Replace with the name of the computer that is running Microsoft Exchange 2000 Server.
Dim strExchSvr As String = "<ExchServerName>"
'TODO: Replace with the alias of the sender.
Dim strAlias As String = "<UserAlias>"
'TODO: Replace with the domain name and the alias of the sender.
Dim strUserName As String = "<UserDomain\UserAlias>"
'TODO: Replace with the sender's password.
Dim strPassWord As String = "<UserPassword>"
Dim sMailUrl As String
sMailUrl = FindSubmissionURL(strExchSvr, strAlias, strUserName, strPassWord)
If (sMailUrl <> "") Then
' TODO: Replace with your mail information.
Dim strFrom As String = "from@example.com"
Dim strTo As String = "to@example.com"
Dim strSubject As String = "Send Using Webdav"
Dim strBody As String = "Hello World"
Dim oXMLHttp As MSXML2.XMLHTTP30 = New MSXML2.XMLHTTP30()
oXMLHttp.open("PUT", sMailUrl, False, strUserName, strPassWord)
Dim mySentTime As DateTime = New DateTime()
Dim sQuery As String
sQuery = "From: " & strFrom & vbNewLine & _
"To: " & strTo & vbNewLine & _
"Subject: " & strSubject & vbNewLine & _
"Date: " & Convert.ToDateTime("9/11/2001 11:45 AM") & 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
oXMLHttp.setRequestHeader("Translate", "f")
oXMLHttp.setRequestHeader("Content-Type", "message/rfc822")
oXMLHttp.setRequestHeader("Content-Length", "" & sQuery.Length)
oXMLHttp.send(sQuery)
Console.WriteLine(oXMLHttp.status)
Console.WriteLine(oXMLHttp.statusText)
Console.WriteLine(oXMLHttp.responseText)
oXMLHttp = Nothing
End If
End Sub
Private Function FindSubmissionURL(ByVal strExchSvr As String, ByVal strAlias As String, ByVal strUserName As String, ByVal strPassWord As String) As String
Dim query As String
Dim strURL As String
Dim baseName As String = ""
Dim xmlReq As MSXML2.XMLHTTP30 = New MSXML2.XMLHTTP30()
Dim xmldom As MSXML2.DOMDocument = New MSXML2.DOMDocument()
Dim xmlRoot As MSXML2.IXMLDOMElement
Dim xmlNode As MSXML2.IXMLDOMNode
'Create the DAV PROPFIND request.
strURL = "http:/" & strExchSvr & "/exchange" & strAlias
xmlReq.open("PROPFIND", strURL, False, strUserName, strPassWord)
xmlReq.setRequestHeader("Content-Type", "text/xml")
xmlReq.setRequestHeader("Depth", "0")
query = "<?xml version='1.0'?>"
query = query & "<a:propfind xmlns:a='DAV:'>"
query = query & "<a:prop xmlns:m='urn:schemas:httpmail:'>"
query = query & "<m:sendmsg/>"
query = query & "</a:prop>"
query = query & "</a:propfind>"
xmlReq.send(query)
Console.WriteLine(xmlReq.status)
Console.WriteLine(xmlReq.statusText)
Console.WriteLine(xmlReq.responseText)
' Process the result.
If xmlReq.status >= 200 And xmlReq.status < 300 Then
xmldom.loadXML(xmlReq.responseText)
xmlRoot = xmldom.documentElement
Dim i As Integer
For i = 1 To xmlRoot.attributes.length
xmlNode = xmlRoot.attributes(i)
If xmlNode.text = "urn:schemas:httpmail:" Then
baseName = xmlNode.baseName
Exit For
End If
Next
xmlNode = xmlRoot.selectSingleNode("/" & baseName & ":sendmsg")
Return xmlNode.text
Else
Console.WriteLine("Cannot find mail submission URL")
Return ""
End If
End Function
End Module
- Search for the TODO text string in the code, and then modify the code for
your environment.
- Press the F5 key to build and to run the
program.
- Make sure that the e-mail message has been sent and
received.
REFERENCES
For more information, visit the following Microsoft Web
site:
APPLIES TO
- Microsoft Exchange 2000 Server Standard Edition
- Microsoft Visual Basic .NET 2003 Standard Edition
- Microsoft Visual Basic .NET 2002 Standard Edition
- Microsoft XML Parser 3.0
- Microsoft XML Core Services 4.0
Community Feedback System
Very often, it takes hours to solve a problem. Very often, you've looked high
and low, and have tried a lot of solutions. When you finally found it, chances
are, it was because someone else helped you. Here's your chance to give back.
Use our community feedback tool to let others know what worked for you and what
didn't.
Please also understand that the community feedback system is not warranted to be
correct, it's simply a system that we've built to let people try and help each
other. If something in a feedback response doesn't make sense to you, or you're
not comfortable making changes that the feedback talks about (like registry
edits), please consult a professional.
Thank you for using kbAlertz.com Feedback System.
-- Scott Cate
Be the first to leave feedback, to help others about this knowledge base
article.
(Optional) Name
(Optional)
Public URL Or Email
Comments
No
HTML -- Text Only Please