إرسال الرسائل القصيرة (SMS) باستخدام C# (.NET): نظرة عامة على المكتبات وAPI
في التطوير الحديث باستخدام C# (.NET)، غالباً ما تنشأ الحاجة إلى دمج إشعارات الرسائل القصيرة (SMS): تأكيد التسجيل، المصادقة الثنائية، إشعارات حالة الطلب، أو ببساطة الإرسال الجماعي. في هذه المقالة، سنستعرض ثلاث طرق شائعة لإرسال الرسائل القصيرة من تطبيقات C#: استخدام الخدمات السحابية Twilio وVonage (المعروفة سابقاً باسم Nexmo) والخدمة الروسية SMSC.ru. جميع أمثلة الكود مكتوبة لـ .NET 6/8 وتستخدم الأساليب غير المتزامنة الحديثة.
1. إرسال الرسائل القصيرة عبر Twilio (موفر عالمي)
Twilio هي واحدة من أشهر الخدمات لإرسال الرسائل القصيرة والرسائل الصوتية وغيرها من وسائل الاتصال. لديها وثائق ممتازة وحزمة NuGet رسمية.
تثبيت المكتبة
أضف الحزمة عبر NuGet Package Manager أو نفذ الأمر التالي:
dotnet add package Twilioمثال لإرسال رسالة قصيرة باستخدام C#
using Twilio;using Twilio.Rest.Api.V2010.Account;using Twilio.Types;
public class SmsService{ // قم بتحديد Account SID و Auth Token من لوحة تحكم Twilio private readonly string _accountSid = "YOUR_ACCOUNT_SID"; private readonly string _authToken = "YOUR_AUTH_TOKEN"; private readonly string _fromPhone = "+1234567890"; // الرقم الذي تم شراؤه من Twilio
public async Task<bool> SendSmsAsync(string toPhone, string message) { TwilioClient.Init(_accountSid, _authToken);
try { var msg = await MessageResource.CreateAsync( body: message, from: new PhoneNumber(_fromPhone), to: new PhoneNumber(toPhone) ); Console.WriteLine($"تم إرسال الرسالة القصيرة! المعرف (SID): {msg.Sid}"); return true; } catch (Exception ex) { Console.WriteLine($"خطأ: {ex.Message}"); return false; } }}هام: يجب تأكيد رقم المرسل في حساب Twilio. بالنسبة للحسابات التجريبية، يتم إرسال الرسائل القصيرة فقط إلى الأرقام الموثقة.
2. إرسال الرسائل القصيرة عبر Vonage (المعروفة سابقاً باسم Nexmo)
Vonage هو موفر سحابي قوي آخر. واجهة API الخاصة به بسيطة، ويمكن تثبيت الحزمة بسهولة عبر NuGet.
تثبيت المكتبة
dotnet add package Vonageمثال لإرسال رسالة قصيرة
using Vonage;using Vonage.Request;using Vonage.Messaging;
public class VonageSmsService{ private readonly string _apiKey = "YOUR_API_KEY"; private readonly string _apiSecret = "YOUR_API_SECRET"; private readonly string _from = "YourApp"; // اسم المرسل
public async Task<bool> SendSmsAsync(string toPhone, string message) { var credentials = Credentials.FromApiKeyAndSecret(_apiKey, _apiSecret); var client = new VonageClient(credentials);
var request = new SendSmsRequest { To = toPhone, From = _from, Text = message };
var response = await client.SmsClient.SendAnSmsAsync(request);
if (response.Messages[0].Status == "0") { Console.WriteLine($"تم إرسال الرسالة القصيرة! المعرف: {response.Messages[0].MessageId}"); return true; } else { Console.WriteLine($"خطأ: {response.Messages[0].ErrorText}"); return false; } }}ملاحظة: قد يتطلب الإرسال إلى الأرقام الروسية إعداداً إضافياً لاسم المرسل (Alpha Name).
3. إرسال الرسائل القصيرة عبر SMSC.ru (خدمة روسية)
إذا كان جمهورك يتركز بشكل أساسي في روسيا ورابطة الدول المستقلة، فقد يكون SMSC.ru خياراً أكثر ملاءمة وأقل تكلفة. لا يلزم وجود مكتبة - يكفي طلب HTTP.