首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows 2008上提供“拒绝访问”的CDO.Message

在Windows 2008上提供“拒绝访问”的CDO.Message
EN

Stack Overflow用户
提问于 2009-12-03 23:39:25
回答 2查看 7.8K关注 0票数 1

我有一个经典ASP页面,它创建一个CDO.Message对象来发送电子邮件。该代码适用于2003,但不适用于2008。在2008年,一个“访问被拒绝”错误被抛出。这里是我为诊断问题而编写的一个简单的测试页面。如何使它在Windows 2008上工作?

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2010-01-08 16:15:22

我从未让CDO.Message对象在Windows 2008上工作。然而,我找到了一个解决办法。我写了一个在Windows 2008上工作的电子邮件类。希望这能帮到别人。

代码语言:javascript
复制
[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
EN

Stack Overflow用户

发布于 2011-02-08 16:44:18

只要使用Microsoft服务器(1),就可以使用IIS_USRS (2)读取对IIS_USRS中/LM/SmtpSvc/和/LM/SmtpSvc/1/节点的读取访问权限。

不幸的是,此解决方案不适用于Windows 7。Microsoft没有随Windows 7一起发布SMTP服务器,因此很难在不重构代码的情况下解决这个问题。

(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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1843885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档