ghxbs8900 发表于 2013-4-21 22:21:37

outlook express 检测邮件爆的问题

如题,{:face (396):}这是XP下的outlook express哈。 问题在:其单个存储邮件的文件(*.dbx)最大的为1.99G,到此就会收不到邮件。如何检测到其文件快要到达此容量大小 时有个提示。

ghxbs8900 发表于 2013-4-21 22:45:31

各位大大,不要看不到一行代码就不帮忙哈。自己顶下。实在百度不到了。功力不行啊。

ghxbs8900 发表于 2013-4-22 08:56:25

{:face (229):}没有人愿意回答嘛?我只知道单文件大小比较方式。不过有原备份邮件也在。所以怎么检测出当前爆掉的邮件。

kk_lee69 发表于 2013-4-22 09:33:47

回复 3# ghxbs8900

你的問題只是如何檢測出 文件快到1.9G還是 還有其他問題??

檢測文件大小用 FileGetSize不就好了

ghxbs8900 发表于 2013-4-22 11:33:57

本帖最后由 ghxbs8900 于 2013-4-22 12:02 编辑

回复 4# kk_lee69

首先谢谢你,这个本地文件大小检测我知道,问题是检测outlook内部文件夹中的正在有规则的内部文件夹(也就是*.dbx),非常不好意思,我的语言表达不够清析。因我邮件比较多,收件箱.dbx快到1.99GB时,我都会重命名一下,所以存储目录中不止一个这1.99G文件,并且再收邮件时,也不会规则到此重命名内部文件夹中。如下图

ghxbs8900 发表于 2013-4-22 11:39:51

据百度得知。Folders.dbx为outlookexpress的内部目录文件。并得以下代码,只是能力有限。不懂。求教 MESSAGEPROPS,msgProps;
HENUMSTORE hEnumMsg;
CString的项目;
int nIndex;

hEnumMsg​​ = NULL;

/ / 设置大小的结构
/ / 或函数的返回错误
msgProps.cbSize = sizeof(MESSAGEPROPS)的;

/ / 我们想要的主体和其他的
/ / 员工,我们得到的所有属性
/ / 你可以使用MSGPROPS_FAST作为第一个参数
/ / 只得到几个属性的消息。
HRESULT HR = m_pStoreFolder-> GetFirstMessage(0,
                                              0,
                                             MESSAGEID_FIRST,
                                             &MsgProps,
                                             &hEnumMsg);

而(SUCCEEDED(小时)的&&小时!= S_FALSE,){
    项目= msgProps.pszDisplayFrom;
    项目+ = _T( “       “);
    项目+ = msgProps.pszNormalSubject的;

    / / 信息主题,并从显示在列表框中。
   / / 每个项目的数据消息ID
   参数nIndex = m_listMsg.AddString(项);

    (nIndex! LB_ERR =参数nIndex &&!= LB_ERRSPACE,){
      m_listMsg.SetItemData(参数nIndex,msgProps.dwMessageId);
    }

    / / 消息属性
   / / 因为他们被分配由IStoreFolder。
   m_pStoreFolder> FreeMessageProps(&msgProps的);

    HR = m_pStoreFolder> GetNextMessage(hEnumMsg​​,
                                 0&msgProps);
}

// close the enum
if(hEnumMsg) {
    m_pStoreFolder> GetMessageClose(hEnumMsg​​);
}URL为:http://www.codeproject.com/Articles/9166/Reading-and-Writing-Messages-in-Outlook-Express

kk_lee69 发表于 2013-4-22 13:21:09

本帖最后由 kk_lee69 于 2013-4-22 13:25 编辑

回复 5# ghxbs8900

你的方式有點特殊的地方我印象中...........

當你的2012-11到201301 這個資料夾是建立在本地文件夾的時候.....電腦會自動產生一個檔案 就放在你的 收件箱實體路徑的旁邊,本身就會是一個檔案所以 你只要 檢測這個檔案 不就好了嗎???

至於 目錄下有幾個檔案那就 搜尋就會知道.......

我研判是因為你的資料夾 設定在收件箱底下.....所以 你的內容 不會被獨立成一個檔案

所以 你想知道的是如何 檢測出在收件箱這個檔案裏面的 2012到201301 的資料夾大小

可是 這樣一來 就得牽扯 整個 郵件檔案的格式 內容的問題了.....這樣困難度就大增

ghxbs8900 发表于 2013-4-22 13:57:47

本帖最后由 ghxbs8900 于 2013-4-22 13:59 编辑

回复 7# kk_lee69

哈哈,有你的帮忙。我非常荣幸 。。如下图。不管我在OE中哪个位置新建文件夹,对应在它的存储路径中都会生成以它名字加.dbx的文件。现在要是考虑直接从存储目录中FileGetSize    的话,可能因多个文件而无法判断的。原因有有二,一是文件有多个,这好说,日期可以区分。二是OE中的规则到的文件夹才是需要检测的。求解。

ghxbs8900 发表于 2013-4-22 17:43:49

别沉了。自己顶下。

kk_lee69 发表于 2013-4-23 09:32:07

回复 8# ghxbs8900

現在的問題 是如何 得到OE規則中的文件夾但是我覺得這個困難度比較大,暫時也沒找到解決方法,所以我的話會從 檔案的修改時間著手

這是第一個步驟.....

然後我會在第一次執行的時候 建立檔案資料庫.....然後 把所有的檔案 列表 ( 可以用資料庫 也可以用文字檔案的方式記錄)重點是 要記住那些要觀察 那些不用觀察   那就不會有 LOST 的情況

這樣 應該可以達到目的只是繞個角度

ghxbs8900 发表于 2013-4-23 22:48:40

回复 10# kk_lee69

非常感谢,我大概明白了。先从修改时间入手,可以过滤一些文件,然后逐个循环检测。现在突然间发现,不知如何在OE中内部新建文件夹。

kk_lee69 发表于 2013-4-24 13:49:23

回复 11# ghxbs8900

OE 的 UDF不知道有甚麼功能自己研究看看嚕

http://www.autoitscript.com/forum/topic/50122-outlook-express-udf-folders-and-messages/page__hl__+outlook%20+express#entry804078

ghxbs8900 发表于 2013-4-25 21:32:58

回复 12# kk_lee69


    嗯,谢谢啦。下载下来了,暂时还没研究明白。呵呵
页: [1]
查看完整版本: outlook express 检测邮件爆的问题