أمثلة برمجية
استخدم أي عميل HTTP أو مكتبة SMTP. تستدعي هذه الأمثلة REST API مباشرة، ويمكنك استبدالها بمكتبتك المفضلة.
كيف تُجري التكامل
هناك طريقتان للإرسال: REST API عبر HTTPS، أو SMTP القياسي. يناسب API الشيفرة الجديدة ويعطي نتائج منظمة. ويناسب SMTP التطبيقات والأدوات القائمة. كلاهما يصادق بمفتاح API.
Node.js
يستخدم fetch المدمج في إصدارات Node الحديثة.
const res = await fetch("https://api.migosmtp.com/v1/send", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.MIGOSMTP_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ from, to, subject, text }),
});
if (!res.ok) throw new Error(`send failed: ${res.status}`);
const { id } = await res.json();Python
يستخدم مكتبة requests.
import os, requests
r = requests.post(
"https://api.migosmtp.com/v1/send",
headers={"Authorization": f"Bearer {os.environ['MIGOSMTP_KEY']}"},
json={"from": sender, "to": to, "subject": subject, "text": text},
timeout=10,
)
r.raise_for_status()PHP
يستخدم cURL المرفقة مع معظم تثبيتات PHP.
$ch = curl_init("https://api.migosmtp.com/v1/send");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("MIGOSMTP_KEY"), "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode(["from" => $from, "to" => $to, "subject" => $subject, "text" => $text]),
]);
$body = curl_exec($ch);عادات جيدة لأي لغة
حدّد مهلة لكل طلب. أعد المحاولة فقط عند استجابات 429 و5xx، بتراجع أسّي وتشويش عشوائي. لا تعد المحاولة أبدًا عند 4xx عدا 429، لأن الطلب سيفشل بالطريقة نفسها. سجّل معرّف الرسالة الذي يعيده كل إرسال لتتبعه لاحقًا.
مكتبات SMTP
تعمل أي مكتبة SMTP: Nodemailer وPHPMailer وsmtplib في Python وJava Mail ودعم SMTP المدمج في معظم الأطر. راجع دليل تكامل SMTP لإعدادات الاتصال.