پیکربندی اعلانها (ایمیل و پیامک)
> version: 1.6 | last_updated: 2026-09-20 | audience: admin
هدف
ارسال خودکار اعلان به مشتریان هنگام رویدادهایی مثل ثبت سفارش، فعالسازی سرویس، فاکتور و ….
اگر روی مشتری در **ویرایش → تماس** گزینهٔ **عدم ارسال ایمیل** یا **عدم ارسال پیامک** فعال باشد، همان کانال برای آن مشتری skip میشود (سیستمی و دستی).
تمپلیت اعلان
- موضوع ایمیل
- **متن ایمیل** با ادیتور **TinyMCE** (فارسی / راستچین) — دکمههای قالببندی، لیست، لینک، جدول؛ دکمه **کد** برای HTML خام
- **متن پیامک** (فقط متن ساده، بدون HTML)
ایمیل بهصورت HTML با `dir="rtl"` ارسال میشود؛ پیامک همیشه متن ساده است.
نمونه جایگزینها:
| باکس | نمونه |
|------|--------|
| مشتری | `{{customer_first_name}}` `{{customer_last_name}}` `{{customer_full_name}}` `{{customer_mobile}}` |
| سرویس | `{{product_name}}` `{{subscription_number}}` `{{username}}` `{{password}}` `{{service_domain}}` `{{service_panel_url}}` `{{service_ip}}` |
| فاکتور | `{{invoice_issue_date}}` `{{invoice_paid_at}}` `{{invoice_subtotal}}` `{{invoice_tax_total}}` `{{invoice_total}}` `{{invoice_status}}` `{{invoice_description}}` |
ایمیل فعالسازی هاست (cPanel / DirectAdmin و …)
بعد از موفق بودن Provision (`subscription.activated`):
تنظیم کانالها
- **ایمیل** — درایور `mail`
- **پیامک** — درایور `kavenegar` (Sandbox)
کاوه نگار (Production)
- `api_key` = کلید API کاوه نگار
- `sender` = شماره فرستنده
مشاهده لاگ
**تنظیمات → لاگ اعلانها**
وضعیتها:
| وضعیت | معنی |
|--------|------|
| `simulated` | شبیهسازی (Sandbox یا MAIL_MAILER=log) |
| `sent` | ارسال واقعی |
| `failed` | خطا |
رویدادها (نمونه)
| کلید | توضیح |
|------|--------|
| `order.placed` | ثبت سفارش |
| `subscription.activated` | فعالسازی سرویس |
| `subscription.suspended` | تعلیق سرویس |
| `subscription.collected` | جمعآوری سرویس |
| `invoice.purchase_issued` | فاکتور خرید |
| `invoice.renewal_issued` | فاکتور تمدید |
| `invoice.paid` | فاکتور پرداختشده |
| `invoice.cancelled` | فاکتور کنسلشده |
| `invoice.payment_warning` | اخطار عدم پرداخت |
| `subscription.info` | اطلاعات سرویس |
| `ticket.created` | تیکت ثبت شد |
| `ticket.replied` | پاسخ پشتیبانی |
| `ticket.status_changed` | ورود تیکت به وضعیت مسیر (فقط اگر روی وضعیت قالب ایمیل/SMS انتخاب شده باشد) |