Dovecot i nie działająca funkcja "%d"
------------------------------ Witam, problem przedstawia się następująco, wirtualni użytkownicy poczty LMS na serwerze z linux PLD. MTA to Exim i on działa wyśmienicie, lecz mam problem z Dovecot podczas odbioru poczty. Mianowicie w pliku konfiguracyjnym nie jest brana pod uwagę funkcja %d (domena), bez niej nie można z czytać poczty dla danego usera z jego domeną. wpis w dovecot.conf: mail_location = maildir:/home/mail/virtual/%d/%n w logach dostaję: Nov 10 12:55:29 hosting dovecot: pop3(jacek): Error: user jacek: Initialization failed: mail_location not set and autodetection failed: Mail storage autodetection failed with home=/home/mail/virtual//jacek Nov 10 12:55:29 hosting dovecot: pop3(jacek): Error: Invalid user settings. Refer to server log for more information Jak widać funkcja %n działa bez problemu, dostaję usera o nazwie jacek lecz jego domeny nie. Proszę o pomoc, walczę już z tym 1 tydz. :(
Witam, Napisałem sobie dwa zapytania na potrzeby raportu który chcę zrobić, nie wiem tylko jak na poziomie sql połączyć te zapytania aby wynik pojawiał się w momencie gdy customer.id jest wynikiem RÓWNOCZEŚNIE obydwu zapytań. Zapytanie ma wyświetlić wszystkich podłączonych klientów którzy mają równocześnie występujące: - zobowiązanie miesięczne na kwotę >= 4zł oraz - zobowiązania kwartalne, roczne na kwotę od 1zł do 4zł SELECT customers.id, customers.lastname, customers.name, customers.address, customers.city, customers.zip, tariffs.value, tariffs.period, assignments.dateto, assignments.at FROM customers LEFT JOIN assignments ON customers.id = customerid LEFT JOIN tariffs ON assignments.tariffid = tariffs.id WHERE deleted = 0 AND (customers.status = 3) AND (assignments.invoice = 1) AND (assignments.dateto >= (select now()::abstime::int4) OR assignments.dateto = 0) AND (assignments.at != 1) AND (tariffs.value BETWEEN 1 AND 4) GROUP BY customers.id, customers.lastname, customers.name, customers.address, customers.city, customers.zip, tariffs.value, tariffs.period, assignments.dateto, assignments.at; SELECT customers.id, customers.lastname, customers.name, customers.address, customers.city, customers.zip, tariffs.value, tariffs.period, assignments.dateto, assignments.at FROM customers LEFT JOIN assignments ON customers.id = customerid LEFT JOIN tariffs ON assignments.tariffid = tariffs.id WHERE deleted = 0 AND (customers.status = 3) AND (assignments.invoice = 1) AND (assignments.dateto >= (select now()::abstime::int4) OR assignments.dateto = 0) AND (assignments.at = 1) AND (tariffs.value >= 4) GROUP BY customers.id, customers.lastname, customers.name, customers.address, customers.city, customers.zip, tariffs.value, tariffs.period, assignments.dateto, assignments.at; Będę wdzięczny za pomoc. -- Pozdrawiam Paweł Mendela to green | systemy
Tak, na szybkości....... SELECT customers.id, customers.lastname, customers.name, customers.address, customers.city, customers.zip, tariffs.value, tariffs.period, assignments.dateto, assignments.at FROM customers LEFT JOIN assignments ON customers.id = customerid LEFT JOIN tariffs ON assignments.tariffid = tariffs.id WHERE deleted = 0 AND (customers.status = 3) AND (assignments.invoice = 1) AND (assignments.dateto >= (select now()::abstime::int4) OR assignments.dateto = 0) AND ( (assignments.period=3 and tariffs.value BETWEEN 1 AND 4) and (assignments.period in (4,5) and tariffs.value >= 4 ) ) GROUP BY customers.id, customers.lastname, customers.name, customers.address, customers.city, customers.zip, tariffs.value, tariffs.period, assignments.dateto, assignments.at; Pozdrawiam Miłosz 2011/11/10 Paweł <zappa@bass.pl>
Witam,
Napisałem sobie dwa zapytania na potrzeby raportu który chcę zrobić, nie wiem tylko jak na poziomie sql połączyć te zapytania aby wynik pojawiał się w momencie gdy customer.id jest wynikiem RÓWNOCZEŚNIE obydwu zapytań. Zapytanie ma wyświetlić wszystkich podłączonych klientów którzy mają równocześnie występujące: - zobowiązanie miesięczne na kwotę >= 4zł oraz - zobowiązania kwartalne, roczne na kwotę od 1zł do 4zł
SELECT customers.id, customers.lastname, customers.name, customers.address, customers.city, customers.zip, tariffs.value, tariffs.period, assignments.dateto, assignments.at FROM customers LEFT JOIN assignments ON customers.id = customerid LEFT JOIN tariffs ON assignments.tariffid = tariffs.id WHERE deleted = 0 AND (customers.status = 3) AND (assignments.invoice = 1) AND (assignments.dateto >= (select now()::abstime::int4) OR assignments.dateto = 0) AND (assignments.at != 1) AND (tariffs.value BETWEEN 1 AND 4) GROUP BY customers.id, customers.lastname, customers.name, customers.address, customers.city, customers.zip, tariffs.value, tariffs.period, assignments.dateto, assignments.at;
SELECT customers.id, customers.lastname, customers.name, customers.address, customers.city, customers.zip, tariffs.value, tariffs.period, assignments.dateto, assignments.at FROM customers LEFT JOIN assignments ON customers.id = customerid LEFT JOIN tariffs ON assignments.tariffid = tariffs.id WHERE deleted = 0 AND (customers.status = 3) AND (assignments.invoice = 1) AND (assignments.dateto >= (select now()::abstime::int4) OR assignments.dateto = 0) AND (assignments.at = 1) AND (tariffs.value >= 4) GROUP BY customers.id, customers.lastname, customers.name, customers.address, customers.city, customers.zip, tariffs.value, tariffs.period, assignments.dateto, assignments.at;
Będę wdzięczny za pomoc.
-- Pozdrawiam Paweł Mendela to green | systemy ______________________________**_________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/**mailman/listinfo/lms<http://lists.lms.org.pl/mailman/listinfo/lms>
W dniu 2011-11-10 17:16, milek pisze:
Tak, na szybkości.......
SELECT customers.id <http://customers.id>, customers.lastname, customers.name <http://customers.name>, customers.address, customers.city, customers.zip, tariffs.value, tariffs.period, assignments.dateto, assignments.at <http://assignments.at> FROM customers LEFT JOIN assignments ON customers.id <http://customers.id> = customerid LEFT JOIN tariffs ON assignments.tariffid = tariffs.id <http://tariffs.id> WHERE deleted = 0 AND (customers.status = 3) AND (assignments.invoice = 1) AND (assignments.dateto >= (select now()::abstime::int4) OR assignments.dateto = 0) AND ( (assignments.period=3 and tariffs.value BETWEEN 1 AND 4) and (assignments.period in (4,5) and tariffs.value >= 4 ) ) GROUP BY customers.id <http://customers.id>, customers.lastname, customers.name <http://customers.name>, customers.address, customers.city, customers.zip, tariffs.value, tariffs.period, assignments.dateto, assignments.at <http://assignments.at>;
Ta konstrukcja nie działa prawidłowo niestety (zwraca 0 wierszy). -- Pozdrawiam, Paweł Mendela http://systemy.togreen.pl/
Pytanie nie do konca pasuje do tematyki listy ale niech będzie... Jesteś pewien, że użytkownik loguje się jako "user@domena" Co pokazuje zmienna "%0.d" ? pozdrawiam, Jacek 2011/11/10 Arek G <sivy79pl@gmail.com>:
________________________________ Witam, problem przedstawia się następująco, wirtualni użytkownicy poczty LMS na serwerze z linux PLD. MTA to Exim i on działa wyśmienicie, lecz mam problem z Dovecot podczas odbioru poczty. Mianowicie w pliku konfiguracyjnym nie jest brana pod uwagę funkcja %d (domena), bez niej nie można z czytać poczty dla danego usera z jego domeną.
wpis w dovecot.conf: mail_location = maildir:/home/mail/virtual/%d/%n
w logach dostaję: Nov 10 12:55:29 hosting dovecot: pop3(jacek): Error: user jacek: Initialization failed: mail_location not set and autodetection failed: Mail storage autodetection failed with home=/home/mail/virtual//jacek Nov 10 12:55:29 hosting dovecot: pop3(jacek): Error: Invalid user settings. Refer to server log for more information
Jak widać funkcja %n działa bez problemu, dostaję usera o nazwie jacek lecz jego domeny nie. Proszę o pomoc, walczę już z tym 1 tydz. :(
_______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
Już rozwiązałem problem, po prostu pobieram domenę z bazy po nazwie usera Dzięki za zainteresowanie W dniu 10 listopada 2011 17:36 użytkownik Jacek Kalamarz < jkalamarz@gmail.com> napisał:
Pytanie nie do konca pasuje do tematyki listy ale niech będzie...
Jesteś pewien, że użytkownik loguje się jako "user@domena"
Co pokazuje zmienna "%0.d" ?
pozdrawiam, Jacek
2011/11/10 Arek G <sivy79pl@gmail.com>:
________________________________ Witam, problem przedstawia się następująco, wirtualni użytkownicy poczty LMS na serwerze z linux PLD. MTA to Exim i on działa wyśmienicie, lecz mam problem z Dovecot podczas odbioru poczty. Mianowicie w pliku konfiguracyjnym nie jest brana pod uwagę funkcja %d (domena), bez niej nie można z czytać poczty dla danego usera z jego domeną.
wpis w dovecot.conf: mail_location = maildir:/home/mail/virtual/%d/%n
w logach dostaję: Nov 10 12:55:29 hosting dovecot: pop3(jacek): Error: user jacek: Initialization failed: mail_location not set and autodetection failed: Mail storage autodetection failed with home=/home/mail/virtual//jacek Nov 10 12:55:29 hosting dovecot: pop3(jacek): Error: Invalid user settings. Refer to server log for more information
Jak widać funkcja %n działa bez problemu, dostaję usera o nazwie jacek lecz jego domeny nie. Proszę o pomoc, walczę już z tym 1 tydz. :(
_______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
_______________________________________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/mailman/listinfo/lms
uczestnicy (5)
-
Arek G -
Jacek Kalamarz -
milek -
Paweł -
Paweł Mendela