PDA

View Full Version : سوال: پردازش ایمیل ذخیره شده در دیتابیس با استفاده از OpenPOP



Kia_MLS
پنج شنبه 25 فروردین 1390, 13:10 عصر
با عرض سلام خدمت همه دوستان
من با استفاده از کتابخانه OpenPOP یک برنامه نوشتم که یک قسمت از برنامم ذخیره ایمیل ها در دیتابیس هست.
هنگام ذخیره سازی ایمیل در دیتابیس مقدار RawMessage که در واقع شامل کل ایمیل (هدرها، فرستنده، فایلهای اتچ شده و ...) است را ذخیره میکنم.
در جای دیگری از برنامه باید ایمیل ذخیره شده در دیتابیس را خوانده و فایلهای اتچ شده از اون رو به کاربر نشون بدم.
سوال من اینه: چطور میتونم از طریق محتویات RawMessage به فایلهای اتچ شده برسم؟

Kia_MLS
جمعه 26 فروردین 1390, 16:57 عصر
مشکل من حل شد
کدشو اینجا میزارم برای استفاده دوستانی که شاید با این مشکل برخورد کنن



string StringRawContent = System.Text.ASCIIEncoding.ASCII.GetString(InEmailR ecordFromDB.RawMessage.ToArray());
OpenPOP.MIME.Message raw = new OpenPOP.MIME.Message(true, StringRawContent, false);



در کدهای بالا، با استفاده از محتویات ایمیل ذخیره شده در دیتابیس یک شی از روی کلاس Message ساخته شده که با استفاده از اون میتونیم به کلیه اطلاعات یک ایمیل (شامل فرستنده، موضوع، متن، فایلهای اتچ شده به ایمیل و ...) دستیابی داشته باشم.

به عنوان مثال من برای دستیابی به اولین فایل اتچ شده از کدهای زیر استفاده کردم:


if (raw.Attachments.Count > 0)
{
var FileContent = (from a in raw.Attachments.First().RawContent
select (byte)a).ToArray();
System.IO.File.WriteAllText("File path to save attachment", raw.Attachments.First().RawContent);
}


موفق باشید