DCSIMG
Net.Mail: מעקף: קבצים מצורפים עם שם עברי - מאחורי המסך

מאחורי המסך

משה למפרט, על תכנות מתקדם וביצועים ב-Web.

על הבלוג

עוד חדשות

אתרים שיש לי בהם יד ורגל

Net.Mail: מעקף: קבצים מצורפים עם שם עברי

חיפשתי זמן רב את האפשרות הזו, בסוף לא מצאתי, ולאחר קצת מחשבה מצאתי את הפיתרון הבא:

 

Dim o As New Attachment(oFS, oReader("f_name").ToString)
o.ContentDisposition.FileName = "=?UTF-8?B?" & _
	System.Convert.ToBase64String(UTF8.GetBytes("שם הקובץ.htm")) & _
	 "?="

אז איך זה עובד?
בפרוטוקול MIME (שבו נכתבת הודעת דואר, בסופו של דבר) ניתן לשלוח רק ASCII. עם השנים הופצו כל מיני קידודים שמאפשרים לכתוב גם מה שלא ASCII. אחד מהקידודים האלה הוא BASE64. האחר והנפוץ הוא Qouted Printable שמשמש בגלגול קצת שונה בשביל URLים. כן, ההוא עם האחוזים למעלה (אם כי בשימוש הסימן "=" - שווה).

במקום שם הקובץ, אנחנו מקודדים את העסק ב-Base64 וכך הוא עובר באופן תקין את האימות של המחלקה System.Net.Mail.Attachment, ובעיקר תקני ויעבוד בכל לקוח דואר שקיים.

 

אז למי שנתקע ותהה - הנה הפיתרון (הצולע). נבדק ועובד תקין על System.Net.Mail.Attachment שמסופק עם NET Framework 2. לא יודע מה לגבי 3 ו-3.5.

פורסם: Feb 04 2008, 06:35 PM by Moshe L | with 1 comment(s) |
תגים:, , , ,

תוכן התגובה

akalter כתב/ה:

יצא לכם לראות אנשים ששולחים קבצים בעברית?

לא מבין למה לעשות דבר כזה

מסכנים אלו שמקבלים את הקבצים

# February 4, 2008 11:25 PM