簡體   English   中英

如何使用服務器上的應用程序從ASP.NET中的功能郵箱中讀取

[英]How to read from functional mailbox in ASP.NET with application on server

我正在開發一個大約有15個用戶的應用程序。 每個用戶都必須以編程方式能夠單擊按鈕並閱讀其共享功能郵箱中的電子郵件(稱為“ 媒體處理” )。

當我在本地測試代碼時,一切正常。 但是,既然我將其發布到服務器上,它就不能再工作了(因為它可能正在服務器上的郵箱中查找,而不是在用戶的郵箱中查找。

在我的web.config中:

<add key="asFuncMailboxInbox" value="Media Processing" />
<add key="asFuncMailboxOutbox" value="902. Outbox" />

這是我處理電子郵件的方法:

string inboxName = WebConfigurationManager.AppSettings["asFuncMailboxInbox"];
string outboxName = WebConfigurationManager.AppSettings["asFuncMailboxOutbox"];

try
{
    OutlookApp myApp = new OutlookApp();
    OutlookNameSpace mapiNameSpace = myApp.GetNamespace("MAPI");
    MapiFolder myInbox = mapiNameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
    MapiFolder mySubFolder = myInbox.Folders[inboxName];
    MapiFolder destinationFolder = myInbox.Folders[outboxName];

    var myItems = mySubFolder.Items;
    myItems.Sort("[ReceivedTime]", true);

    count = 0;

    if (myItems.Count > 0)
    {
        totalCount = myItems.Count;
        for (var i = myItems.Count; i > 0; i--)
        {
            var itemObject = myItems[i] as MailItem;
            if (itemObject != null)
            {
                var isOk = NewBankFactoryHelper.IsMessageCorrectlyConstructed(itemObject.Body);

                if (isOk)
                {
                    StoreNewBankRequestEmailData(itemObject);
                    itemObject.Move(destinationFolder);
                    count++;
                }
            }
        }
    }
}
catch (System.Exception e)
{
    hasError = true;
    errorMessage = e.ToString();
}
finally
{
    template = string.Format(CommonResources.Label_RequestsDownloadSuccess, count, totalCount);

    if (count < totalCount)
    {
        template += CommonResources.Label_EmailIncorrectFormat;
    }
    if (hasError)
    {
        template += string.Format(CommonResources.Label_RequestDownloadFailed, errorMessage);
    }
}

Microsoft當前不建議也不支持任何無人參與的非交互客戶端應用程序或組件(包括ASP,ASP.NET,DCOM和NT Services)中的Microsoft Office應用程序自動化,因為Office可能表現出不穩定的行為和/在此環境中運行Office時出現死鎖或死鎖。

如果要構建在服務器端上下文中運行的解決方案,則應嘗試使用對無人值守執行安全的組件。 或者,您應該嘗試找到允許至少部分代碼在客戶端運行的替代方法。 如果您從服務器端解決方案中使用Office應用程序,則該應用程序將缺少許多成功運行所需的功能。 此外,您將承擔整體解決方案穩定性的風險。 在《 服務器端Office自動化注意事項》一文中了解有關此內容的更多信息。

如果僅處理Exchange郵箱,則可以考慮使用EWS,請參閱Exchange中的EWS托管API,EWS和Web服務以獲取更多信息。 您也可以考慮使用不需要在計算機上安裝Outlook的任何第三方組件。 或僅使用低級API-擴展MAPI。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM