DCSIMG
Attach web page to email - שלמה גולדברג (הרב דוטנט)

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

Attach web page to email

 

אתם מכירים את זה שלבוסים יש לפעמים דרישות מוזרות, קורה לכולם לא ?
 
קחו למשל את הדרישה הבאה.
לשלוח מייל כלשהו ולצרף למייל את תוכן הדף כפי שהוא עם כל הפרטים שהמשתמש כתב, כלומר - סוג של Print Screen.
 
אבל היות שבוסים הם בוסים, ואם אחרי שמתווכחים איתם על המוזרות שבדרישה שלהם עדיין הם מתעקשים אז צריך לבצע את הבקשות שלהם.
 
הדרך לעשות זאת היא לא מסובכת.
 
(בדוגמא כאן אני יוצא מתוך הנחה שאתם מכירים כיצד שולחים מיילים מקוד)
 
 
 
ראשית צריך לקבל את קוד ה - html הסופי, ואת זה ניתן לקבל במתודה render
 

StringBuilder sb = new StringBuilder();

StringWriter stringWriter = new StringWriter(sb);

HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);

base.Render(htmlTextWriter);

string htmlText = sb.ToString();

writer.Write(htmlText);

 
כעת צריך להמיר את הטקסט למערך של בתים (כך שיהיה ניתן לצרף אותו למייל)
 

byte[] htmlData = Encoding.Default.GetBytes(htmlText);

 
ועכשיו אפשר לצרף אותו
 

Attachment attachment = new Attachment(new MemoryStream(htmlData), "fileName.html");

// attach attachment to mail, send mail using smtpClient

 
פורסם: Jun 09 2011, 09:35 PM by Shlomo | with 3 comment(s)
תגים:, , ,

תוכן התגובה

סשה גולדשטיין כתב/ה:

נתת חתיכת קוד מאוד קטנה, ואני לא בטוח שברור לכולם מי זה base בקריאה ל- base.Render וכו'.

# June 10, 2011 1:56 PM

משה כתב/ה:

מעניין הרעיון.

אני הייתי מבצע את זה אולי עם filter, שגם מאפשר לעשות עוד מניפולציות במידת הצורך, אבל הקוד שלך בהחלט יותר אלגנטי.

אהבתי

# June 11, 2011 11:20 PM

שחר אלדד כתב/ה:

writer.Write(htmlText);

מהיכן הגיע ה- writer?

# June 12, 2011 11:01 AM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 3 and 2 and type the answer here:


Enter the numbers above: