2009-12-03 93 views
0

我有一个经典的ASP页面,创建一个CDO.Message对象发送电子邮件。该代码适用于Window Server 2003,但不适用于2008年。在2008年,“访问被拒绝”错误被抛出。这是我写的一个简单的测试页面,用于诊断问题。我怎样才能让它在Windows Server 2008上运行?CDO.Message给Windows Server 2008上的“访问被拒绝”


dim myMail 
Set myMail=CreateObject("CDO.Message") 
If Err.Number <> 0 Then 
    Response.Write ("Error Occurred: ") 
    Response.Write (Err.Description) 
Else 
    Response.Write ("CDO.Message was created") 
    myMail.Subject="Sending email with CDO" 
    myMail.From="[email protected]" 
    myMail.To="[email protected]" 
    myMail.TextBody="This is a message." 
    myMail.Send 
    set myMail=nothing 
End If 

回答

0

我从来没有得到CDO.Message对象到Windows Server 2008上运行。然而,我发现了一个解决方法。我写了一个适用于Windows Server 2008的电子邮件类。希望这可以帮助其他人。

[ComVisible(true)] 
public class Email 
{ 
    public bool SendEmail(string strTo, string strFrom , string strSubject, string strBody) 
    { 
     bool result = false; 

     try 
     { 
      MailMessage message = new MailMessage(); 
      SmtpClient client = new SmtpClient("smtp.mycompany.com"); 

      List<string> to = recipientList(strTo); 
      foreach (string item in to) 
      { 
       message.To.Add(new MailAddress(item)); 
      } 
      message.From = new MailAddress(strFrom); 
      message.Subject = strSubject; 
      message.Body = strBody; 

      client.Send(message); 

      result = true; 
     } 
     catch 
     { 
      result = false; 
      throw; 
     } 
     return result; 
    } 

    private List<string> recipientList(string strTo) 
    { 
     List<string> result = new List<string>(); 
     string[] emailAddresses = strTo.Split(new Char[]{',',';'}); 
     foreach (string email in emailAddresses) 
     { 
      result.Add(email.Trim()); 
     } 
     return result; 
    } 
} 
0

只要你使用Microsoft SMTP服务器(1)你可以使用IIS元数据库资源管理给予IIS_USRS组(2)读取读取访问/ LM/SMTPSVC /和/ LM/IIS元数据库中的SmtpSvc/1 /节点。

不幸的是这种解决方案并不适用于Windows 7的微软船SMTP服务器与Windows 7,使其成为解决这个问题非常困难,而不重构你的代码。

(1)见http://www.itsolutionskb.com/2008/11/installing-and-configuring-windows-server-2008-smtp-server

(2)参见http://blogs.msdn.com/b/akashb/archive/2010/05/24/error-cdo-message-1-0x80040220-the-quot-sendusing-quot-configuration-value-is-invalid-on-iis-7-5.aspx