ניהול מצורפי דוא"ל ו‑Objects משובצים ב‑C#
ניהול מצורפי דוא"ל
קובץ מצורף לאימייל הוא קובץ שנשלח יחד עם הודעת אימייל. הקובץ יכול להישלח כהודעה נפרדת וכן כחלק מההודעה אליה הוא מצורף. ה‑ Attachment class משמש עם ה‑ MailMessage class. כל הודעה כוללת גוף. בנוסף לגוף, ייתכן שתרצו לשלוח קבצים נוספים. קבצים אלה נשלחים כקבצים מצורפים ומיוצגים כמופע של Attachment class. ניתן לשלוח מספר בלתי מוגבל של קבצים מצורפים אך גודלם מוגבל על ידי שרת הדואר. Gmail, לדוגמה, לא תומך בקבצים גדולים מ‑10 מ״ב.
נסו זאת!
הוסף או הסר קבצים מצורפים למייל אונליין עם ה‑ Aspose.Email Editor App.
הוספת קובץ מצורף
כדי להוסיף קובץ מצורף לאימייל, יש לעקוב אחר הצעדים הבאים:
- צור מופע של MailMessage מחלקה.
- צור מופע של Attachment מחלקה.
- טען קובץ מצורף אל ה- Attachment מופע.
- הוסף את ה- Attachment מופע לתוך ה- MailMessage מופע.
קטע הקוד הבא מראה כיצד להוסיף קובץ מצורף לדוא"ל.
// Create an instance of MailMessage class
var eml = new MailMessage
{
From = "sender@from.com",
To = "receiver@to.com",
Subject = "This is message",
Body = "This is body"
};
// Load an attachment
var attachment = new Attachment("1.txt");
// Add Multiple Attachment in instance of MailMessage class and Save message to disk
eml.Attachments.Add(attachment);
eml.AddAttachment(new Attachment("1.jpg"));
eml.AddAttachment(new Attachment("1.doc"));
eml.AddAttachment(new Attachment("1.rar"));
eml.AddAttachment(new Attachment("1.pdf"));
eml.Save("AddAttachments.eml");
מעלה תיארנו כיצד להוסיף קבצים מצורפים להודעת הדוא"ל שלך עם Aspose.Email. מה שבא אחר כך מציג כיצד להסיר קבצים מצורפים ולהציג מידע אודותיהם על המסך.
הוספת קובץ מצורף ברפרנס
קובץ מצורף ברפרנס הוא סוג של קובץ מצורף הכולל קישור או הפנייה לקובץ או לפריט, במקום לכלול את הקובץ או הפריט עצמו בתוך הודעת האימייל. כאשר נמעני האימייל לוחצים על הקובץ המצורף ברפרנס, הם יוכלו לגשת לקובץ המשויך אם יש להם את ההרשאות המתאימות לכך. באמצעות קובץ מצורף ברפרנס, ניתן לשלוח הודעת אימייל קטנה יותר ולהבטיח שכולם יקבלו את הגרסה העדכנית ביותר של הקובץ או הפריט.
קטע הקוד למטה מציג כיצד להוסיף קובץ מצורף ברפרנס לאימייל. הקוד מבצע את הצעדים הבאים:
- טוען את קובץ הודעת האימייל באמצעות MailMessage.Load() שיטה.
- יוצר אובייקט ReferenceAttachment חדש בשם refAttach, ומעביר את כתובת ה‑URL של הקובץ המצורף "https://[attach_uri]" כפרמטר לבורא שלו.
- מגדיר את שם הקובץ המצורף ל"Document.docx" באמצעות שם מאפיין של האובייקט refAttach.
- מגדיר את סוג הספק של המצורף ל‑ AttachmentProviderType.OneDrivePro באמצעות ה- ProviderType מאפיין של האובייקט refAttach.
- מגדיר את סוג ההרשאה של המצורף ל‑ AttachmentPermissionType.AnyoneCanEdit באמצעות ה- PermissionType מאפיין של האובייקט refAttach.
- מוסיף את האובייקט refAttach אל ה‑ קבצים מצורפים אוסף של האובייקט eml באמצעות ה‑ Add() שיטה.
var eml = MailMessage.Load("fileName");
var refAttach = new ReferenceAttachment("https://[attach_uri]")
{
Name = "Document.docx",
ProviderType = AttachmentProviderType.OneDrivePro,
PermissionType = AttachmentPermissionType.AnyoneCanEdit
};
eml.Attachments.Add(refAttach);
הסרת מצורף
להסרת קובץ מצורף, פעל לפי הצעדים הבאים:
- צור מופע של Attachment מחלקה.
- טען קובץ מצורף במופע של Attachment מחלקה.
- הוסף את הקובץ המצורף למופע של MailMessage מחלקה.
- הסר את הקבצים המצורפים מהמופע של Attachment מחלקה באמצעות ה- MailMessage מופע של מחלקה.
קטע הקוד הבא מראה כיצד להסיר קובץ מצורף.
// Create an instance of MailMessage class
var eml = new MailMessage {From = "sender@sender.com", To = "receiver@gmail.com"};
// Load an attachment
var attachment = new Attachment("1.txt");
eml.Attachments.Add(attachment);
// Remove attachment from your MailMessage
eml.Attachments.Remove(attachment);
הצגת שם קובץ המצורף
להצגת שם קובץ של מצורף, פעל לפי הצעדים הבאים:
- חזור על כל המצורפים בהודעת הדוא"ל ושמור כל מצורף.
- הצג את שם כל קובץ מצורף על המסך.
קטע הקוד הבא מראה כיצד להציג על המסך את שם הקובץ המצורף.
var eml = MailMessage.Load("Attachments.eml");
foreach (var attachment in eml.Attachments)
{
// Display the the attachment file name
Console.WriteLine(attachment.Name);
}
חילוץ מצורפי דוא"ל
הנושא הזה מסביר כיצד לחלץ קובץ מצורף מקובץ דוא"ל. קובץ מצורף לדוא"ל הוא קובץ שנשלח יחד עם הודעת דוא"ל. הקובץ יכול להישלח כהודעה נפרדת וכן כחלק מההודעה אליה הוא מצורף. לכל הודעת דוא"ל יש אפשרות לשלוח קבצים נוספים. קבצים אלה נשלחים כקבצים מצורפים ומיוצגים כמופעים של ה- Attachment מחלקה. ה- Attachment class משמש עם ה‑ MailMessage מחלקה לעבודה עם קבצים מצורפים. כדי לחלץ קבצים מצורפים מהודעת דוא"ל, פעל לפי הצעדים:
- צור מופע של MailMessage מחלקה.
- טען קובץ דוא"ל אל ה- MailMessage מופע.
- צור מופע של Attachment מחלקה ושימוש בה בלולאה לחילוץ כל הקבצים המצורפים.
- שמור את הקובץ המצורף והצג אותו על המסך.
|קבצים מצורפים שחולצו בדוא"ל| | :- | |
| קטע הקוד הבא מציג כיצד לחלץ מצורפי דוא"ל.
var eml = MailMessage.Load("Message.eml", new MsgLoadOptions());
foreach (var attachment in eml.Attachments)
{
attachment.Save("MessageEmbedded_out.eml");
Console.WriteLine(attachment.Name);
}
קבלת Content-Description מהמצורף
ה‑API של Aspose.Email מספק יכולת לקרוא את ה‑Content-Description של מצורף מכותרת המצורף. קטע הקוד הבא מציג כיצד לקבל את תיאור התוכן מהמצורף.
var eml = MailMessage.Load("EmailWithAttachEmbedded.eml");
Console.WriteLine(eml.Attachments[0].Headers["Content-Description"]);
זיהוי הודעות משובצות
קטע הקוד הבא מדגים כיצד לקבוע אם הקובץ המצורף הוא הודעה משובצת או לא.
var eml = MailMessage.Load("EmailWithAttachEmbedded.eml");
Console.WriteLine(eml.Attachments[0].IsEmbeddedMessage
? "Attachment is an embedded message."
: "Attachment isn't an embedded message.");
שחזור מצורפים ממיילים חתומים
אימיילים חתומים מכילים קובץ מצורף יחיד smime.p7m. משמעות הדבר שהאימייל מוצפן באמצעות SMIME. פורמט הקובץ smime.p7m הוא החתימה הדיגיטלית. כדי לראות את תוכן האימייל השתמש ב‑ RemoveSignature מתודה. המתודה מחזירה MailMessage אובייקט ללא חתימה דיגיטלית.
var signedEml = MailMessage.Load("signed.eml");
if (signedEml.IsSigned)
{
for (var i = 0; i < signedEml.Attachments.Count; i++)
{
Console.WriteLine($@"Signed email attachment{i}: {signedEml.Attachments[i].Name}");
}
// The email is signed. Remove a signature.
var eml = signedEml.RemoveSignature();
Console.WriteLine(@"Signature removed.");
for (var i = 0; i < eml.Attachments.Count; i++)
{
Console.WriteLine($@"Email attachment{i}: {eml.Attachments[i].Name}");
}
}
טיפול בתמונות מוטמעות
הוספת תמונה מוטמעת לגוף הדוא"ל
ה LinkedResource class משמש עם ה‑ MailMessage מחלקה להטמעת אובייקטים בהודעת הדוא"ל שלך. כדי להוסיף אובייקט משובץ, פעל לפי הצעדים
- צור מופע של MailMessage מחלקה.
- ציין את ערכי השולח, הנמען והנושא ב- MailMessage מופע.
- צור מופע של AlternateView מחלקה.
- צור מופע של LinkedResource מחלקה.
- טען אובייקט משובץ לתוך ה- LinkedResourceCollection.
- הוסף את האובייקט המשובץ שהטענו לתוך ה- MailMessage מופע של מחלקה.
- הוסף את ה- AlternateView מופע ל- MailMessage מופע של מחלקה.
קטעי הקוד למטה מייצרים הודעת דוא"ל עם גופים בטקסט פשוט וב-HTML ותמונה משובצת ב-HTML
|תמונה משובצת בדוא"ל| | :- | |
| ניתן לשלוח מספר בלתי מוגבל של אובייקטים משובצים. גודל הקובץ המצורף מוגבל על ידי שרת הדוא"ל. Gmail, לדוגמה, אינו תומך בקבצים גדולים מ-10MB. קטעי הקוד למטה מדגימים כיצד לשבץ אובייקטים בתוך דוא"ל.
var eml = new MailMessage
{
From = "AndrewIrwin@from.com",
To = "SusanMarc@to.com",
Subject = "This is an email"
};
// Create the plain text part It is viewable by those clients that don't support HTML
var plainView =
AlternateView.CreateAlternateViewFromString("This is my plain text content", null, "text/plain");
// Create the HTML part.To embed images, we need to use the prefix 'cid' in the img src value.
// The cid value will map to the Content-Id of a Linked resource. Thus <img src='cid:barcode'>
// will map to a LinkedResource with a ContentId of 'barcode'.
var htmlView =
AlternateView.CreateAlternateViewFromString("Here is an embedded image.<img src=cid:barcode>", null,
"text/html");
// Create the LinkedResource (embedded image) and Add the LinkedResource to the appropriate view
var barcode = new LinkedResource("1.jpg", MediaTypeNames.Image.Jpeg)
{
ContentId = "barcode"
};
eml.LinkedResources.Add(barcode);
eml.AlternateViews.Add(plainView);
eml.AlternateViews.Add(htmlView);
eml.Save("EmbeddedImage_out.msg", SaveOptions.DefaultMsgUnicode);
הסרת תמונה מוטמעת מגוף הדוא"ל
LinkedResourceCollection נגישה דרך MailMessage.LinkedResources המאפיין. ה- LinkedResourceCollection האוסף מספק מתודה להסרה מלאה של אובייקטים משובצים שנוספו להודעת דוא"ל. השתמש בגרסה העמוסת של LinkedResourceCollection.RemoveAt מתודה להסרת כל הוכחות של אובייקט משובץ מהודעת דוא"ל.
קוד הדוגמה למטה מראה כיצד להסיר אובייקטים משובצים מהודעת דוא"ל.
//Load the test message with Linked Resources
var eml = MailMessage.Load("EmlWithLinkedResources.eml");
//Remove a LinkedResource
eml.LinkedResources.RemoveAt(0, true);
//Now clear the Alternate View for linked Resources
eml.AlternateViews[0].LinkedResources.Clear(true);
טיפול באובייקטים משובצים
אובייקט משובץ הוא אובייקט שנוצר ביישום אחד ונכלל בתוך מסמך או קובץ שנוצר ביישום אחר. לדוגמה, ניתן לשלב גליון Excel של Microsoft בתוך דוח Word של Microsoft, או לשלב קובץ וידאו במצגת PowerPoint של Microsoft. כאשר קובץ משובץ, במקום שהוכנס או הודבק במסמך אחר, הוא שומר על הפורמט המקורי שלו. ניתן לפתוח את המסמך המשובץ ביישום המקורי ולשנות אותו.
חילוץ אובייקטים משובצים
נושא זה מסביר כיצד לחלץ אובייקטים משובצים מקובץ דוא"ל. המסמך המשובץ ניתן לפתיחה ביישום המקורי ולשינוי. כדי לחלץ אובייקט משובץ מהודעת דוא"ל, פעל לפי הצעדים הבאים:
- צור מופע של MailMessage מחלקה.
- טען קובץ דוא"ל ב- MailMessage מופע.
- צור לולאה וצור מופע של ה- Attachment מחלקה בתוכה.
- שמור את הקובץ המצורף והצג אותו על המסך.
- ציין את כתובת השולח והנמען ב- MailMessage מופע.
- שלח דוא"ל באמצעות SmtpClient מחלקה.
קוד הקטע שלמטה מחלץ עצמים משובצים ממייל.
|עצמים משובצים שחולצו במייל| | :- | |
| קטע הקוד הבא מציג כיצד לחלץ עצמים משובצים.
var eml = MailMessage.Load("Message.msg", new MsgLoadOptions());
foreach (var attachment in eml.Attachments)
{
attachment.Save("MessageEmbedded_out.msg");
Console.WriteLine(attachment.Name);
}
חילוץ תמונות מקושרות במיילים HTML
חילוץ משאבי תמונה מקושרים מבחוץ מגוף ה‑HTML והטמעתם בפלט HTML עם Aspose.Email for .NET. קבע HtmlSaveOptions.ExtractHTMLBodyResourcesAsAttachments ל‑True, ותמונות וקבצים משובצים בגוף ה‑HTML יוחלצו ויוטמעו. פעולה זו מסייעת לשמר את המראה המקורי של הודעות עם תוכן מקושר. קוד הדוגמה הבא מציג כיצד לטעון הודעת דוא"ל, לחלץ את משאבי ה‑HTML החיצוניים כמצורפים, באופן אופציונלי לטפל באירועי רינדור משאבים, ולאחר מכן לשמור את ההודעה כקובץ HTML באמצעות Aspose.Email for .NET.
// Load the email message
var mailMessage = MailMessage.Load("input.eml");
// Set options to extract external HTML resources
var options = new HtmlSaveOptions();
options.ExtractHTMLBodyResourcesAsAttachments = true;
// Optional: Handle resource rendering events
options.ResourceHtmlRendering += (sender, e) =>
{
Console.WriteLine(e.PathToResourceFile + " " + ((Attachment)sender).ContentId);
};
// Save the HTML representation of the email
mailMessage.Save("output.html", options);