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

19 خرداد 1400, خواندن در 2 دقیقه

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

خب ابتدا یک پروژه ویندوز فرم داخل ویژوال استدیو درست می کنیم و مانند تصویر زیر سراغ اجزای فرم ارسال ایمیل می رویم.(نام هر کدام از تکست باکس ها داخل خودش نوشته شده و نام دکمه ارسال هم btnSend می باشد)
توضیح تصویر رو وارد کنید
پس از ایجاد یک ظاهر مناسب برای اپلیکیشن نوبت به کد های اصلی که برای ارسال ایمیل مورد استفاده قرار می گیرند می رسد؛ پس با دابل کلیک بر روی دکمه btnSend وارد رویداد کلیک آن می شویم.

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

using System.Net.Mail;
using System.Net;

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

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

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

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

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 پیامی به کاربر مبنی بر ارسال موفقیت آمیز ایمیل نشان می دهیم.

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

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);
}

امیدوارم این مطلب برایتان مفید بوده باشد

چه امتیازی به این مقاله می دید؟
خیلی بد
بد
متوسط
خوب
عالی

دیدگاه‌ها و پرسش‌ها

برای ارسال دیدگاه لازم است، ابتدا وارد سایت شوید.

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید