كيف يمكنني الوصول إلى البريد الإلكتروني Outlook المرفقات في C# بدون حفظه إلى موقع جديد ؟

StackOverflow https://stackoverflow.com/questions/1608507

سؤال

أنا باستخدام Microsoft.Office.Interop.Outlook في C# إلى الوصول إلى علبة البريد وتجد رسائل محددة ملف المرفقات.أنا بحاجة إلى التفاعل مع المرفقات.

حاليا, أنا حفظ الملف إلى موقع جديد و الدخول إليها من هناك.هذه عملية النسخ يتباطأ لي أسفل.كنت مثالي مثل الوصول إلى الملفات من أي مكان يتم تخزينها في الذاكرة ، ولكن Outlook.Attachment.PathName مجال تعود فارغة.

الرسائل التي يتم تخزينها على ملقم Exchange.

هل من الممكن الوصول إليها مباشرة أو هل أنا بحاجة إلى مواصلة توفير الملفات ؟

هل كانت مفيدة؟

المحلول

وOutlook.Attachment.PathName ينطوي على موقع القرص. المرفق هو ملف. إذا كنت تريد التفاعل مع ذلك، لديك للتعامل معه وكأنه ملف، وهذا يعني حفظه إلى القرص المحلي.

والكائن Outlook.Attachment لا يحتوي في الواقع على الملف المرفق. أنه يحتوي على رابط لملف مرفق، مع بعض البيانات الوصفية المرتبطة بها.

نصائح أخرى

أنا لا أعرف إذا كان من الممكن في أي طريقة من خلال نموذج كائن Outlook ، ولكن MAPI بالتأكيد يسمح لك هذا.

تحتاج إلى فتح الرسائل MAPIObject, ، IMessage.من هناك استخدام IMessage::OpenAttach(), والتي ترجع IAttach.
المرفق الحجم يتم تخزينها في PR_ATTACH_SIZE, فإن البيانات الفعلية في PR_ATTACH_DATA_BIN.

كما هو الحال دائما ، الفداء ربما أسهل طريقة للقيام بذلك.

تحرير:
الوصول عبر MAPI ما Outlook لا داخليا على أي حال - أن تكون معقولة سريع, على الأقل عند استخدام وضع Exchange المخزن مؤقتا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top