Sziasztok!
Az alábbi komponensek már adottak (azaz működnek):
OS: Debian Lenny amd64
SMTP: Postfix
Maia Mailguard 1.0.3
Postfixadmin-2.3.1
RoundCube 0.4 (beta)
Dovecot 1.2 (lenny backports) - pop3 és imap quota, quotadict
Postfix virtual_transport = dovecot (mert így rendesen kezeli a kvótabejegyzéseket a dovecot).
A kérdésem a kvótára vonatkozna. Minden tökéletesen működik, a RoundCube, a Mozilla Thunderbird pontosan látja a kvótát, ha bejön egy levél, a dovecot transport miatt a kvótabejegyzés szépen frissül.
Megoldást arra keresek, hogy ha valaki levelet küld egy már betelt postafióknak, hogyan kaphatna értesítést a kézbesítés sikertelenségéről, feltüntetve a kvóta túllépését, mint okot.
A Postfixban a virtual_maildir_limit_message nem használható, mert az csak a virtual_transport = virtual esetében érvényes, de akkor viszont a kvótabejegyzések nem lesznek jók (a Beérkezett üzenetek mérete nem szerepel a kvótában, az meg elég nagy baj), ezért a dovecot LDA az IMAP kézbesítő.
Van esetleg valakinek tippje, merre érdemes keresgélni?
A Postfix/Dovecot/Roundcube trióhoz ragaszkodnék, ha lehet :-).
Köszönöm!
Attila
- 3037 megtekintés
Hozzászólások
0.4-es roundcube-ot hanyagold, kicsit bugos még a beta :>
Ubuntu 10.04, Thinkpad x60s
- A hozzászóláshoz be kell jelentkezni
Oké, ez nem lenne gond :-)
Csak kísérletezgettem.
Viszont az eredeti kérdésemen ez nem változtat - sajnos.
- A hozzászóláshoz be kell jelentkezni
szerintem ezt úgy tudod kikerülni, hogy mindennap megnézed a kvótákat, és ha valakinek eléri 95% akkor küldesz neki figyelmeztető mailt, hogy kevés a hely töröljön.
Ubuntu 10.04, Thinkpad x60s
- A hozzászóláshoz be kell jelentkezni
Ah, ez pont nem az az oldal. A Dovecot-ban van quota warning, szkriptelhető, de ez a postafiók tulajdonosának küld levelet. Én azt szeretném, hogy ha én küldök levelet egy már betelt postafiókra, akkor én kapjak vissza üzenetet, hogy a kvóta túllépése miatt az üzenetem nem kézbesíthető a címzett részére.
- A hozzászóláshoz be kell jelentkezni
* semmi...
- A hozzászóláshoz be kell jelentkezni
sieve szinten rejecteled a levelet temporart errorral?
Ha mar dovecot..
- A hozzászóláshoz be kell jelentkezni
Nem, a Postfix küld vissza egy levelet automatikusan, de abban nem a kvótára hivatkozik, hanem arra, hogy a levél olvasás nélkül törölve lett, ami persze igaz, de nem a címzett, hanem a levélszerver törölte.
De akkor a Sieve megoldja ezt a kérdésemet? Vele még nem foglalkoztam, de akkor utána nézek.
- A hozzászóláshoz be kell jelentkezni
Ilyet a postfix nem mond...
- A hozzászóláshoz be kell jelentkezni
A postmaster@tartomany.hu címről kapok egy levelet, amit a válallati Exchange így fordít le magyarra (az eredetit nem látom).
- A hozzászóláshoz be kell jelentkezni
Akkor, ennek mi köze a postfix+dovecot+roundcube-hoz?
- A hozzászóláshoz be kell jelentkezni
Igy van. A postfix megmondja hogy quota problem történt.
- A hozzászóláshoz be kell jelentkezni
lehet rosszul emlékszem rá, de tudtommal a debianos postfix nem kezeli a quotát...
--
by Mikul@s
- A hozzászóláshoz be kell jelentkezni
Én is így tudom (VDA patch). Ugyanakkor az értesítő (automatikusa válasz) levélnek asszem mennie kellene.
- A hozzászóláshoz be kell jelentkezni
Nos, VDA patch-es a Postfixem, de ez most nem lényeges. A VDA akkor kell (szerintem), ha a Postfix-nek kell kezelnie a Maildir++ specifikációt (és ebben a kvótát is). Ehhez a Postfix main.cf ben kell lennie egy virtual_transport = virtual sornak.
Nálam nem így van, mert akkor a Bejövő üzenetek tartalmának mérete nem adódik hozzá az össz mérethez (nem értem egyébként, hogy miért, egyszerűen ez a tapasztalat).
A main.cf ben a virtual_transport=dovecot szerepel, így a quota tökéletesen működik, mert a Dovecot tudja, mikor jön a Maildir-be levél (hiszen ő teszi bele, nem a Postfix), viszont ha betelt a Quota, valahogyan vissza kellene értesíteni a levél feladóját az elutasítás okáról (erre talán jó lenne a Dovecot Sieve pluginja? nem tudom, fentebb ajánlották).
- A hozzászóláshoz be kell jelentkezni
#main.cf
virtual_transport = dovecot
virtual_overquota_bounce = yes
virtual_mailbox_limit_message = Rábasztál, marad a telefon...
Nekem így tökéletesen jönnek/mennek vissza a figyelmeztető levelek, ha betelt a kvóta
- A hozzászóláshoz be kell jelentkezni
Nálam ez van:
virtual_overquota_bonce = no
Ugyanis, ha
virtual_transport = dovecot
akkor NEM a Postfix, hanem a Dovecot LDA állítja össze a figyelmeztető levelet. Ebben az esetben pedig testre szabható az üzenet, a dovecot.conf ban, a protocol lda szekcióban:
rejection_subject =
rejection_reason =
Attila
- A hozzászóláshoz be kell jelentkezni
De dovecot igen :) és azt adta meg mda-nak.
- A hozzászóláshoz be kell jelentkezni
Na most ölöm meg a céges Exchange 2007 szervert...
Arrrggghhhhh...
A Dovecot LDA küld vissza levelet. Az alábbi tartalommal:
Your message to valaki_at_valahol_hu was automatically rejected:
Quota exceeded (mailbox for user is full).
Reporting-UA: mail01.valahol.hu; Dovecot Mail Delivery Agent
Final-Recipient: rfc822; valaki_at_valahol_hu
Original-Message-ID: <92bcf944cebd20c91287ab8a5bf8fb45@localhost>
Disposition: automatic-action/MDN-sent-automatically; deleted
Na EZT fordítja le a 2007 Exchange magyarra így:
Az üzenet olvasás nélkül törölve ekkor: 2010. július 29. 11:50:31 (GMT+01:00) Belgrád, Budapest, Ljubljana, Pozsony, Prága.
A Roundcube levelezőn viszont láttam az IGAZI, EREDETI, a Dovecot LDA által visszaküldött e-mailt.
Szóval az eredeti kérdés törölve, megoldódott.
De adódik egy másik a fentiek miatt: ezt a Quota exceeded üzenetet kellene testreszabni, lefordítani úgy, hogy egy Exchange is megértse. Ennek nézek utána, de ha van kész ötletetek, ne kíméljetek.
Köszönök minden segítséget!
Attila
- A hozzászóláshoz be kell jelentkezni
1, A válasz teljesen korrekt(LDA) bár nekem túl szószátyár. (rfc2298)
2, Attól, hogy valamit k. sok pénzért veszel nem hozol mindig jó döntést (ez most nem rád vonatkozott).
Mivel hogy az MS hibás fordítását kevés esélyed van hogy legyőzd, és ha igen akkor is míg megvárod, hogy mindenhol lecseréljék a hülye MDN fordításukat implementáló szoftverüket a világon, addig kinő a 3. lábad.
3, Ha LDA megoldás érdekel és gyors akkor http://wiki.dovecot.org/LDA oldalt javasolnám... (-e opcióra erős tekintettel)
4, Ha a 3-as nem megoldás vagy nem működik, akkor sajna marad hogy kitalálod hogy lenne jó, megírod a változást, Timo meg ha tetszik neki (szerencsére jó arc, nem sznob) beteszi.
(Személyes véleményem szerint, kellene lda konfig opció a MDN disposition-ra és a deleted action-t le kellene cserélni denied akcióra ha a szószátyár viselkedés nem oké. Ha nekem ez gond lenne és nem akarnék vele nagy cécót, akkor újrafordítanám a deliver-t hogy kicserélem ezt a szót benne)
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy nem voltam egyértlemű...akkor bocsi...
A levélszerver, amit készítek, Dovecot LDA-t használ. Tehát a 3-as pontot kipipálhatjuk.
Ahol főállásban dolgozom, ott van az Exchange szerver (tehát nem én vettem ;-), és előszőr innen próbáltam ki, mi a helyzet. Ez hiba volt.
Más postafiókról (pl. gmail) küldve levelet egy betelt postafióknak, a hibaüzenet gond nélkül visszajön. A Dovecot LDA konfigban még a hibaüzenetet is testreszabhatom.
Ha viszont valaki szintén Exchange fiókból küld levelet egy betelt kvótájú fiókba, a levél küldője csak annyit fog látni, hogy levelét olvasás nélkül törölték, ez pedig adott esetben igencsak félrevezető lehet. Köszönjük, Microsoft.
- A hozzászóláshoz be kell jelentkezni
Nem értettem félre, hanem te értetted félre, lehet nem voltam egyértelmű.
1, Jól tudod az LDA válaszol. A válasza szabványos (fent hivatkoztam rfc-re) automatikus üzenet diszpozíció: törölve. Ezt fordítja rosszul az Exchange.
2, Azt elérni, hogy az exchange-be az elfordítást kijavítsák (Olvasás nélküli törlés -> A cimzett a levelet nem kapta meg, törölve lett-re) nehezen tudod, de ha sikerülne, akkor sem fog bekerülni az összes telepített exchange-be ez a változás.
3, Az "egyszerű" megoldás, hogy a delivert "-e" flaggel hívod meg, ami megváltoztatja a működését (ezt nem kívántam leírni itt) EX_NOPERM visszatérési értéke lesz (vagy EX_TEMPFAIL). Neked nem biztos, hogy jó. Írtam, hogy próbáld ki.
4, És itt írtam, hogy ha a 3. -pontban hivatkozott megoldás nem működik, vagy neked nem opció, akkor maradt, hogy kitalálod (forrás szintjén) hogy mit szeretnél válaszolni MDN-ként, majd ezt ha jó az ötlet a legkevesebb fájdalom ha patch-ként beküldöd, ha jó Timo beteszi.
Utána meg leírtam, hogy szerintem mi lenne a jó:
dovecot config akció: mdn-send-denied opciót bevezetni, és ha yes re állítják a deleted (a mostani diszpozíció amit félre van fordítva) helyett "denied" -et küld, ami azt jelentené: a receipt letiltva(fogalmam nincs hogy fordítja a exchange). Én ezt tenném be az LDA-ba, hogy ez lehessen. A helyes válasz sajnos az, hogy törölve lett, mert az LDA ilyenkor UA-ként működik és a levelet, hely hiányában ->devnull. A másik helyes válasz az lenne, hogy le van tiltva a válasz (denied).
- A hozzászóláshoz be kell jelentkezni