کدنویس۲۱

کدنویس۲۱

با کد نویس 21 کد نویس باشید.
کدنویس۲۱

کدنویس۲۱

با کد نویس 21 کد نویس باشید.

ارسال ایمیل با سی شارپ

سلام دوستان! در این پست می خواهیم با کمک سرویس گوگل داخل سی شارپ ایمیل ارسال کنیم! امیدوارم لذت ببرید!

 

 

خب ابتدا یک پروژه ویندوز فرم داخل ویژوال استدیو درست می کنیم و مانند تصویر زیر سراغ اجزای فرم ارسال ایمیل می رویم.(نام هر کدام از تکست باکس ها داخل خودش نوشته شده و نام دکمه ارسال هم btnSend می باشد)

پس از ایجاد یک ظاهر مناسب برای اپلیکیشن نوبت به کد های اصلی که برای ارسال ایمیل مورد استفاده قرار می گیرند می رسد؛ پس با دابل کلیک بر روی دکمه btnSend وارد رویداد کلیک آن می شویم.

برای ارسال ایمیل در سی شارپ ما نیاز به استفاده از کتابخانه System.Net.Mail و System.Net داریم پس دو خط زیر را به بالای کد هایمان اضافه می کنیم.

1
2
using System.Net.Mail;
using System.Net;

حال وارد بخش کد های رویداد کلیک دکمه می شویم. می خواهیم برای ارسال ایمیل از سرویس smtp گوگل استفاده کنیم. هاست این سرویس "smtp.gmail.com" و پورت آن 465 یا 578 است پس به این شکل یک شئ از نوع smtpClient تعریف می کنیم.

1
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);

سپس از آنجا که استفاده از سرویس گوگل نیازمند اتصالی امن است باید دو خط زیر را به کد اضافه کنیم تا SLL فعال شده و فرستنده به درستی با کمک جیمیل و رمز آن شناسایی شود.

1
2
client.EnableSsl = true;
client.Credentials = new NetworkCredential(txtFrom.Text, txtPassword.Text);

توجه: لازم است به این نکته اضافه کنم که به دلیل سختگیری های گوگل در لاگین شدن به جیمیل جیمیل فرستنده باید در تنظیماتش Less secure app access فعال باشد تا برنامه بتواند به آن دسترسی پیدا کند.

پس از سه خط کدی که در بالا نوشتیم اکنون باید با کمک کد های زیر ایمیل را ارسال کنیم.

1
2
3
4
5
6
7
8
9
10
MailAddress from = new MailAddress(txtFrom.Text);
MailAddress to = new MailAddress(txtTo.Text);
MailMessage message = new MailMessage(from, to);
message.Body = richtxtMessage.Text;
message.BodyEncoding = Encoding.UTF8;
message.Subject = txtSubject.Text;
message.SubjectEncoding = Encoding.UTF8;
client.Send(message);
message.Dispose();
MessageBox.Show("E-Mail Sent!");

در کد بالا ابتدا دو MailAddress تعریف درست می کنیم که قرار است در شئ MailMessage ما نقش فرستنده و دریافت کننده را به عهده بگیرند. پس از تعریف message در خط سوم، در خط چهارم به بدنه آن پیام خود که همان متن داخل richtxtMessage است را می دهیم و سپس در خط پنجم نوع انکدینگ بدنه پیام را مشخص می کنیم که پیشنهاد من UTF-8 است.

پس از این ها هم که در خط 6 و 7 موضوع و نوع انکدینگ آن را مشخص می کنیم و در آخر پس از فرستادن پیام در خط 8، در خط 9 شئ message را که ساخته بودیم از بین می بریم و با کمک MessageBox پیامی به کاربر مبنی بر ارسال موفقیت آمیز ایمیل نشان می دهیم.

خب کد زیر هم کد پیوسته برای رویداد کلیک دکمه ارسال است که می توانید آن را کپی و استفاده کنید:(

1
2
3
4
5
6
7
8
9
10
try
{
    SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
    client.EnableSsl = true;
    client.Credentials = new NetworkCredential(txtFrom.Text, txtPassword.Text);

    MailAddress from = new MailAddress(txtFrom.Text);
    MailAddress to = new MailAddress(txtTo.Text);
    MailMessage message = new MailMessage(from, to);
    message.Body = richtxtMessage.Text;
    message.BodyEncoding = Encoding.UTF8;
    message.Subject = txtSubject.Text;
    message.SubjectEncoding = Encoding.UTF8;
    client.Send(message);
    message.Dispose();
    MessageBox.Show("Message Sent!");
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

امیدوارم از این پست استفاده و لذت کافی برده باشید

تا پستی دیگر خدانگهدار

نظرات 1 + ارسال نظر
علی پنج‌شنبه 22 آبان 1399 ساعت 20:17

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد