Qmail + qscanq + vs + vs + vs + vs
451 mail server temporarily rejected message (#4.3.0)
Probleminin cozumu. 

Bazi kullanicilar, 300-400 KB lik mailleri gonderebildiklerini
ancak 3-4 MB lik mailleri gonderemediklerini ve temprorarily rejected
hatasin aldiklarini ifade etmislerdi. Bunun uzerine local agdan
yaklasik 
15MB lik bir maili gonderip aldim. Ve sorunun kullanicinin
baglantisinda
yada ayarlarinda oldugunu dusunmustum.

Sonra evden 3MB lik bir mail gondermeyi deneyip test etmek
istedigimde 
bende temprorarily rejected hatasini aldim ve sorunun baglantidan
olabilecegi aklima geldi. 2-3 gun once qscanq listesine sordum ama
ordan 
da henuz bir cevap cikmadi. Sagolsun, Omer Faruk Sen beni arayip, 
daha cok ADSL kullanicilarinda boyle bir problemle karsilasildigini 
belirtti. Sonra bir cok sey denedim, hatta qscanq nun kodlarinda
bazi yerleri bu hatayi vermeyecek sekilde degistirip bile denedim ama

sonuc yine ayni idi.

Ismail Yenigul, sagolsun, qmail in smtp sinin timeout a dusuyor 
olabilecegini soylemesi uzerine qmail in timeoutsmtpd sini de
artirarak
denedim, ama bu da bir cozum olmadi.

Bir yandan qmail in ayarlarini kontrol ederken, bir yandan test
yapiyordum.
qmail-qsmtpd gelen mail i alip qscanq ya veriyor, qscanq da gelen
maili
smtp den alarak /var/qmail/qscanq/root/scanq/...../work seklinde bir
dizine
msg olarak, byte byte yaziyor.

Daha sonra ripmime ve antivirus program calistirildiktan sonra bu
gecici
dizinin sticky bitini kaldiriyor.

cleanq ise, bu dizindeki sticky biti setlenmemis olan dizinleri
siliyor.

Buraya kadar hersey hepimizin bildigi seyler. 

qscanq nun ayarlari yapilirken, conf-ageout isimli bir dosyaya ne
kadar sure
gectikten sonra gelen maili silebilecegini belirten sn cinsinden
sureyi
belirtiyoruz. cleanq, bu degerin 3 kati kadar gectikten sonra, 
dizinin sticky biti setlenmis olsa dahi siliyor (qscanq-stdin bir
sekilde
kirilmis, kill, reboot vs).

qscanq-stdin, ise bu conf-ageout dosyasindaki kadar sure gectikten
sonra
artik bu mailden hayir gelmez diye dusunerek direk TEMP hatasi ile
cikiyor.

  sig_alarmcatch(alarm_handler);
  alarm(MAX_AGE);

satirlari ile, conf-ageout daki kadar saniye gectikten sonra
qscanq-stdin'e
signal gonderiliyor ve alarm_handler fonksiyonu cagriliyor.

void alarm_handler(int sig)
{
  if (pid) kill(pid, SIGKILL);
  else _exit(QQ_XTEMP);
}

Bu fonksiyondan da anlasildigi gibi, MAX_AGE (conf-ageout) kadar sure

gectikten sonra QQ_XTEMP hatasi ile cikiyor, bu durumda da qmail
smtp baglantisini kuran client'a
451 mail server temporarily rejected message (#4.3.0)
mesajini donderiyor.

Problem, asil olarak, smtp den gelen mailin, baglanti yavasligindan
dolayi
MAX_AGE den daha uzun surede gonderilecek olmasinda kaynaklaniyor.
Dialup bir kullanici 20 dk da 2MB lik mail gonderiyor olsun. 
conf-ageout eger 600 ise,
10ncu dk da qscanq-stdin alarm alip QQ_XTEMP dondererek ciktigi icin,

qmail de kullaniciya temprorarily rejected diyor.

Bence en iyisi conf-ageout'un 3600 de kalmasi..

Not: Hatam varsa, lutfen duzeltin. Dogrulari birlikte ogrenelim.

Necati Ersen SISECI


---------------------------------------------------------------------
Duydunuz mu! Turkiye'nin ilk FreeBSD kitabi cikti.
http://www.acikkod.com/freebsd.php

To unsubscribe, e-mail: [EMAIL PROTECTED]
Liste arsivi: http://lists.enderunix.org ve http://www.mail-archive.com/[EMAIL 
PROTECTED]


Cevap