نمایش نتایج: از شماره 1 تا 7 , از مجموع 7

موضوع: محدود کردن تعداد ایمیل ارسالی در Exim

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #2
    عضو جدید phpniki آواتار ها
    تاریخ عضویت
    Jan 2011
    محل سکونت
    اینترنت
    نوشته ها
    15
    تشکر تشکر کرده 
    0
    تشکر تشکر شده 
    14
    تشکر شده در
    12 پست

    پیش فرض پاسخ : محدود کردن تعداد ایمیل ارسالی در Exim

    یه راه هست ولی باید مراقب باشی Cpanel که update می شه اونو حذف نکنه

    مراحل زیر رو یکی یکی دنبال کن:

    1- اول از همه یه کپی از فایل زیر بگیر
    کد:
     /etc/exim.pl
    2- خوب توی همین فایل کد زیر رو پیدا کن

    کد:
    if ( $maxmails > 0 ) {
                my $nummailsinhour = readbacktodate("/usr/local/apache/domlogs/$domain-smtpbytes_log");
                if ( $nummailsinhour > $maxmails ) {
                    die "Domain $domain has exceeded the max emails per hour. Message discarded.\n";
                }
            }
    و تغییرات زیر رو انجام بدید
    کد:
    if ($maxmails > 0) {
             my $nummailsinhour = readbacktohour("/usr/local/apache/domlogs/$domain-smtpbytes_log");
             my $nummailsinday = readbacktodate("/usr/local/apache/domlogs/$domain-smtpbytes_log");
             if ($nummailsinhour > 500) {
                die "Domain $domain has exceeded the max emails per hour. Message discarded.\n";
             }
             if ($nummailsinday > $maxmails) {
                die "Domain $domain has exceeded the max emails per day. Message discarded.\n";
             }
          }
    3- حالا خط زیر رو پیدا کنید

    کد:
    sub readbacktodate {
    و با خط زیر عوض کنید

    کد:
    sub readbacktohour {
    4- حالا sub کلاس زیر رو بعد از sub قبلی اضافه کن

    کد:
    sub readbacktodate {
       my($filename) = @_;
       my($buf);
       my($filepos) = 0;
       my $now = time();
       my $onedayago = ($now - (24*60*60));
       my($hitcount) = 0;
       my($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
             $atime,$mtime,$ctime,$blksize,$blocks)
          = stat($filename);
    
       $filepos = ($size - 4096);
       open(RF,"$filename");
       seek(RF,$filepos,0);
       while($filepos >= -4096) {
          if ($filepos < 0) {
             read(RF,$buf,($filepos+4096));
          } else {
             read(RF,$buf,4096);
          }
          if ($filepos > 0) {
             $buf =~ /([^\n]+\n)/;
             $filepos += length($1);
             $buf = substr($buf,length($1));
          }
          my @BUF = split(/\n/, $buf);
          foreach (reverse @BUF) {
             my($ttime,$tbytes) = split(/ /);
             if ($ttime > $onedayago) {
                $hitcount++;
             }
          }
    
          $filepos -= 4096;
          if ($filepos < 0) {
             seek(RF,0,0);
          } else {
             seek(RF,$filepos,0);
          }
       }
    
       return($hitcount);
    }
    حالا تو whm قسمت تعداد ایمیل در ساعت به تعداد ایمیل در یک روز گذشته تبدیل شد

    موفق باشی

  2. تعداد تشکر ها از phpniki به دلیل پست مفید


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. مشکل در exim
    توسط agent47 در انجمن دايرکت ادمين DirectAdmin
    پاسخ ها: 6
    آخرين نوشته: September 5th, 2013, 20:38
  2. مشکل در exim
    توسط sadeght در انجمن سوالات و مشکلات
    پاسخ ها: 3
    آخرين نوشته: March 7th, 2013, 11:29
  3. exim-26 down
    توسط hostironi در انجمن سی پنل CPanel
    پاسخ ها: 0
    آخرين نوشته: June 25th, 2012, 01:28
  4. ارسال نکردن ایمیل و مشکل در exim و ریست نشدن exim
    توسط tanhasystem در انجمن سی پنل CPanel
    پاسخ ها: 1
    آخرين نوشته: January 8th, 2012, 23:23
  5. مشکل با exim
    توسط irantrack در انجمن سوالات و مشکلات
    پاسخ ها: 1
    آخرين نوشته: June 28th, 2010, 00:21

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •