3

EWS を使用してメールを受信し、CRM システムにインポートしています。メールの 99% ですべて正常に動作します。しかし、いいえ、いくつかの添付ファイルがファイル名を教えてくれないという問題があります。

これが私のコードの例です。

Item item = Item.Bind("id"); //id should be replaced by a leagle id

PropertySet ps = PropertyHelper.GetFullLoadItemPropertySet(m_Item.GetType()); 
//the propertyset is a manually created set with all relevant properties.

item.Load(ps)M

foreach (Attachment att in item.Attachments)
{                                    {
    FileAttachment fa = att as FileAttachment;
    if (fa != null)
    {
        fa.Load();
        if (string.IsNullOrWhiteSpace(fa.FileName))
        {
            System.Diagnostics.Debugger.Break();
        }
    }
}

小さな vba コードを使用して同じメールを見ると、添付ファイルにファイル名があり、Outlook に表示されます。

Dim mail As MailItem

Set mail = Application.ActiveExplorer().Selection.Item(1)

debug.Print mail.Attachments.Item(0).FileName

Outlook が正しいファイル名を取得する理由を知っている人はいますが、EWS は添付ファイルにファイル名がないと言っていますか?

4

3 に答える 3

1

AttachmentEWS から入手できるアイテムのすべてが実際のFileAttachmentアイテムであるとは限りません。添付ファイルの種類のチェックを追加します。

foreach (Attachment att in item.Attachments)
{              
    if (att is FileAttachment fa)
    {
        // Do something with 'fa'
    }
}
于 2014-07-17T11:32:24.177 に答える