إرسال البريد الإلكتروني بلغة Swift: المكتبات والأمثلة لنظامي iOS/macOS

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

إرسال البريد الإلكتروني بلغة Swift (iOS/macOS): المكتبات والأمثلة العملية



يُعد إرسال رسائل البريد الإلكتروني إحدى الوظائف الأساسية للعديد من التطبيقات: بدءًا من تسجيل المستخدمين وإعادة تعيين كلمات المرور، وصولاً إلى إرسال الإشعارات والنشرات التسويقية. في نظام Swift البيئي (iOS/macOS)، توجد عدة طرق لتنفيذ هذه المهمة. في هذه المقالة، سنستعرض المكتبات الرئيسية وإمكانياتها، ونقدم أمثلة جاهزة للكود للتكامل.



الطرق الرئيسية لإرسال البريد الإلكتروني بلغة Swift



توجد ثلاث طرق رئيسية لإرسال الرسائل من التطبيقات بلغة Swift:

  • استخدام MFMailComposeViewController — واجهة نظام مدمجة لإرسال الرسائل (لنظام iOS فقط). تتيح للمستخدم إرسال بريد إلكتروني عبر عميل البريد المثبت على الجهاز، ولكنها غير مناسبة للإرسال التلقائي (من الخادم).
  • الاتصال المباشر عبر SMTP — مكتبات تنفذ بروتوكول SMTP من جانب العميل (مثل SwiftSMTP). مناسبة لإرسال الرسائل مباشرة من الجهاز دون خادم وسيط.
  • استخدام API لخدمات الطرف الثالث — حلول سحابية (Mailgun, SendGrid, Amazon SES) توفر REST API. هذه هي الطريقة الأكثر موثوقية وقابلية للتوسع لتطبيقات الإنتاج.


مكتبة SwiftSMTP للاتصال المباشر بـ SMTP



SwiftSMTP — مكتبة مفتوحة المصدر شهيرة تنفذ عميل SMTP بلغة Swift. تدعم:

  • إرسال رسائل نصية وHTML
  • المرفقات (صور، PDF، أرشيفات)
  • دعم TLS/SSL
  • المصادقة باستخدام اسم المستخدم/كلمة المرور


مثال لإرسال رسالة بسيطة عبر Gmail SMTP:



import SwiftSMTP

let smtp = SMTP( host: "smtp.gmail.com", // خادم SMTP port: 587, // منفذ TLS username: "you@gmail.com", password: "your-app-password")

let mail = Mail( from: Mail.User(name: "المرسل", email: "you@gmail.com"), to: [Mail.User(name: "المستلم", email: "recipient@example.com")], subject: "مرحباً من Swift!", text: "هذه رسالة اختبارية تم إرسالها باستخدام SwiftSMTP.")

smtp.send(mail) { error in if let error = error { print("خطأ في الإرسال: \\(error)") } else { print("تم إرسال الرسالة بنجاح!") }}


للعمل مع Gmail، ستحتاج إلى كلمة مرور التطبيق (App Password)، لأن كلمة المرور العادية غير صالحة عند تفعيل المصادقة الثنائية.



إرسال البريد الإلكتروني عبر Mailgun (API)



Mailgun — واحدة من أشهر الخدمات لإرسال رسائل المعاملات. توفر REST API بسيط وSDK للغة Swift. المزايا الرئيسية:

  • معدل تسليم مرتفع (بفضل سمعة عناوين IP)
  • تتبع الفتح والنقرات
  • دعم القوالب


مثال لإرسال رسالة عبر Mailgun API باستخدام URLSession:



import Foundation

func sendEmailViaMailgun(to recipient: String, subject: String, body: String) { let apiKey = "YOUR_MAILGUN_API_KEY" let domain = "YOUR_DOMAIN.mailgun.org" let urlString = "https://api.mailgun.net/v3/\\(domain)/messages" guard let url = URL(string: urlString) else { return } var request = URLRequest(url: url) request.httpMethod = "POST" let credentials = "api:\\(apiKey)" let authData = credentials.data(using: .utf8)!.base64EncodedString() request.setValue("Basic \\(authData)", forHTTPHeaderField: "Authorization") request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") let parameters = [ "from": "My App <noreply@\\(domain)>", "to": recipient, "subject": subject, "text": body ] let bodyString = parameters

توصيات