برای مشاهده مفیدترین ارسال در این موضوع اینجا کلیک کنید

نمایش نتایج: از شماره 1 تا 1 از مجموع 1
  1. #1
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    1 امتياز مثبت از 1 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر

    چگونگی ارسال ایمیل در سی شارپ (c#)

    بسم الله الرحمن الرحیم
    سلام .
    چند باری ازم سوال شد که نحوه ارسال ایمیل در ASP.net و سی شارپ به چه صورتیه .من هم چندتا رفرنس دادم منتها دیدم بچه ها موفق نبودن و نتونستن با موفقیت کدی بنویسن یا پیدا کنن که براحتی ایمیلی رو ارسال کنه .
    این شد که تصمیم گرفتم کد مربوط به ارسال ایمیل رو هم در سی شارپ و هم در ASP.net بنویسم .
    خب کد مربوطه برای ارسال ایمیل بصورت زیر هست :


    private void button1_Click(object sender, EventArgs e)
    {
    MailMessage message = new MailMessage();
    SmtpClient smtpClient = new SmtpClient();
    try
    {
    MailAddress fromAddress = new MailAddress(txtFromEmail.Text);
    message.From = fromAddress;
    message.To.Add(txtToEmail.Text);

    message.Subject = txtSubject.Text;
    message.IsBodyHtml = true;
    message.Body = txtMessage.Text;



    smtpClient.Host = "smtp.gmail.com";
    smtpClient.Port = 587;
    smtpClient.EnableSsl = true; )
    smtpClient.UseDefaultCredentials = true;
    smtpClient.Credentials = new System.Net.NetworkCredential(txtFromEmail.Text, txtEmailPass.Text);

    smtpClient.Send(message);
    MessageBox.Show("ارسال شد.");
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }


    خب حالا ببینیم اینها به چه معناست .
    ما بطور کلی برای ارسال ایمیل به دوتا کلاس بیشتر نیاز نداریم کلاس
    MailMessage و SmtpClient
    شما پیام و عنوان و سایر ویژگی های مربوط به پیامتون رو در قالب یک MailMessage پیاده میکنید و بعد از طریق SmtpClient اون رو ارسال میکنید .

    Info
    نکته مهم : کلاس MailMessage رو در دوتا namespace وجود داره . شما حتما از System.Net.Mail; استفاده کنید . چون نیم اسپیس Web.Mail اصطلاحا Deprecated یا از دور خارج شده است.

    Info


    پس حتما دقت کنید
    System.Net.Mail; رو using کرده باشید .

    مشکلی که بیشتر افراد دارن بحث سرور ایمیل هست . که بعنوان یک بخش اصلی حتما باید در کد
    قید بشه.
    اکثر ما چون در روی سیستممون سرور ایمیل نداریم با بیشتر کدهایی که بعنوان مثال در اینترنت اومده برای ارسال ایمیل در سی شارپ و ASP.net به مشکل بر میخوریم .
    برای حل این مشکل هم ما دو راه داریم

    1. سرور ایمیلی رو روی سیستممون نصب کنیم و براحتی موقعی که از ما اطلاعات این سرور رو میخواد اون اطلاعات رو بهش میدیم و تمام . (معمولا اسم سرور localhost و پورت 25 ( پورت پیشفرض SMTP) قرار میدیم-مگه اینکه موقع نصب اسم سرور و شماره متفاوتی رو تنظیم کرده باشیم)
    2. از یه سرور رایگان مثل سرور ارسال ایمیل گوگل یا یاهو استفاده کنیم .

    خب ما برای ارسال ایمیل از بخش دوم استفاده میکنیم که نیازی به نصب چیزی نداره .
    برای بدست اوردن سرور گوگل یا یاهو ( فرقی نمیکنه) یه سرچ ساده همه اطلاعاتی رو که میخوایم رو بما میده . مثلا :

    Info
    اطلاعات سرور ایمیل گوگل:

    نام سرور ایمیل : smtp.gmail.com
    پورت : 456, 587
    ssl : فعال


    Info
    اطلاعات سرور یاهو :


    نام سرور ایمیل : smtp.mail.yahoo.com
    پورت : 456, 587
    ssl : فعال


    خب براحتی مقادیر مورد نظرمون رو مقدار دهی میکنیم که بصورت زیر میشه :


    SmtpClient smtpClient = new SmtpClient();
    smtpClient.Host = "smtp.gmail.com";
    smtpClient.Port = 587;
    smtpClient.EnableSsl = true;




    اگه ما سرور ایمیل رو سیستم خودمون فعال بود که راحت میتونستیم بنویسیم : (اگه وب سایت داریم و سایتمون رو آپلود کردیم تو 99 درصد اوقات تنظیم زیر درست هست اگر ارور داد به مدیر سرورتون اطلاع بدید و بگید اطلاعات میل سرور چی هست و اون اطلاعات رو در زیر وارد کنید )


    SmtpClient smtpClient = new SmtpClient("localhost",25);


    Info نکته ای که اینجا باید بهش اشاره کنم اینه موقع استفاده از سرور ایمیل هم گوگل هم یاهو از پورت 587 استفاده کنید.
    نکته بعدی اینه که یاهو ارتباط امن رو پشتیبانی نمیکنه در این حالت پس EnableSsl باید برابر false باشه.



    خب حالا ما برای اینکه بتونیم از این ایمیل سرور ها استفاده کنیم لازمه یه ایمیل داشته باشیم . اگه از گوگل بخواییم استفاده کنیم گوگل از ما جی میل میخواد و اگه از یاهو بخواییم استفاده کنیم سرورش از ما اطلاعات یه ایمیل یاهو رو میخواد . برای همین ما از بخش زیر برای ارسال این اطلاعات به سرور ایمیل مورد نظرمون استفاده میکنیم:
      smtpClient.UseDefaultCredentials = true;
    smtpClient.Credentials = new System.Net.NetworkCredential(txtFromEmail.Text, txtEmailPass.Text);


    بعد از انجام این کار هم تنها کاری که میمونه ارسال ایمیله که با دستور زیر انجامش میدیم .

                    smtpClient.Send(message);


    برای انتهای کار هم یه توضیح هم در مورد IsBodyHtml بدم که تو بخش MailMessage استفاده اش کردیم .
    اگر میخوایید پیامی که ارسال میکنید بصورت HTML باشه - یعنی از تگهای HTML توش استفاده شده باشه این بخش رو TRUE میکنید . امروزه تقریبا همه میل سرورها این قابلیت رو دارن و میتونید براحتی این مقدار رو برابر TRUE قرار بدید و ازش استفاده کنید.

    پروژه ای که ضمیمه کردم هم باهاش میتونید از طریق جی میل ایمیل ارسال کنید و هم از طریق یاهو . تغییرات مورد نظر برای کار کردن با این دو ایمیل سرور هم توی کد مشخص شده و براحتی میتونید ازش در پروژهاتون استفاده کنید.


    موضوعات مشابه:
    فایل های پیوست شده
    • نوع فایل: rar sendingmail.rar (24.8 کیلو بایت,  این فایل 38 بار دانلود شده است)
    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




 

 

کاربران برچسب خورده در این موضوع

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  


Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 02:50 PM بر حسب GMT +4 می باشد.