2012-03-04 24 views
6

मैं ओपनपॉप के साथ गड़बड़ कर रहा था, पीओपी 3 मेल लाने के लिए सी # में लिखी गई लाइब्रेरी। ऐसा लगता है कि यह ठीक काम करता है, लेकिन मुझे यह नहीं पता था कि स्पष्ट रूप से संलग्न फाइलों के बीच मेल और HTML-content मेल में चित्रों जैसे सामानों के बीच अंतर कैसे बनाया जाए। यह पुस्तकालय उन सभी को "संलग्नक" के रूप में मानता है। मेरी ज़रूरतों के लिए मैं एचटीएमएल मेल में एक अनुलग्नक के भीतर एक तस्वीर पर विचार नहीं करता।
पुस्तकालय डॉक्स से:एचटीएमएल मेल में तस्वीरों से "असली" मेल अनुलग्नक को अलग करने के लिए कैसे?

एक MessagePart, अटैचमेंट माना जाता है अगर
- यह पाठ पकड़े नहीं है और एक मल्टीपार्ट संदेश या
नहीं है - यह एक सामग्री-विन्यास हैडर है कहते हैं कि यह एक अनुलग्नक है

कम से कम सैद्धांतिक शर्तों में मुझे क्या करना चाहिए या खोजना चाहिए (क्योंकि मैं मेल प्रोटोकॉल से वास्तव में परिचित नहीं हूं)?

उत्तर

4

आप यह जांच सकते हैं कि छवि फ़ाइल को ईमेल के बॉडी टेक्स्ट में संदर्भित किया गया है या नहीं। आपको HTML को पार्स करने और सीएसएस चयनकर्ता में img या background-image संपत्ति जैसे टैग ढूंढने की आवश्यकता होगी। अगर छवि संदेश द्वारा स्वयं का उपयोग नहीं किया जाता है, तो इसे "वास्तविक" अनुलग्नक मानें।

3

मैं OpenPop.NET पर एक डेवलपर हूं।

ईमेल के बारे में कुछ पृष्ठभूमि जानकारी संलग्नक हैं। टोनी टट्टू का जवाब जाने का रास्ता है।

जब मैं OpenPop.NET के उस हिस्से को कार्यान्वित कर रहा था तो मुझे संलग्नक से अनुलग्नकों को अलग करने की समस्या भी थी। MIME has a header, Content-Disposition जो यह बताने में सक्षम है कि कोई निश्चित भाग संलग्नक है या नहीं।

उदाहरण के लिए, यहाँ एक अनुलग्नक

Content-Disposition: attachment 

है और यहां ईमेल

Content-Disposition: inline 

यह कैसे अच्छा लग सकता है की एक एचटीएमएल भाग के लिए एक छवि हो सकता है, समस्या यह है कई ईमेल कि ग्राहक इन शीर्षकों को नहीं जोड़ते हैं, जिससे इसे OpenPop.NET जैसे पाठकों के लिए कठिन बना दिया जाता है। हम ईमेल के सभी HTML हिस्सों को देखने के लिए नहीं चुनते हैं कि कौन सी छवियों को रेफ़्रिड किया जा रहा है, और इसलिए यह अब लाइब्रेरी के उपयोगकर्ता तक है।

यदि आप समस्या का अच्छा समाधान विकसित करते हैं, तो इसे परियोजना के लिए एक उदाहरण के रूप में जोड़ा जा सकता है।

+0

वास्तव में वहाँ बहुत बार है जब सामग्री-स्वभाव ईमेल में खाली है। 'सामग्री-विस्थापन: अनुलग्नक' होता है। बहुत से ई-मेल क्लाइंट इसका उपयोग कर रहे हैं। लेकिन इनलाइन, भले ही यह कल्पना हो, फिर भी यह गायब है। – Marcin

+0

@foens हाँ, ओपनपॉप.net दस्तावेज़ों को पढ़ने और एमआईएम के बारे में और अधिक पढ़ने के दौरान, मुझे एहसास हुआ कि यह थोड़ा मुश्किल हो सकता है। वैसे भी स्पष्टीकरण के लिए धन्यवाद, और यदि मैं कुछ उपयोग करने योग्य हूं, तो मैं आपको बता दूंगा, मुझे लगता है कि मेरे पास कुछ विचार हैं। – Less

3

मैं इसे इस तरह से किया है और यह काम करने लगता है:

foreach (OpenPop.Mime.MessagePart fileItem in elencoAtt) 
{ 
    System.Net.Mime.ContentDisposition cDisp = fileItem.ContentDisposition; 

    //Check for the attachment... 
    if (!cDisp.Inline) 
    { 
     // Attachment not in-line 
    } 
    else 
    { 
     // Attachment in-line 
    } 
}