Rozlišení mezi vloženými a běžnými přílohami
Je běžný scénář, kdy e‑mailová zpráva může obsahovat vložené obrázky v těle i běžné přílohy s ní spojené. Používáním MailMessage třída, vložené přílohy lze extrahovat z LinkedResourceCollection třída, zatímco běžné přílohy lze získat/vytáhnout pomocí AttachmentCollection třída zprávy. To však platí jinak, když je zpráva načtena pomocí třídy Aspose.Email.Mapi.MapiMessage, protože všechny vložené obrázky a běžné přílohy jsou přístupné uživateli ve stejné třídě MapiAttachmentCollection. Proto je třeba vytvořit metodu, která dokáže rozlišit mezi vloženou a běžnou přílohou při použití MapiMessage.
Použití Aspose.Email k rozlišení mezi vloženými a běžnými přílohami
Tento článek vysvětluje, jak rozlišovat vložené přílohy od běžných pomocí MapiMessage. Pro určení tohoto rozlišení se bere v úvahu typ těla MapiMessage následovně:
Plain Text tělo: E‑mailové zprávy s typem těla prostý text nemusí být kontrolovány, protože všechny přílohy v takových zprávách jsou vždy běžné přílohy.
HTML tělo: V případě zprávy s typem těla HTML by příloha měla nejen obsahovat vlastnost PR_ATTACH_FLAGS (0x37140003), ale její hodnota by měla být 0x00000004 pro vložené (inline) přílohy. Pokud je tato podmínka splněna, dále záleží na značkách PR_ATTACH_CONTENT_LOCATION a PR_ATTACH_CONTENT_ID k určení povahy přílohy. V případě absence MAPI značky PR_ATTACH_FLAGS se příloha kontroluje pomocí vlastnosti PR_ATTACH_DISPOSITION (0x3716001F nebo 0x3716001E) pro určení typu přílohy.
Rtf tělo: Pokud je tělo RTF, jsou všechny OLE přílohy vložené (inline). Hodnota PR_ATTACH_METHOD pro všechny OLE přílohy je 0x00000006.
Následující ukázka kódu demonstruje, jak programově rozlišit mezi vloženými a běžnými přílohami. Funkce IsInlineAttachment přijímá přílohu a typ těla zprávy jako vstupní parametry a vrací true, pokud je příloha vložená (inline).