1

我有一个经典的 ASP 页面,它创建一个CDO.Message对象来发送电子邮件。该代码适用于 Window Server 2003,但不适用于 2008。在 2008 年,会引发“访问被拒绝”错误。这是我为诊断问题而编写的一个简单的测试页面。我怎样才能让它在 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="sender@mycompany.com"
    myMail.To="recipient@mycompany.com"
    myMail.TextBody="This is a message."
    myMail.Send
    set myMail=nothing
End If
4

2 回答 2

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;
    }
}
于 2010-01-08T16:15:22.510 回答
0

As long as you're using the Microsoft SMTP server(1) you can use the IIS Metabase Explorer to give the IIS_USRS group(2) read read access to the /LM/SmtpSvc/ and /LM/SmtpSvc/1/ nodes in the IIS Metabase.

Unfortunately this solution doesn't apply to Windows 7. Microsoft does not ship an SMTP server with Windows 7, making it very difficult to get around this problem without refactoring your code.

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

(2) See 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

于 2011-02-08T16:44:18.080 回答