Beheren van berichtbijlagen
Behandelen van bijlagen in Outlook
Outlook‑berichten (MSG) maken en opslaan legt uit hoe berichten te maken en op te slaan, en hoe MSG‑bestanden met bijlagen te maken. Dit artikel legt uit hoe Microsoft Outlook‑bijlagen te beheren met Aspose.Email. Bijlagen uit een berichtbestand worden benaderd en opgeslagen op schijf met behulp van de MapiMessage klasse Bijlagen eigenschap. De Bijlagen eigenschap is een collectie van het type MapiAttachmentCollection klasse.
Controleer bijlagetype (Inline of regulier)
Inline‑ en reguliere bijlagen dienen verschillende doelen. Inline‑bijlagen worden visueel geïntegreerd in het e‑mailbericht en zijn doorgaans afbeeldingen of mediabestanden. Terwijl reguliere bijlagen afzonderlijke bestanden zijn die aan de e‑mail worden toegevoegd en diverse bestandstypen kunnen bevatten. De MapiAttachment.IsInline eigenschap van de MapiAttachment klasse krijgt een waarde die aangeeft of de bijlage inline of regulier is.
Het volgende codevoorbeeld haalt informatie over elke bijlage op in de geladen MapiMessage en geeft deze weer, inclusief hun weergavenamen en of ze inline‑bijlagen zijn of niet.
var message = MapiMessage.Load(fileName);
foreach (var attach in message.Attachments)
{
Console.WriteLine($"{attach.DisplayName0} : {attach.IsInline)}");
}
Controleer bijlagetype (IsReference)
De MapiAttachment klasse bevat de IsReference eigenschap die ontwikkelaars in staat stelt referentielbijlagen in een bericht te identificeren. Met het volgende codevoorbeeld kun je controleren of een bijlage een referentiebijlage is:
foreach (var attachment in msg.Attachments)
{
if (attachment.IsReference)
{
// Process reference attachment
}
}
Bijlagen opslaan uit MSG‑bestanden
Om bijlagen uit een MSG‑bestand op te slaan:
- Itereer door de MapiAttachmentCollection collectie aan en haal de individuele bijlagen op.
- Om de bijlagen op te slaan, roep de Save()‑methode van de MapiAttachment‑klasse aan.
De volgende codefragment toont hoe je bijlagen opslaat op de lokale schijf.
Extraheer bijlagen uit RTF‑geformatteerde MSG‑bestanden
Voor berichten die zijn opgemaakt als RTF kan de volgende code worden gebruikt om bijlagen die Inline zijn of als pictogram in de berichtinhoud verschijnen te onderscheiden en te extraheren. Het volgende codefragment toont hoe je een ingebedde bijlage identificeert en extraheert uit een MSG die is opgemaakt als RTF.
var eml = MapiMessage.Load("MSG file with RTF Formatting.msg");
foreach (var attachment in eml.Attachments)
{
if (IsAttachmentInline(attachment))
{
try
{
SaveAttachment(attachment, Data.Out/new Guid().ToString());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
static bool IsAttachmentInline(MapiAttachment attachment)
{
foreach (var property in attachment.ObjectData.Properties.Values)
{
if (property.Name == "\x0003ObjInfo")
{
var odtPersist1 = BitConverter.ToUInt16(property.Data, 0);
return (odtPersist1 & (1 << (7 - 1))) == 0;
}
}
return false;
}
static void SaveAttachment(MapiAttachment attachment, string fileName)
{
foreach (var property in attachment.ObjectData.Properties.Values)
{
if (property.Name == "Package")
{
using var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
fs.Write(property.Data, 0, property.Data.Length);
}
}
}
Haalt geneste mailbericht‑bijlagen op
Ingebedde OLE‑bijlagen verschijnen ook in de MapiMessage klasse Attachment‑collectie. Het volgende code‑voorbeeld parseert een berichtbestand op ingebedde berichtbijlagen en slaat het op de schijf op. De MapiMessage klasse FromProperties() statische methode kan een nieuw bericht maken vanuit een ingebedde bijlage. Het volgende codefragment toont hoe je geneste mailbericht‑bijlagen krijgt.
Bijlagen verwijderen
De Aspose Outlook‑bibliotheek biedt de functionaliteit om bijlagen te verwijderen uit Microsoft Outlook‑berichten (.msg)-bestanden:
- Roep de RemoveAttachments()‑methode aan. Deze neemt het pad van het berichtbestand als parameter. De methode is geïmplementeerd als een publieke statische methode, dus u hoeft het object niet te instantieren.
Het volgende codefragment toont hoe u bijlagen verwijdert.
Je kunt ook de MapiMessage klasse statische methode DestroyAttachment() Werkt sneller dan RemoveAttachment(), omdat de RemoveAttachment()-methode het berichtbestand parseert.
MSG‑bijlagen toevoegen
Een Outlook‑bericht kan andere Microsoft Outlook‑berichten als bijlagen bevatten, zowel als reguliere als ingebedde berichten. De MapiAttachmentCollection biedt overladen leden van de Add‑methode om Outlook‑berichten te maken met beide soorten bijlagen.
Probeer het uit!
Voeg e‑mailbijlagen toe of verwijder ze met de gratis Aspose.Email Editor App.
Referentiebijlagen toevoegen aan MapiMessages
De ReferenceAttachmentOptions klasse vereenvoudigt het toevoegen van referentiebijlagen door alle benodigde eigenschappen in één object te encapsuleren.
Parameters van ReferenceAttachmentOptions:
- sharedLink: Een volledig gekwalificeerde gedeelde link naar de bijlage, geleverd door de webservice die het bestand host.
- url: De bestandslocatie of resource‑URL.
- providerName: De naam van de referentie‑bijlageprovider (bijv. Google Drive, Dropbox).
- Voorbeeld: Een referentiebijlage toevoegen met ReferenceAttachmentOptions
var options = new ReferenceAttachmentOptions(
"https://drive.google.com/file/d/1HJ-M3F2qq1oRrTZ2GZhUdErJNy2CT3DF/",
"https://drive.google.com/drive/my-drive",
"GoogleDrive");
// Add reference attachment
msg.Attachments.Add("Document.pdf", options);
Berichten insluiten als bijlagen
Het volgende codefragment toont hoe je een MSG‑bestandbijlage in een bericht embedt.
Ingesloten berichten lezen uit bijlagen
De onderstaande code‑snippet laat zien hoe je ingesloten berichten uit bijlagen leest.
Invoegen en vervangen van bijlage
Aspose.Email API biedt de mogelijkheid om bijlagen op een specifieke index in het bovenliggende bericht in te voegen. Het biedt ook de mogelijkheid om de inhoud van een bijlage te vervangen door een andere berichtbijlage.
Probeer het uit!
Voer de ReplaceAttach eenvoudig app‑project, en probeer de Aspose.Email‑mogelijkheden om bijlagen in actie te vervangen.
Bijlagen invoegen op specifieke locaties
Aspose.Email‑API biedt de mogelijkheid om een MSG‑bijlage in een bovenliggend MSG in te voegen met behulp van de Insert‑methode van MapiAttachmentCollection (MapiAttachmentCollection Insert(int index, string name, MapiMessage msg)). Het volgende codefragment toont hoe je een bijlage op een specifieke locatie invoegt.
Inhoud van bijlage vervangen
Dit kan worden gebruikt om de inhoud van ingebedde bijlagen te vervangen door nieuwe via de Replace‑methode. Het kan echter niet worden gebruikt om een bijlage met PR_ATTACH_NUM = 4 (bijvoorbeeld) in een collectie met collection.Count = 2 in te voegen. Het volgende codefragment toont hoe u bijlage‑inhoud vervangt.
Hernoem bijlagen in MapiMessage
Het is mogelijk de DisplayName‑eigenschap van MapiMessage‑bijlagen te bewerken.
var msg = MapiMessage.Load(fileName);
msg.Attachments[0].DisplayName = "New display name 1";
msg.Attachments[1].DisplayName = "New display name 2";
Bewaar bijlagen van digitaal ondertekende berichten
Aspose.Email API biedt de mogelijkheid om een waarde op te halen of in te stellen die aangeeft of een clear‑signed bericht zal worden gedecodeerd.