รถเช่า ประเภทต่างๆ
รถเช่า จังหวัด
mail เลยหา mail limiter ใน da forum
วันที่: 29/03/2010
เวลา: 09:27:59
พอดีมีปัญหากับ user หนึ่งเรื่องจำนวน mail เลยหา mail limiter ใน da forum
แต่เห็นว่ามีปัญหาเยอะ เลยลองเขียนเอง เป็นการ per user limit
โดยแก้ไขที่ไฟล์ /etc/exim.pl ในส่วนของ check_limits ตามข้างล่าง
ลืม วิธีใช้ ตัว function เดิมจะตรวจสอบจาก /etc/virtual/limit แต่ที่เพิ่มคือให้เช็คแต่ละ user โดยต้องสร้างไฟล์ /etc/virtual/limit.USERNAME โดย USERNAME เป็นชื่อ user ของระบบ ถ้าไม่มีไฟล์ของ user นั้นๆ จะไปเรียกใช้ค่า global จาก /etc/virtual/limit แทน
http://www.thaihosttalk.com/index.php?topic=18601.0
sub check_limits
{
my $count = 0;
#find the current user
$uid = find_uid();
if
(uid_exempt($uid)) { return "yes"; }
my $name = "";
my $email_limit = 0;
if (($name = getpwuid($uid))) {
if (-e "/etc/virtual/limit.$name") {
open (LIMIT, "/etc/virtual/limit.$name");
$email_limit = int(<LIMIT>);
close(LIMIT);
} else {
open (LIMIT, "/etc/virtual/limit");
$email_limit = int(<LIMIT>);
close(LIMIT);
}
if
($email_limit > 0) {
$count =
(stat("/etc/virtual/usage/$name"))[7];
if
($count > $email_limit) {
die("You
($name) have reach your daily email limit of $email_limit emails\n");
}
open (USAGE,
">>/etc/virtual/usage/$name");
print
USAGE "1";
close (USAGE);
chmod (0660, "/etc/virtual/usage/$name");
}
}
my $sender_address =
Exim::expand_string('$sender_address');
my $mid =
Exim::expand_string('$message_id');
log_bandwidth($uid,"type=email&email=$sender_address&method=outgoing&id=$mid");
return "yes"
}
ทดลองใช้เองแล้วยังไม่พบปัญหา หากท่านใดอยากเป็นหนูทดลอง รบกวนด้วยครับ พบ
error ใดช่วยแจ้งด้วยครับจะได้แก้ไขต่อไปลืม วิธีใช้ ตัว function เดิมจะตรวจสอบจาก /etc/virtual/limit แต่ที่เพิ่มคือให้เช็คแต่ละ user โดยต้องสร้างไฟล์ /etc/virtual/limit.USERNAME โดย USERNAME เป็นชื่อ user ของระบบ ถ้าไม่มีไฟล์ของ user นั้นๆ จะไปเรียกใช้ค่า global จาก /etc/virtual/limit แทน
http://www.thaihosttalk.com/index.php?topic=18601.0
ความคิดเห็นทั้งหมด
ยังไม่มีความคิดเห็น มาร่วมแสดงความคิดเห็นเป็นคนแรกสิ!