پرش ایمیل و اعلان های تحویل

هنگام ارسال ایمیل، می خواهید بدانید که آیا با موفقیت به گیرنده تحویل داده شده است یا خیر. به همان اندازه مهم، توانایی تشخیص و مدیریت برگشت های ایمیل است، که زمانی رخ می دهد که ایمیل ارسال نشود. آنها می توانند به دلایل مختلفی از جمله آدرس ایمیل نامعتبر، صندوق پستی کامل یا مشکلات سرور رخ دهند. شناسایی این پرش ها برای حفظ یک لیست ایمیل تمیز و به روز و اطمینان از اینکه پیام های شما به افراد مناسب می رسد، حیاتی است. در این مقاله، نحوه مدیریت موثر برگشت ایمیل و اعلان‌های تحویل در محیط C#.NET را بررسی خواهیم کرد.

C# .NET API برای رسیدگی به پرش های ایمیل و اعلان های تحویل

برای مدیریت موثر برگشت ایمیل و اعلان‌های تحویل در C#.NET، از کتابخانه Aspose.Email استفاده می‌کنیم که مجموعه‌ای جامع از ابزارها و قابلیت‌ها را برای کارهای مرتبط با ایمیل ارائه می‌دهد. Aspose.Email for .NET. می‌توانید با دریافت DLL آن از طریق دانلود یا نصب آن از NuGet با استفاده از دستور زیر از پتانسیل API استفاده کنید:

PM> Install-Package Aspose.Email

ارسال ایمیل با اعلان های تحویل

قطعه کد زیر نحوه ایجاد یک پیام ایمیل و تنظیم اعلان های تحویل را با استفاده از Aspose.Email نشان می دهد. این کد به شما امکان می دهد یک پیام ایمیل ایجاد کنید، آدرس فرستنده و گیرنده را مشخص کنید و اعلان های تحویل را برای موفقیت و شکست پیکربندی کنید. علاوه بر این، برای ردیابی جامع تر، هدرهای MIME را به پیام اضافه می کند. کد مراحل زیر را انجام می دهد:

  1. ایجاد یک پیام ایمیل جدید: کد با ایجاد یک شیء MailMessage جدید شروع می شود. MailMessage کلاسی است که نشان دهنده پیام eml قابل ارسال است.

  2. تنظیم اعلان‌های تحویل: DeliveryNotificationOptions هم OnSuccess و هم OnFailure تنظیم شده‌اند. این به این معنی است که اگر پیام با موفقیت تحویل داده شود یا تحویل ناموفق باشد، فرستنده مایل است یک گزارش تحویل دریافت کند.

  3. افزودن سرصفحه های MIME برای اعلان های خواندن و دیسپوزیشن: سرصفحه های شیء پیام برای افزودن سرصفحه های “Read-Receipt-To” و “Disposition-Notification-To” با ایمیل فرستنده استفاده می شود. این سرصفحه‌ها به ترتیب پس از دریافت و مدیریت ایمیل توسط گیرنده، اعلان‌های خواندن و حذف را به آدرس ایمیل فرستنده درخواست می‌کنند.

  4. راه اندازی SMTP Client: کلاس SmtpClient برای ارسال پیام های ایمیل استفاده می شود. نمونه ای از این کلاس با اعتبار میزبان و کاربر مشخص شده ایجاد می شود.

  5. Send the Message: در نهایت متد Send شیء SmtpClient با شیء MailMessage به عنوان آرگومان برای ارسال ایمیل فراخوانی می شود.

// پیام را ایجاد کنید
MailMessage msg = new MailMessage();
msg.From = "sender@sender.com";
msg.To = "receiver@receiver.com";
msg.Subject = "the subject of the message";

// اعلان های تحویل را برای پیام های موفقیت آمیز و ناموفق تنظیم کنید و سرصفحه های MIME را اضافه کنید
msg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess | DeliveryNotificationOptions.OnFailure;
msg.Headers.Add("Read-Receipt-To", "sender@sender.com");
msg.Headers.Add("Disposition-Notification-To", "sender@sender.com");

// پیام را ارسال کنید
SmtpClient client = new SmtpClient("host", "username", "password");
client.Send(msg);

رسیدگی به پرش های ایمیل

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

  1. کد با ایجاد نمونه ای از کلاس MailMessage برای بارگیری پیام ایمیل از فایل مشخص شده با استفاده از روش Load آغاز می شود.

  2. سپس با فراخوانی روش CheckBounced بررسی می‌کند که آیا ایمیل بازگردانده شده است. نتیجه این عملیات در یک شی BounceResult ذخیره می شود.

  3. سپس کد اقدام به چاپ fileName در کنسول می‌کند که اطلاعات دقیق پیام را از طریق ویژگی‌های زیر ارائه می‌کند:

MailMessage mail = MailMessage.Load(fileName);
BounceResult result = mail.CheckBounced();
Console.WriteLine(fileName);
Console.WriteLine("IsBounced : " + result.IsBounced);
Console.WriteLine("Action : " + result.Action);
Console.WriteLine("Recipient : " + result.Recipient);
Console.WriteLine();
Console.WriteLine("Reason : " + result.Reason);
Console.WriteLine("Status : " + result.Status);
Console.WriteLine("OriginalMessage ToAddress 1: " + result.OriginalMessage.To[0].Address);
Console.WriteLine();

نتیجه

در این مقاله توجه شما را به اهمیت برگشت ایمیل و اعلان‌های تحویل جلب کردیم. ما همچنین راه‌هایی برای مدیریت آنها با نمونه کد ارائه کردیم. اکنون شما ابزارهای قدرتمندی در اختیار دارید تا امکان ارسال موفقیت آمیز ایمیل ها و مدیریت هر گونه بازگشتی که ممکن است رخ دهد، داشته باشید. با گنجاندن این روش‌ها در پروژه‌های خود، می‌توانید به ارتباطات ایمیلی مؤثر در محیط C#.NET دست یابید و اطمینان حاصل کنید که پیام‌های شما به گیرندگان مورد نظر خود می‌رسند.

برای اطلاعات دقیق تر یا سایر ویژگی های Aspose.Email for .NET می توانید به [اسناد17 ما مراجعه کنید. در صورتی که سوالی دارید یا با هر مشکلی مواجه شدید، از [تالار گفتمان ما] دیدن کنید18.

همچنین ببینید