同じボックスの SMTP サーバー (IIS) で配信する電子メールを作成するアプリケーションがあります (OS は 2003 サーバー 32 ビットです)。これを「cdSendUsingPickup」メソッドを使用して送信します。
IMessage インターフェイスを使用して、メッセージをサーバーのピックアップ ディレクトリにコピーします。メッセージが 150 MB 未満であれば、すべて問題なく動作します。サイズは、メールへの添付ファイルによって説明されます。しかし、この制限を超える添付ファイルを含めると、IMessage::GetStream() は 0x8007000e で失敗します。この操作を完了するのに十分な記憶域がありません。サーバーには十分な HD スペースがあります。私はある種のスペース制限に直面しています.HDスペースの問題ではなく、メモリの制限であると考えていますが、何が起こっているのかについての手がかりが見つかりません. 以下の疑似コード - 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.
...
}