Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam
Popełniłem serwer pocztowy - już działa.
Części skladowe - Qmail, Vpopmail i dovecot imap - do tego spamassassin, clam i roundcube.
Serwer, webmail, imap i pop3 już działa ( z szyfrowaniem lub bez), lista wysyłkowa -ezmlm i qmailadmin też.
Na razie poległem na zastosowaniu sieve - przekopałem chyba setkę stron internetowych i blogów - i im więcej czytam - tym mniej wiem.
Pierwsze pytanie: jak uruchomić pysieved - aby mógł autoryzowac userów albo z dovecot-auth - albo - najlepiej z bazy mysql?
Jak podpiąć qmaila (vpopmaila) do programu dovecot-sieve - deliver?
Na razie - w żaden sposób nie da się zalogować do pysieved (z roundcube i thunderbirda).
Pysieved mam ustawione korzystanie z dovecot-auth (w pysieved.ini)
W dovecocie włączone auth-client
Dovecot pobiera dane z bazy vpopmail takimi zapytaniami: :
password_query = SELECT CONCAT(pw_name, '@', pw_domain) AS user, pw_clear_passwd AS password FROM vpopmail WHERE pw_name = '%n' AND pw_domain = '%d' # user_query = SELECT pw_dir as home, 64020 AS uid, 64020 AS gid, concat('*:bytes=', pw_shell/1048576,'M') as userdb_quota_rule FROM vpopmail WHERE pw_name = '%n' AND pw_domain = '%d'
Czy da sie jakoś przetworzyć te komedy dla pysieved - i jak powinny wyglądać?
Jak nauczyć program deliver - dovecota - aby akceptował config stworzony przez pysieved?
I jak w pliku defaultdelivery qmaila wsadzić deliver - żeby to działało jak należy - w odniesieniu do każdego użyszkodnika? - (akceptowało konfigi pysieved w skrzynkach pocztowych).
Dzięki i pozdrawiam
Ostatnio edytowany przez Jacekalex (2009-11-20 03:56:57)
Offline
a nie prosciej uzywac sieve z dovecot'a a nie bawic sie w jakies pysieved ...
# dovecot na porcie 2000 będzie obsługiwał konfigurowanie filtrów sieve protocol managesieve { listen = *:2000 sieve=~/.dovecot.sieve sieve_storage=~/mail/.sieve } # dovecot może pełnić funkcję LDA protocol lda { postmaster_address = postmaster@nasza.domena. # obsługujemy filtorwanie sieve mail_plugins = cmusieve # logi idą do syslog'a log_path = info_log_path = }
BTW ja stoje na stanowisku ze jezeli bawimy sie w szyfrowanie to aby ono mialo sens (zabezpieczalo hasla przed przechwyceniem) to powinno byc wymuszane ... czyli polaczen nieszyfrowanych wymagajacych autoryzacji nie wpuszczamy ....
Offline
Dzięki za dobra rade - zastosowałem się do niej - lecz niestety - bez rezultatu.
Nie wiem - czy bląd jest w paczce z dovecotem, - czy w konfigu - ale jest:
Usługa managesieve - nie wstaje (nie działa).
Mój konfig:
:~# cat /etc/dovecot/dovecot.conf
protocols = imap imaps
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_privileged_group = mail
protocol imap {
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
protocol managesieve {
listen = *:2000
managesieve_max_line_length = 65536
sieve=~/.dovecot.sieve
sieve_storage=~/sieve
}
protocol lda {
postmaster_address = postmaster@domena.pl
mail_plugins = cmusieve
log_path =
info_log_path =
mail_plugin_dir = /usr/lib/dovecot/modules/lda
quota_full_tempfail = no
deliver_log_format = msgid=%m: %$
sendmail_path = /usr/sbin/sendmail
}
auth default {
mechanisms = plain login cram-md5
passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
userdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
user = vpopmail
}
plugin {
quota_warning = storage=95%% /usr/local/bin/quota-warning.sh 95
quota_warning2 = storage=80%% /usr/local/bin/quota-warning.sh 80
}
a rezultat:
:~# restartx dovecot
* Restarting IMAP/POP3 mail server dovecot [ OK ]
root@localhost:~# :~# p dovecot
root 29586 0.0 0.0 2072 580 ? Ss 02:36 0:00 /usr/sbin/dovecot
vpopmail 29588 0.0 0.0 10180 2392 ? S 02:36 0:00 dovecot-auth
vpopmail 29593 0.0 0.0 10312 2708 ? S 02:36 0:00 dovecot-auth -w
dovecot 29594 0.0 0.0 3672 1576 ? S 02:36 0:00 imap-login
dovecot 29595 0.0 0.0 3672 1580 ? S 02:36 0:00 imap-login
dovecot 29596 0.0 0.0 3672 1580 ? S 02:36 0:00 imap-login
root@localhost:~# nmap -p 2000 localhost
Starting Nmap 5.00 ( http://nmap.org ) at 2009-11-08 02:24 CET
Warning: Hostname localhost resolves to 3 IPs. Using 127.0.0.1.
Interesting ports on localhost (127.0.0.1):
PORT STATE SERVICE
2000/tcp closed callbook
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
I co z tym fantem zrobić?
Ostatnio edytowany przez Jacekalex (2009-11-08 02:45:04)
Offline
protocols = imap imaps pop3 pop3s managesieve
Offline
Dzięki - Ja też znalazłem w końcu ten błąd.
Teraz śmiga i jest prawie dobrze.
Pozostał problem z deliverem.
dovecot-deliver - nie działa.
Próbowalem trzech opcji znalezionych w dokumentacji - dotyczących przekierowania na deliver:
tego:
|/var/qmail/bin/preline -f /usr/lib/dovecot/deliver |/var/qmail/bin/preline -f /usr/lib/dovecot/deliver -d $EXT@$USER # i dodatkowo takiego: |/var/qmail/bin/preline -f | /usr/lib/dovecot/deliver -c ~/.dovecot.sieve
- oba pochodzą z dokumentacji: plik /usr/share/doc/dovecot-common/wiki/LDA.Qmail.txt
Dodatkowo znalazlem na jakiejś liście mailingowej - sposób - by użyć vdeliver z pakietu vpopmail:
|/usr/sbin/vdelivermail | /usr/lib/dovecot/deliver |/usr/sbin/vdelivermail | /usr/lib/dovecot/deliver -c ~/.dovecot.sieve |/usr/sbin/vdelivermail | /usr/lib/dovecot/deliver -d $EXT@$USER
konfiguracja dovecot wygląda tak:
protocols = imap imaps managesieve lda log_timestamp = "%Y-%m-%d %H:%M:%S " mail_privileged_group = mail protocol imap { mail_plugins = quota imap_quota } protocol pop3 { pop3_uidl_format = %08Xu%08Xv mail_plugins = quota } protocol managesieve { ssl_listen = *:2000 managesieve_max_line_length = 65536 sieve=~/.dovecot.sieve sieve_storage=~/sieve } protocol lda { postmaster_address = postmaster@example.com mail_plugins = cmusieve mail_plugins = quota log_path = /var/log/dovecot-deliver.log info_log_path = /var/log/dovecot-deliver.log mail_plugin_dir = /usr/lib/dovecot/modules/lda quota_full_tempfail = yes deliver_log_format = msgid=%m: %$ sendmail_path = /usr/sbin/sendmail auth_socket_path = /var/run/dovecot/auth-master } auth default { mechanisms = plain login cram-md5 passdb sql { args = /etc/dovecot/dovecot-sql.conf } userdb sql { args = /etc/dovecot/dovecot-sql.conf } user = vpopmail socket listen { master { path = /var/run/dovecot/auth-master mode = 0666 user = vpopmail group = vchkpw } } } plugin { sieve=~/.dovecot.sieve sieve_dir=~/sieve quota_warning = storage=95%% /usr/local/bin/quota-warning.sh 95 quota_warning2 = storage=80%% /usr/local/bin/quota-warning.sh 80 }
- zrobione.
A wiadomości nie filtruje w żaden sposób.
Rzecz dziwna - przy dostarczaniu maila do skrzynki nie ma żadnego błędu.
Qmail uruchomiony prawidłowo:
p qmail | grep deliver root 20460 0.0 0.0 1688 384 pts/9 S 03:28 0:00 qmail-lspawn |/var/qmail/bin/preline -f /usr/lib/dovecot/deliver -d @root?
-to z 2 wersją przekierowania zawierającą argument -d $EXT@$USER
Dodatkowo - deliver ma logować aktywność do pliku logu /var/log/dovecot-deliver.log - nie zalogował nawet jednej kropki.
Pomimo że istnieje:
:~$ /usr/lib/dovecot/deliver --help Usage: deliver [-c <config file>] [-a <address>] [-d <username>] [-p <path>] [-f <envelope sender>] [-m <mailbox>] [-n] [-s] [-e] [-k] Fatal: Unknown argument: --help
W konfigu usera są zdefiniowane reguły:
:#cat /var/lib/vpopmail/domains/example.com/user/.dovecot.sieve ## Generated by RoundCube Webmail SieveRules Plugin ## require ["fileinto","copy","vacation","reject"]; # rule:[Rules2] if anyof (header :contains "X-Spam-Status" "yes") { fileinto "Spam"; } # rule:[pierwsza] elsif anyof (true) { redirect :copy "admin@example.com"; } # rule:[odpow] elsif anyof (true) { vacation :days 0 :subject "Działa autoresponder" "Do cholery!"; } # rule:[ostatni] elsif anyof (true) { reject "A może to zadziała do cholery?"; } }
- ap po progamie deliver ani śladu dzialalności - ani nie filtruje - ani nie loguje - zupełnie - jakby był świeżym powietrzem.
I co z tym fantem zrobić?
Pozdrawiam
Ostatnio edytowany przez Jacekalex (2009-11-09 22:48:38)
Offline
z eximem dziala bardzo ladnie - wpis w sekcji "transports":
dovecot_pipe: driver = pipe log_output = yes command = /usr/lib/dovecot/deliver message_prefix = message_suffix = return_path_add delivery_date_add envelope_to_add
Offline
Znalazłem błąd dovecota nareszcie:
Managesieve automatycznie zapisuje wiadomości w folderze sieve zlokalizowanym w przypadku vpopmaila w lokalizacji /var/lib/vpopmail/domains/domena/user/.
:~# ls -l /var/lib/vpopmail/domains/example.com/admin/sieve razem 12 lrwxrwxrwx 1 root root 65 2009-11-10 19:11 Dowiązanie do roundcube.sieve -> /var/lib/vpopmail/domains/example.com/admin/sieve/roundcube.sieve -rw------- 1 vpopmail vchkpw 151 2009-11-10 19:11 roundcube.sieve drwx------ 2 vpopmail vchkpw 4096 2009-11-10 19:05 tmp
tworzy też dowiązanie symboliczne .dovecot.sieve w folderze użytkownika:
:~# ls -la /var/lib/vpopmail/domains/example.com/admin/.dovecot.sieve lrwxrwxrwx 1 vpopmail vchkpw 21 2009-11-10 19:05 /var/lib/vpopmail/domains/example.com/admin/.dovecot.sieve -> sieve/roundcube.sieve
W mailach dochodzących do skrzy nek aniśladu przekierowania, w logach ani śladu.
Ale w mailach odbitych - (powodem odbicia był włączony autoresponder - który alarmował - że wysłał za dużo mail do tego samego użytkownika) - znalazłem dziwny wpis:
1257875293.9767.localhost,S=2108:2,:Fatal: open(/var/lib/vpopmail/domains/example.com/.dovecot.sieve) failed: No such file or directory
I tu jest pies pogrzebany:
Skoro magnasieve ( dovecot) wie - gdzie zapisać plik z regułami sieve, skoro dovecot imap - wie - gdzie znaleźć maile i skrzynkę, to dlaczego deliver poszukuje pliku - dowiązania .dovecot.sieve w folderze domeny, a nie folderze usera w domenie - tam - gdzie zapisał go demon magnasieve - też dovecot w końcu.
Nawiasem mowiąc -nie mam nawet informacji - że to deliver - ale jaki inny program zaglądałby do tego pliku?
Jednak - skoro znalazłem przyczyne - to mam pytanie - jak usunąć ta usterkę (dotyczącą lokalizacji pliku) a właściwie 2 usterki - jeśli program ma w konfigu polecenie logowania do pliku - to jak go zmusić - aby zapisywał logi do pliku?
Spróbuję dać w konfigu ścieżki bezwzględne
/var/lib/vpopmail/domains/%d/%n/.dovecot.sieve
Ale prosze -w miarę możliwości - o sugestie odnośnie tego problemu.
Dzięki i Pozdrawiam.
Ostatnio edytowany przez Jacekalex (2009-11-10 20:10:32)
Offline
u mnie to byl Lenny ... ja bym sugerowal diagnozowac gdzie ginie ten lit idacy przez dovecot/deliver ... przydatne moze tez byc glosne logowanie w dovecot mail_debug=yes i tym podobne opcje w konfigu ...
Offline
SPróbuję - dowcip polega na tym - ze mam dwa dovecoty i dwa delivery - nawet nie wiem - który zostawił wpis.
Bo plik .qmail w foderze .../example.com/admin wyglądał przy testach tak:
/var/lib/vpopmail/domains/example.com/admin/Maildir/ | /usr/bin/autorespond 86400 3 /var/lib/vpopmail/domains/example.com/admin/vacation/message /var/lib/vpopmail/domains/example.com/admin/vacation #|/usr/sbin/vdelivermail | nc localhost 2629 #| nc localhost 2589 #| >> ~/mail-test.txt |/usr/bin/preline -f /usr/lib/dovecot/deliver |/usr/bin/preline -f /usr/lib/dovecot/deliver -d $EXT@$USER |/usr/bin/preline -f /usr/lib/dovecot/deliver -c ~/.dovecot.sieve |/usr/bin/preline -f /usr/local/libexec/dovecot/deliver |/usr/bin/preline -f /usr/local/libexec/dovecot/deliver -c ~/.dovecot.sieve |/usr/bin/preline -f /usr/local/libexec/dovecot/deliver -d $EXT@$USER |/usr/bin/preline -f /usr/lib/dovecot/deliver >> ~/preline-deliver-deb.txt |/usr/bin/preline -f /usr/local/libexec/dovecot/deliver >> ~/preline-deliver-source.txt |/usr/bin/preline -f /usr/lib/dovecot/deliver | nc localhost 2589 |/usr/bin/preline -f /usr/local/libexec/dovecot/deliver | nc localhost 2599
Gdyby nie odrzucenia z powodu autorespondera
AUTORESPOND: This message is looping...it has my Delivered-To header
- to i za 5 lat bym rozwiązania nie znalazł.
Bo tylko w tych odrzuceniach są wpisy pochodzące z któregoś delivera.
No cóż powalczę jeszcze z tym, ale muszę sie speiszyc - do poniedizalku-wtorku musze mieć naprawione 2 blędy w roundcube (php/java), ten problem i konfiguracja spamdyke - wstępną mam - ale trzeba ją jeszcze poprawić i quota-maildir-mysql - znalazlem chyba z 30 sposobow - żaden nie działa a ja za slabo znam dovecota - żeby wiedzieć o kazdym sposobie - czego w nim nie napisali (kiedyś przez takie studiowanie 1000 pewnych sposobów na kompilację kernela -swoje pierwsze jajo popełniłem po dwóch miesiącach kombinacji - dziś sam się dziwię - dlaczego tak długo.
Dziękuję i Pozdrawiam.
EDiT:
Deliver jest upartty:
deliver(example.com): 2009-11-10 20:57:03 Info: maildir: access(/var/lib/vpopmail/domains/example.com/Maildir, rwx): failed: No such file or directory deliver(example.com): 2009-11-10 20:57:03 Info: maildir: couldn't find root dir deliver(example.com): 2009-11-10 20:57:03 Info: maildir: Couldn't create mail storage : Root mail directory not given
nie widze w logach - braku dostępu do pliku .dvecot.sieve - ale za to skrzynki pocztowej szuka piętro wyzej - niż powinien.
Co ciekawsze - rozwiązanie problemu delivera mam 15 cm od nosa .
sieve=/var/lib/vpopmail/domains/%d/%n/.dovecot.sieve sieve_dir=/var/lib/vpopmail/domains/%d/%n/sieve
- te wpisy zakończyły komunikaty o braku pliku filtrów sieve.
Jeśli istnieje jakieś polecenie w stylu maildirpatch = które pozwala zdefiniować ścieżkę bezwzględną - to mogloby pomóc.
Tutaj jest log: http://www.wklej.org/id/201416/
Nie wiem tylko jednego - dlaczego deliver dokunuje przekierownia w obrębie domeny ,i w folderze domeny szuka skrzynki - której tam być nie może.
Pozdr.
Ostatnio edytowany przez Jacekalex (2009-11-10 21:41:56)
Offline
polozenie skrzynki mozesz mu wskazac np. za pomoca:
default_mail_env = mbox:%h/mail/:INBOX=%h/mail/INBOX
Offline