Iis CDO的邮件大小限制?

Iis CDO的邮件大小限制?,iis,smtp,cdo.message,eml,Iis,Smtp,Cdo.message,Eml,我有一个应用程序,其中我正在创建一封电子邮件,我希望SMTP服务器(IIS)在同一个框中传递(操作系统是2003服务器32位)。我使用“CDSendUsingPick”方法发送此信息 使用我的IMessage界面,我将消息复制到服务器拾取目录。只要我的消息小于~150MB,一切都很好。邮件大小由邮件的附件决定。但是,如果我包含超过此限制的附件,则IMessage::GetStream()将因0x8007000e而失败-没有足够的存储空间来完成此操作。服务器有足够的高清空间。我遇到了某种空间限制,

我有一个应用程序,其中我正在创建一封电子邮件,我希望SMTP服务器(IIS)在同一个框中传递(操作系统是2003服务器32位)。我使用“CDSendUsingPick”方法发送此信息

使用我的IMessage界面,我将消息复制到服务器拾取目录。只要我的消息小于~150MB,一切都很好。邮件大小由邮件的附件决定。但是,如果我包含超过此限制的附件,则IMessage::GetStream()将因0x8007000e而失败-没有足够的存储空间来完成此操作。服务器有足够的高清空间。我遇到了某种空间限制,我认为这更多的是内存限制,而不是高清空间问题,但我没有发现任何关于发生了什么的线索。下面的伪代码-调用GetStream失败,消息大小超过150MB左右。适用于较小的消息

DlvrMsg(IMessage piMsg)
{
     _StreamPtr pStream = NULL;
     HRESULT hr = piMsg->GetStream(&pStream);
     pStream->put_type(adTypeBinary);

    //.. then use pStream->Read() to read the bytes of the message
    // and copy to an .eml file in the pickup directory.

    ...

  }

是的,显然有一个限制,不过微软不会给出严格的限制。他们只说对GetStream()的调用在对realloc的调用中失败。越来越多的内存被重新分配,直到达到人为的限制


这种情况发生在2003年的服务器以及2008年的32位和64位服务器上。唯一的解决办法是使用CDO以外的东西来发送邮件。

我怀疑您是否希望用户打开150 MB以上的电子邮件?你是想用电子邮件作为自动交通工具吗?老兄,这是客户想要的。你在向唱诗班说教,伙计。我知道这很可笑,你知道这很可笑——客户不同意。某个白痴答应了他们,那个白痴不是我。顺便说一句,一个不同的电子邮件解决方案被用来解决这个问题,我明白了,只是想让任何一个认为这是一个潜在的解决方案的人明白这不是一个好主意。我理解你的痛苦。