יום רביעי, 31 באוקטובר 2012

Attachments - הוספת קובץ לשליחה במייל

הקוד לשליחת מכתבים דרך השרת של גימייל מפורסם בהרבה מקומות,
אבל אם נרצה להוסיף קובץ למייל, נשתמש בקוד הבא:

 try
            {
                FileStream fs = new FileStream(HttpContext.Current.Server.MapPath("~/pdf/" + nameOfPdf + ".pdf"), FileMode.Open, FileAccess.Read);

                Attachment Attchmnt = new Attachment(fs, nameOfPdf + ".pdf", MediaTypeNames.Application.Octet);

                msg.Attachments.Add(Attchmnt);
            }

Server.MapPath במחלקה

בגישה אל השרת, נרצה לדעת מהי הכתובת שלו ליישומים שונים (שליפת מידע, הכנסת מידע ועוד), נשתמש בפקודה:
Server.MapPath("pdf/NameOfPdf.pdf")

הפקודה הזו טובה בקבצי aspx.cs שיש להם גישה ישירה אל השרת.

אבל אם יש לנו מחלקה שיושבת בתוך תיקיית App_Code, נקבל את השגיאה הבאה:
The name 'Server' does not exist in the current context

נוכל להשתמש בספרייה הבאה:
HttpContext.Current.Server.MapPath("pdf/NameOfPdf.pdf")