مستندات رسمی سرویس

مستندات Snad Mail API

راهنمای اتصال به API ارسال ایمیل با توکن اختصاصی و اعتبار حساب.

وب‌سایت اصلی: https://mr-amir.developer-noovin.ir

آدرس API

آدرس پایه: https://mr-amir.developer-noovin.ir/snad/email.php?api=send · متد: POST (پیشنهادی) یا GET

احراز هویت (روش اصلی: هدر)

توکن را در یکی از این دو هدر بفرستید:

X-API-Token: YOUR_TOKEN
Authorization: Bearer YOUR_TOKEN

منسوخ (Deprecated): فرستادن توکن در پارامتر token (در آدرس یا بدنه) هنوز کار می‌کند تا برنامه‌های قدیمی از کار نیفتند، ولی توکن را در لاگ سرور، تاریخچه مرورگر و Referer لو می‌دهد. پاسخ این درخواست‌ها هدر Deprecation: true دارد؛ لطفاً به هدر مهاجرت کنید. اگر هم هدر و هم پارامتر فرستاده شود، هدر ملاک است.

پارامترها

to: ایمیل گیرنده · subject: موضوع (حداکثر ۲۰۰ نویسه، بدون خط جدید) · message یا body: متن ساده ایمیل (حداکثر ۲۰۰۰۰ نویسه)

بدنه را می‌توانید به‌صورت JSON (Content-Type: application/json) یا فرم (application/x-www-form-urlencoded) بفرستید.

نمونه cURL (POST + JSON + هدر)
curl -X POST 'https://mr-amir.developer-noovin.ir/snad/email.php?api=send' \
  -H 'X-API-Token: YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"to":"recipient@example.com","subject":"سلام","message":"متن ایمیل"}'
نمونه cURL با Authorization: Bearer
curl -X POST 'https://mr-amir.developer-noovin.ir/snad/email.php?api=send' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -d 'to=recipient@example.com' -d 'subject=Hello' -d 'message=Test'
نمونه PHP
$data = ['to' => 'recipient@example.com', 'subject' => 'سلام', 'message' => 'متن ایمیل'];
$ch = curl_init('https://mr-amir.developer-noovin.ir/snad/email.php?api=send');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => ['Content-Type: application/json', 'X-API-Token: YOUR_TOKEN'],
  CURLOPT_POSTFIELDS => json_encode($data),
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_TIMEOUT => 20,
]);
$res = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if (!$res['ok']) echo "خطا $status: " . $res['error'];
نمونه JavaScript (سمت سرور، Node.js)
const r = await fetch('https://mr-amir.developer-noovin.ir/snad/email.php?api=send', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json', 'X-API-Token': process.env.SNAD_TOKEN },
  body: JSON.stringify({ to: 'recipient@example.com', subject: 'سلام', message: 'متن ایمیل' })
});
console.log(r.status, await r.json());

توکن را هیچ‌وقت در کد سمت مرورگر (فرانت‌اند) قرار ندهید؛ هر کسی می‌تواند آن را ببیند.

نمونه GET (منسوخ، فقط برای سازگاری)
curl -G 'https://mr-amir.developer-noovin.ir/snad/email.php?api=send' -H 'X-API-Token: YOUR_TOKEN' \
  --data-urlencode 'to=recipient@example.com' --data-urlencode 'subject=Hello' --data-urlencode 'message=Test'

روش قدیمی ...&token=YOUR_TOKEN&to=... هنوز پشتیبانی می‌شود ولی منسوخ است.

پاسخ موفق
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 19

{"ok":true,"message":"ایمیل به سرور SMTP تحویل داده شد.","credits_remaining":99}
پاسخ خطا و کدها

همه خطاها JSON با "ok":false و یک کد ثابت در error هستند؛ برنامه را بر اساس error بنویسید، نه متن message.

HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json; charset=utf-8

{"ok":false,"error":"invalid_recipient","message":"آدرس گیرنده معتبر نیست."}
HTTPerrorتوضیح
400invalid_jsonبدنه JSON قابل خواندن نیست.
401missing_tokenتوکن فرستاده نشده است.
401invalid_tokenتوکن اشتباه است یا تعویض شده است.
402insufficient_creditsاعتبار حساب تمام شده است.
405method_not_allowedفقط GET و POST پذیرفته می‌شود.
422invalid_recipient · invalid_subject · invalid_messageپارامتر نامعتبر یا خالی.
429rate_limitedدرخواست بیش از حد؛ به اندازه retry_after ثانیه (هدر Retry-After) صبر کنید.
500storage_errorخطای ذخیره‌سازی سرور.
502smtp_send_failedارسال به SMTP ناموفق بود؛ اعتبار برگردانده شد.
503storage_busyسرور موقتاً مشغول است؛ چند ثانیه بعد دوباره تلاش کنید.
محدودیت نرخ و قوانین استفاده
  • هر توکن حداکثر ۲۰ درخواست در دقیقه می‌تواند بفرستد. هدرهای X-RateLimit-Limit و X-RateLimit-Remaining وضعیت فعلی را نشان می‌دهند.
  • بعد از خطای 429 یا 503 با تأخیر افزایشی (مثلاً ۱، ۲، ۴ ثانیه) دوباره تلاش کنید؛ خطاهای 4xx دیگر را تکرار نکنید.
  • هر ارسال موفق یک اعتبار مصرف می‌کند و در خطای SMTP اعتبار برمی‌گردد.
  • فقط به گیرنده‌هایی ایمیل بفرستید که خودشان اجازه داده‌اند. ارسال هرزنامه، فیشینگ یا تبلیغات ناخواسته ممنوع است و باعث مسدود شدن حساب می‌شود.
  • اگر توکن لو رفت، از پنل کاربری «ساخت توکن جدید» را بزنید؛ توکن قبلی فوراً از کار می‌افتد.
تبلیغات
مشاهده