مكتبة gomail لإرسال البريد الإلكتروني بلغة Go
gomail هي مكتبة قوية وسهلة الاستخدام بلغة Go (Golang) لإرسال البريد الإلكتروني. تدعم رسائل HTML، المرفقات، عدة مستلمين، مصادقة SMTP، وتشفير TLS/SSL. المكتبة مثالية للمطورين الذين يحتاجون إلى دمج إشعارات البريد الإلكتروني، تأكيدات التسجيل، أو النشرات التسويقية في تطبيقات Go الخاصة بهم.
لماذا تحتاج gomail؟
المكتبة القياسية في Go (net/smtp) توفر إمكانيات أساسية لإرسال الرسائل، لكنها غالبًا ما تفتقر إلى الوظائف اللازمة للمهام الواقعية: من الصعب العمل مع قوالب HTML، المرفقات، عدة عناوين، ومتطلبات الأمان الحديثة (STARTTLS، OAuth2). تحل gomail هذه المشكلات من خلال تقديم واجهة برمجة تطبيقات نظيفة وتكوين مرن.
التثبيت
لتثبيت gomail، نفذ الأمر التالي:
go get github.com/go-mail/mail/v2الوظائف الرئيسية
- الإرسال عبر SMTP مع دعم TLS/SSL
- دعم رسائل HTML والنصية
- مرفقات الملفات والصور المضمنة
- مستلمون متعددون (To, Cc, Bcc)
- رؤوس وتشفيرات قابلة للتخصيص
- دعم OAuth2 (مثل Gmail API)
مثال كود بلغة Go
فيما يلي مثال بسيط لإرسال رسالة HTML عبر خادم SMTP لجيميل:
package main
import (\t"crypto/tls"\t"fmt"\t"log"
\tgomail "github.com/go-mail/mail/v2")
func main() {\td := gomail.NewDialer("smtp.gmail.com", 587, "your_email@gmail.com", "your_app_password")\td.TLSConfig = &tls.Config{InsecureSkipVerify: false}
\tm := gomail.NewMessage()\tm.SetHeader("From", "your_email@gmail.com")\tm.SetHeader("To", "recipient@example.com")\tm.SetHeader("Subject", "مرحبًا من Go!")\tm.SetBody("text/html", "<h1>أهلاً بك!</h1><p>هذه رسالة اختبارية.</p>")\tm.Attach("/path/to/file.pdf")
\tif err := d.DialAndSend(m); err != nil {\t\tlog.Fatal(err)\t}\tfmt.Println("تم إرسال الرسالة بنجاح!")}متى تستخدم gomail
- عند الحاجة لإرسال رسائل معاملاتية (تأكيدات، إعادة تعيين كلمة المرور)
- لإنشاء خدمة نشرات بريدية بلغة Go
- عند الحاجة إلى مرفقات أو تنسيق HTML معقد
- في التطبيقات المؤسسية التي تتطلب التشفير
gomail هي خيار موثوق لمعظم مهام إرسال البريد الإلكتروني. بفضل الدعم النشط من المجتمع والتحديثات المنتظمة، تظل المكتبة مناسبة حتى للمشاريع عالية التحميل.