请帮忙看看出错的代码。错误异常System.Runtime.InteropServices.COMException:
风渐寒 2004-11-16 03:11:10 这段代码以前用VB或是C#都可以得到给定用户的邮件及新邮件数目。一段时间没用过后,现在居然出错了。在WEB中注册用户和邮箱的代码也不能用了。没有更改EXCHANGE配置。
c#
int i=0;
string user="admin";
string password="12345";
string sMailBoxURL;
ActiveDs.WinNTSystemInfo objNTInfo=new ActiveDs.WinNTSystemInfoClass();
ADODB.Record objRec=new ADODB.RecordClass();
ADODB.Recordset objRS=new ADODB.RecordsetClass();
sMailBoxURL = "http://"+objNTInfo.PDC+"/exchange/"+user+"/收件箱";
objRec.Open(sMailBoxURL,"",ADODB.ConnectModeEnum.adModeRead,ADODB.RecordCreateOptionsEnum.adOpenIfExists,ADODB.RecordOpenOptionsEnum.adOpenSource,user,password);
objRS=objRec.GetChildren();
if(!objRS.BOF)
{
objRS.MoveFirst();
while(!objRS.EOF)
{
i++;
objRS.MoveNext();
}
Response.Write (i);
Response.Write("您有" + objRec.Fields["urn:schemas:httpmail:unreadcount"].Value + "封新邮件,请注意查收!");
}
else
Response.Write("没有您的邮件");
vb.net
Dim objRec As ADODB.Record
Dim objRS As ADODB.Recordset
Dim sMailBoxURL As String
Dim i As Integer
i = 0
objRec = New ADODB.Record
objRS = New ADODB.Recordset
sMailBoxURL = "http://fireball/exchange/administrator/收件箱"
objRec.Open(sMailBoxURL, , ADODB.ConnectModeEnum.adModeReadWrite, ADODB.RecordCreateOptionsEnum.adOpenIfExists, , "administrator", "7Y7R1SQ")
objRS = objRec.GetChildren
objRS.MoveFirst()
Do Until objRS.EOF
Response.Write("<br>" & objRS.Fields.Item("DAV:displayname").Value & "</br>")
Response.Write(objRS.Fields.Item("DAV:contentclass").Value)
i = i + 1
objRS.MoveNext()
Loop
objRS.Close()
Response.Write(objRec.Fields("DAV:childcount"))
Response.Write("<br><a href='http://fireball/exchange/administrator'>您共有" & i & "封邮件,请注意查收!其中有" & objRec.Fields("urn:schemas:httpmail:unreadcount").Value & "封邮件未阅读")
创建用户代码:
Dim n As Integer
Dim sLDAP As String
Dim sMailLDAP As String
Dim objCDOPerson As CDO.Person
objCDOPerson = New CDO.Person
Dim objinfo As New ActiveDs.ADSystemInfo
Dim szaDomTokens() As String
Dim szDomainDN As String
Dim szLdapDomain As String
Dim szDomainName As String
szDomainName = objinfo.DomainDNSName
szaDomTokens = Split(szDomainName, ".", -1, 1)
szDomainDN = Join(szaDomTokens, ",dc=")
szLdapDomain = "dc=" & szDomainDN
sLDAP = "LDAP://fireball/CN=jjyy,CN=Users," & szDomainDN
With objCDOPerson
.FirstName = "yy"
.LastName = "jj"
.Fields("userAccountControl").Value = 66048 '启用该帐户
.Fields("userPrincipalName").Value = "jjyy"
.Fields.Update()
.DataSource.SaveTo(sLDAP, , , , , "administrator", "12345")
End With
sMailLDAP = "LDAP://fireball/CN=Mailbox Store (FIREBALL),CN=First Storage Group,CN=InformationStore,CN=FIREBALL,CN=Servers,CN=First Administrative Group,CN=Administrative Groups,CN=First Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration," & szLdapDomain
Dim objCDOEXMMailbox As CDOEXM.IMailboxStore
objCDOEXMMailbox = objCDOPerson
objCDOEXMMailbox.CreateMailbox(sMailLDAP)
With objCDOPerson
.Email = "SMTP:jjyy@fire.lgyw.com"
.Fields("mailnickname").Value = "jjyy"
.Fields("userPassword").Value = "12345"
.Fields.Update()
.DataSource.Save()
End With
objCDOEXMMailbox = Nothing
objCDOPerson = Nothing