ارسال ایمیل همراه با فایل ضمیمه با Asp.Net
ارسال ایمیل همراه با فایل ضمیمه با Asp.Net
برای ارسال ایمیل در ASP.NET ما اول از همه باید فضای های نام مورد نظر رو برای استفاده از کلاس های مربوطه فراخوانی کنیم
System.Net.Mail
این فضای نام تمام کلاس های لازم برای ارسال ایمیل رو در اختیار ما قرار میده،پس همون بالای صفحه جدید که ایجد می کنید این فضای نام رو با دستور زیر اضافه کنید
using System.Net.Mail;
خوب برای مرحله بعد لازمه که از کلاس MailMessage که کلاس اصلی کار ما هست یه نمونه بسازیم و خاصیت های لازم رو تنظیم کنیم.
MailMessage mail = new MailMessage();
خوب حالا توی اون دکمه ای که ایمیل رو برای ما ارسال میکنه این کد ها رو قرار میدیم.
mail.To.Add(txtto.Text.Trim()); mail.From = new MailAddress(txtfrom.Text.Trim()); mail.Subject = txtsubject.Text.Trim(); mail.Body = txtbody.Text.Trim(); mail.IsBodyHtml = true;
من یه سری تکست باکس روی فرم قرار دادم واز اونا برای دریافت مشخصات ایمیل ارسالی استفاده کردم،توی خط اول خاصیت To رو مقدار دهی کردیم که قراره ایمیل به چه کسی ارسال بشه (من مقدار تکست باکسی با نام txtto رو براش تنظیم کردم)،توی خط بعدی هم خاصیت From که مشخص میکنه ایمیل از طرف چه کسی ارسال میشه رو مشخص کردیم،توی خط بعدی موضوع ایمیل و خط بعدش هم متن و محتوای ایمیل رو با استفاده از همون کنترل های خود ASP دریافت کردیم.برای ارسال ایمیل هایی با نوع محتوای HTML حتما باید اون گزینه IsBodyHtml رو برابر true قرار بدید.
اضافه کردن فایل ضمیمه
خوب برای اضافه کردن فایل ضمیمه، اول از همه یک کنترل FileUpload به صفحه اضافه میکنیم (من اینجا اسمشو گذاشتم uploader) و این کد رو براش می نویسیم.
if (uploader.HasFile) { string filename = uploader.PostedFile.FileName; string filepath=Server.MapPath("uploads//"+filename); uploader.SaveAs(filepath); Attachment attach = new Attachment(filepath); attach.TransferEncoding = System.Net.Mime.TransferEncoding.Base64; mail.Attachments.Add(attach); }
با یه شرط چک می کنیم ببینیم فایلی ارسال شده یا نه،اگه جواب مثبت بود،میریم سراغ کد بعدی،خوب اسم فایل ارسالی رو دریافت کردیم،با Server.MapPath مسیر فیزیکی ریشه سایت رو مشخص کردیم و آدرس رو تعیین کردیم،حالا فایل رو توی همون ادرس ذخیره میکنیم.
با استفاده از کلاس Attachment می تونیم به ایمیل فایل ضمیمه کنیم،خوب از این کلاس یه نمونه می سازیم و آدرسی رو که ساختیم به عنوان پارامتر براش میفرستیم،برای انتقال فایل لازمه محتوای فایل اینکد بشه بنابر این خاصیت transferEncoding شی attach رو با مقدار مناسبش مقدار دهی کردیم(باید Base64 باشه که از همون کلاس و فضای نام Net و کلاس Mime قابل دسترسیه) خوب بعدشم با استفاده از متد Add فایل attach رو به شی email خودمون اضافه میکنیم.(یادتون باشه اگه این ارسال ایمیل در دسترس کاربران قرار داره حتما فایل رو اعتبار سنجی کنید)
برای ارسال ایمیل توی سرویس smtp می تونیم از کلاس SmtpClient دات نت استفاده کنیم که کار باهاش خیلی راحته،خوب پس یه نمونه ازش میسازیم.
SmtpClient client = new SmtpClient();
خوب حالا خاصیت های این شی رو تنظیم و در نهایت ایمیل رو ارسال میکنیم.
client.Host = "mail.yourdomain.com"; client.Credentials = new System.Net.NetworkCredential ("email username=info@yourdomain.com", "email passowrd"); client.Send(mail);
اول از همه هاست رو تنظیم کردیم و در خط بعدی هم نام کاربری و کلمه عبور سرویس ایمیل رو تنظیم کردیم و در نهایت هم ایمیل رو ارسال کردیم،من توی کد ها یه label هم قرار دادم که پیغام های ارسال موفق و خطاها رو چاپ میکنه که این جا توی کد اموزش قرارش ندادم.(هاست، نام کاربری و کلمه عبور رو میتونید از پشتیبانی یا بخش تنظیمات هاست خودتون دریافت کنید)
نظر / سوال