Verschil maken tussen inline‑ en reguliere bijlagen

Het is een veelvoorkomend scenario dat een e‑mailbericht inline‑afbeeldingen in de inhoud bevat, evenals daaraan gekoppelde reguliere bijlagen. Met behulp van MailMessage klasse, de inline‑bijlagen kunnen worden geëxtraheerd uit de LinkedResourceCollection klasse, terwijl de reguliere bijlagen kunnen worden benaderd/geëxtraheerd met de AttachmentCollection klasse van een bericht. Dit is echter anders wanneer het bericht wordt geladen met de Aspose.Email.Mapi.MapiMessage‑klasse, aangezien alle inline‑afbeeldingen en reguliere bijlagen toegankelijk zijn voor de gebruiker in dezelfde MapiAttachmentCollection‑klasse. Daarom is het nodig een methode te bedenken die kan onderscheiden tussen een inline‑ en een reguliere bijlage wanneer MapiMessage wordt gebruikt.

Gebruik van Aspose.Email om te onderscheiden tussen inline‑ en reguliere bijlagen

Dit artikel legt uit hoe u inline‑bijlagen van reguliere bijlagen kunt onderscheiden met behulp van MapiMessage. Om dit onderscheid te bepalen, wordt het berichttype van MapiMessage als volgt in aanmerking genomen:

Platte tekst‑bericht: E‑mailberichten met platte tekst‑berichttype hoeven niet gecontroleerd te worden, aangezien alle bijlagen in dergelijke berichten altijd reguliere bijlagen zijn.

Html‑bericht: In het geval van een bericht met HTML‑berichttype mag de bijlage niet alleen de eigenschap PR_ATTACH_FLAGS (0x37140003) bevatten, maar moet de waarde ook gelijk zijn aan 0x00000004 voor inline‑bijlagen. Als aan deze voorwaarde wordt voldaan, hangt het verder af van de tags PR_ATTACH_CONTENT_LOCATION en PR_ATTACH_CONTENT_ID om de aard van de bijlage te bepalen. Echter, bij afwezigheid van de PR_ATTACH_FLAGS Mapi‑tag, wordt de bijlage gecontroleerd op de eigenschap PR_ATTACH_DISPOSITION (0x3716001F of 0x3716001E) om het type bijlage te bepalen.

Rtf‑bericht: Als het bericht RTF is, dan zijn alle OLE‑bijlagen inline‑bijlagen. De waarde van PR_ATTACH_METHOD voor alle OLE‑bijlagen is gelijk aan 0x00000006.

De volgende code‑voorbeeld toont hoe u programmatisch onderscheid kunt maken tussen inline‑ en reguliere bijlagen. De functie IsInlineAttachment neemt een bijlage en Message BodyType als invoerparameters en retourneert true als de bijlage een inline‑bijlage is.