Multipart HTML والصور المضمنة من .NET دون الوصول إلى القرص؟

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

  •  19-09-2019
  •  | 
  •  

سؤال

أنا أعمل على منتج يقوم بإنشاء إخراج MS Word عن طريق إنشاء مستند HTML مع البتات المناسبة من Word CSS وسحر XML مدمج فيه. أنا الآن بحاجة إلى تضمين RTF (الصور والنصوص المصممة) في المستند، لذلك أبحث في ميزات جيل HTML متعددة الأوتسارت في .NET.

أرغب في إنشاء مستند MHTML من خلال تحويل مقتطفات RTF إلى صور في الذاكرة، ثم قم بتضمين البيانات المشفرة من Base64 مباشرة في كائن MHTML. حتى الآن، لا يمكنني العثور على أي حلول .NET للقيام بذلك.

ال MS CDO الاشياء يعد، ولكن يبدو أن الطريقة الوحيدة لإنشاء مرفق هي توفير عنوان URL للبيانات واستخدامها AddrelatedBodyPart () لإضافته إلى الكائن.

تبدو حزمة System.Net.Mail مقنعة (كما هو موثق هنا وفي سؤال سابق هنا)، لكنني لا أرى طريقة واضحة لتحويل كائن البريد الذي تم إنشاؤه إلى سلسلة - يبدو أن API يركز حول إرسال رسائل البريد، وليس إنشاء ملفات.

الآن، أنا أتقدم إلى الأمام بنهج يستخدم أدلة CDO والدلائل المؤقتة، لكنني غير سعيد بهذا نهج طويل الأجل. أي اقتراحات أفضل؟

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

المحلول

لم يكن هناك الكثير من الطلب على القدرة على System.net.mail إرسال إخراجها إلى نوع من الدفقات المحددة من قبل المستخدم ولكن تم التحدث عنه. هل تستطيع أن تعطيني معلومات أكثر عن السيناريو الخاص بك؟ أود أن أعرف كيف يستخدم الناس هذا من حيث التبرير لإضافة هذه الميزة.

أعتقد أنك يمكن أن تستخدم التفكير لإعادة توجيه دفق الإخراج من FileStream إلى بعض دفق آخر قبل إرسال الرسالة. يستخدم معظم التعليمات البرمجية في System.net.mail الديكور حول كائنات Stream لذلك أظن أنه سيكون من الممكن لكنني لا أعرف انعكاس جيدا بما يكفي لتعطيك مقتطف رمزا جيدا حول كيفية القيام بذلك. أيضا، يستخدم System.Net.Mail تشفير Base64 الخاص به، لذلك فهو سريع كبير. لقد قصفت بعض الأشياء ل .NET 4.0 أيضا حتى تحصل على أداء أفضل من ذلك، على الرغم من أنني أشك في أنه سيكون من الأسهم.

نصائح أخرى

دعم ترميز Base64 في .NET ليس سريعا للغاية، و System.net.mail ليس بالأغراض العامة. لقد انتهيت باستخدام chilkat s / mime وقد عملت بشكل جيد.

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