راهنمای کامل سفارشی‌سازی کاربران در DirectAdmin: محدودیت بکاپ، کنترل ایمیل، جلوگیری از ساخت نام‌های خاص، سفارشی‌سازی تنظیمات ایمیل و مدیریت محدودیت روزانه ارسال ایمیل

این مقاله یک راهنمای جامع برای کنترل و سفارشی‌سازی رفتار کاربران در DirectAdmin است. شامل محدود کردن تعداد بکاپ‌ها، محدودیت حجم ایمیل، جلوگیری از ساخت ایمیل‌های حساس، سفارشی‌سازی تنظیمات IMAP/POP/SMTP، مدیریت محدودیت روزانه ارسال ایمیل بر اساس پکیج، و ساخت سیستم Email-Only برای کاربران.

Level Customization in DirectAdminBackup LimitsTemplate Editing

~3 min read • Updated Mar 1, 2026

1. محدود کردن تعداد بکاپ‌های هر کاربر


برای جلوگیری از ایجاد تعداد زیاد بکاپ توسط کاربران، می‌توانید تعداد بکاپ‌ها را محدود کنید. مثال: حداکثر ۵ بکاپ.


فایل زیر را ایجاد کنید:

/usr/local/directadmin/scripts/custom/user_backup_pre.sh

محتوا:

#!/bin/sh
MAX_BACKUPS=5
U=`echo $file | cut -d/ -f3`
if [ "$U" != "$username" ]; then
   exit 0;
fi
C=`ls /home/$username/backups | wc -l`
if [ "$C" -ge "$MAX_BACKUPS" ]; then
   echo "Too many backups. Delete some from /home/$username/backups before creating another.";
   exit 1;
fi
exit 0;

قابل اجرا:

chmod 755 /usr/local/directadmin/scripts/custom/user_backup_pre.sh

تست دستی:

file=/home/fred/backups/backup.tar.gz username=fred ./user_backup_pre.sh; echo $?;
---

2. محدود کردن حجم ایمیل‌ها (Quota)


برای جلوگیری از تعیین quota بیشتر از ۵۰MB:

فایل:

/usr/local/directadmin/scripts/custom/email_create_pre.sh

محتوا:

#!/bin/sh
if [ "$quota" != "" ]; then
   if [ "$quota" -gt "50" ]; then
       echo "Cannot set quota greater than 50MB";
       exit 1;
   fi
fi
exit 0;

قابل اجرا و لینک به تغییر رمز ایمیل:


cd /usr/local/directadmin/scripts/custom/
chmod 755 email_create_pre.sh
ln -s email_create_pre.sh email_change_pass_pre.sh
---

3. جلوگیری از ساخت ایمیل‌هایی با نام‌های حساس


برای جلوگیری از ساخت ایمیل‌هایی مثل root، webmaster، postmaster:

فایل:

/usr/local/directadmin/scripts/custom/all_pre.sh

محتوا:

#!/bin/sh

blockaccount()
{
   if [ "$user" = "$1" ] || [ "$newuser" = "$1" ]; then
      echo "You cannot create an account named $1";
      exit 1;
   fi
}

if [ "$command" = "/CMD_EMAIL_POP" ]; then
   if [ "$action" = "create" ] || [ "$action" = "modify" ]; then
      blockaccount root;
      blockaccount webmaster;
      blockaccount postmaster;
   fi
fi
exit 0;

قابل اجرا:

chmod 755 /usr/local/directadmin/scripts/custom/all_pre.sh
---

4. سفارشی‌سازی تنظیمات IMAP/POP/SMTP هنگام ساخت ایمیل


برای تغییر اطلاعاتی که پس از ساخت ایمیل نمایش داده می‌شود:


cd /usr/local/directadmin/data/templates/custom
cp ../mail_settings.html .
vi mail_settings.html

مثال کاربردی:

  • جایگزینی mail.|DOMAIN| با server.yourhostname.com

توکن‌های زبان

به‌جای ویرایش مستقیم متن انگلیسی، می‌توانید از توکن‌های |LANG_*| استفاده کنید.

این توکن‌ها در فایل زیر قرار دارند:

/usr/local/directadmin/data/skins/enhanced/lang/en/internal/email.txt
---

5. سفارشی‌سازی محدودیت روزانه ارسال ایمیل بر اساس پکیج


روش جدید (New Method)

پکیج‌ها اکنون دارای گزینه email_daily_limit هستند:

email_daily_limit=-1

مقادیر:

  • -1 → استفاده از مقدار پیش‌فرض سیستم
  • unlimited → بدون محدودیت (توصیه نمی‌شود)

مقدار نهایی در فایل زیر ذخیره می‌شود:

/etc/virtual/limit_USERNAME

روش قدیمی (Old Method)

ابتدا یک custom package item با نام user_email_limit بسازید.

سپس فایل زیر را ایجاد کنید:

/usr/local/directadmin/scripts/custom/user_create_post.sh

محتوا:

#!/bin/sh
if [ "$user_email_limit" != "" ] && [[ $user_email_limit =~ ^-?[0-9]+$ ]] && [ "$user_email_limit" -gt 0 ]; then
    echo -n "$user_email_limit" > /etc/virtual/limit_$username
fi
exit 0;

قابل اجرا:

chmod 755 /usr/local/directadmin/scripts/custom/user_create_post.sh
---

6. ساخت سیستم Email-Only برای کاربران


روش 1: استفاده از DirectAdmin (ساده‌ترین روش)

  1. کپی یک اسکین و ساخت نسخه email-only

cd /usr/local/directadmin/data/skins
cp -Rp enhanced emailonly

لینک‌های غیرایمیلی مثل FileManager را حذف کنید.

  1. ساخت پکیج با محدودیت‌های لازم (ftp=0، db=0، و…)
  2. استفاده از all_pre.sh یا commands.allow برای محدود کردن دسترسی‌ها

روش 2: ساخت پنل اختصاصی با API

در این روش، شما یک سیستم لاگین و پنل اختصاصی با PHP می‌سازید و از API DirectAdmin برای مدیریت ایمیل‌ها استفاده می‌کنید.


Written & researched by Dr. Shahin Siami