ارسال ایمیل همراه با فایل ضمیمه با Asp.Net
0 0

ارسال ایمیل همراه با فایل ضمیمه با 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 هم قرار دادم که پیغام های ارسال موفق و خطاها رو چاپ میکنه که این جا توی کد اموزش قرارش ندادم.(هاست، نام کاربری و کلمه عبور رو میتونید از پشتیبانی یا بخش تنظیمات هاست خودتون دریافت کنید)

دانلود

نویسنده حسین فتحی
گروه مطلب Asp.Net
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۴ دی ۱۳۹۲
منبع ایران گنج
تعداد نظرات ۳
قیمت کاربران عضو سایت
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha
نظرات کاربران

  • سلام

    client.Host = "mail.yourdomain.com"; اینو نمیفهم میشه بیشتر توضیح بدی

    پاسخ
    • مدیر

      با سلام و درود

      در اینجا به جای yourdomain.com نام دامنه سایت خودتون رو وارد کنید.

      پاسخ
  • عبدالله

    بسیار بسیار ممنون و متشکر

    پاسخ