ČlánkyPřihlášení |
Mailserver - Postfix, IMAP, Maildrop a MySQLÚvodKdyž jsem si s kolegou začal zařizovat webhosting, zjistil jsem, že bez virtuálních uživatelů pro mailserver to nepůjde. Protože již delší dobu používám jako SMTP server postfix, tak jsem začal hledat vhodné řešení s jeho využitím. Popíšu tu řešení, které jsem si vybral. Postfix jako SMTP server, Courier-IMAP jako IMAP (IMAPs) a POP3 (POP3s) server a Courier-Maildrop pro třídění přijaté pošty, to vše využívající databázi MySQL pro vedení uživatelských účtů a autorizaci uživatelů. Všechna pošta se uchovává ve formátu Maildir. Nejprve jsem to rozeběhl na distribuci Slackware, ale protože mám na serveru Debian, tak jsem přemigroval svůj počítač na Debiana a všechny další věci, které zde budu popisovat se týkají jen a pouze Debiana (i když myslím, že pro Slackware jsou taky platný :-) "Changelog"
leden 2006
poznámky k RedHatu a jeho klonům
přidány další postupy pro generování hesel pro uživatele
změněna struktura databáze:
přidány tabulky postfix_email a postfix_trash
tabulce postfix_users přidány sloupečky
bypass_... pro amavis (zatím tu není zapsán)
přidán základ "uživatelského" manuálu
Reklama :-)Protože se mi v mailboxu schází čím dál tím víc dotazů na konfiguraci mailserveru s uživateli v MySQL a počet mých nekomerčních (i komerčních) instalací se pěkně rozrůstá, dovolím si malou reklamu :-). Rozhodl jsem se nabízet konfiguraci mailserveru i za penízky. Pokud máte zájem o konfiguraci mailserveru, který obsahuje něco z následujích věcí, napište mi email a domluvíme se. Pracuji vzdáleně, ale pokud je potřeba mohu přijet i k vám. Mám živnostenský list, který pokrývá tuto činnost, takže vystavím doklad. Mailserver nainstaluji na většinu běžně používaných distribucí (Debian, Mandrake, Red Hat a jeho kolny, SuSE, Gentoo a další...)
Příprava všeho potřebného
Jediný skutečný uživatel který bude v systému potřeba je Příprava SW pro RHEL/CentOSPokud se rozhodnete instalovat mailserver na nějakém Red Hatu nebo z něj odvozeném systému, tak se vám asi bude hodit následující popis. Zdroje pro YUMDo konfigurace YUMu je potřeba přidat Dagův repozitář: $ cat > /etc/yum.repos.d/dag.repo <<<" [dag] name=Dag-RHEL-Yum baseurl=http://dag.linux.iastate.edu/dag/redhat/el$releasever/en/$basearch/dag http://www.mirrorservice.org/sites/apt.sw.be/redhat/el$releasever/en/$basearch/dag http://mirrors.ircam.fr/pub/dag/redhat/el$releasever/en/$basearch/dag http://apt.sw.be/redhat/el$releasever/en/$basearch/dag enabled=1 gpgcheck=1 includepkgs=clamav clamav-devel clamav-db unrar amavisd-new nomarch arc lzop unarj \ ripole freeze cabextract zoo lzo perl-Convert-UU perl-Unix-Syslog unarj \ perl-TimeDate perl-Net-Server perl-MailTools perl-MIME-tools \ perl-IO-stringy perl-Convert-UUlib perl-Convert-TNEF perl-Convert-BinHex \ perl-Config-IniFiles perl-Compress-Zlib perl-CPANPLUS perl-BerkeleyDB \ perl-Archive-Zip perl-Archive-Tar " Nainstalovaný SW z repozitářů YUMucyrus-sasl cyrus-sasl-devel cyrus-sasl-md5 mysqlclient10 mysqlclient10-devel expect mysql-devel mysql gamin-devel pcre pcre-devel spamassassin procmail clamav clamav-db perl-Date-Calc perl-Bit-Vector perl-DBD-MySQL pam_mysql Nainstalovaný SW z vlastních balíčkůcourier-authlib courier-authlib-userdb courier-authlib-pipe courier-authlib-mysql courier-authlib-pipe courier-authlib-mysql courier-authlib-devel courier-imap maildrop-devel maildrop-man maildrop postfix Návod na kompilaci courieru je na jeho domácí stránce. Pro courier-imap a courier-authlib jsem si upravoval spec soubory, vykopal jsem z nich závislosti na postgresql(nebo tak něco, je to delší doba co jsem to dělal, až to budu dělat znova, tak si to pořádně zapíšu:-)). Soubory ke stažení: courier-imap.spec, courier-authlib.spec. Postfix je potřeba překompilovat, protože ten dodávaný v RHEL/CentOSu neumí spolupracovat s MySQL databází. Upravený spec souboru si můžete stáhnout: postfix.spec Nastavení programůMySQLInstalaci a základní nastavení databáze MySQL do svého systému snad zvládne každý a kdo ne, tak ať si najde howto třeba na www.google.com. Vytvoření databáze
Vytvoříme si databázi třeba s názvem $ mysql -u root -p Enter password: mysql> use postfix Database changed mysql> a začneme vytvářet potřebné tabulky:
-- Databáze: `postfix`
--
-- --------------------------------------------------------
--
-- Struktura tabulky `maildrop_rules`
--
CREATE TABLE `maildrop_rules` (
`id` int(11) NOT NULL auto_increment,
`user_id` int(11) NOT NULL default '0',
`no` int(11) default NULL,
`pravidlo` enum('if') NOT NULL default 'if',
`hlavicka_pravidlo` enum('X-Spam-Flag','From','To','Cc','Bcc','List-Post','List-Id',
'Delivered-To','(From|Cc|To)','X-Listname') default 'From',
`hlavicka_hodnota` varchar(255) NOT NULL default '',
`akce` enum('to') NOT NULL default 'to',
`cil` varchar(255) NOT NULL default '',
`active` enum('y','n') NOT NULL default 'n',
`komentar` varchar(255) NOT NULL default '',
`mail2web` enum('y','n') NOT NULL default 'n',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Struktura tabulky `postfix_access`
--
CREATE TABLE `postfix_access` (
`id` int(10) unsigned NOT NULL auto_increment,
`source` varchar(128) NOT NULL default '',
`access` varchar(128) NOT NULL default '',
`type` enum('recipient','sender','client') NOT NULL default 'recipient',
PRIMARY KEY (`id`), KEY `source` (`source`), KEY `type` (`type`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Struktura tabulky `postfix_alias`
--
CREATE TABLE `postfix_alias` (
`id` int(11) unsigned NOT NULL auto_increment,
`alias` varchar(128) NOT NULL default '',
`destination` varchar(128) NOT NULL default '',
PRIMARY KEY (`id`), KEY `alias` (`alias`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Struktura tabulky `postfix_relocated`
--
CREATE TABLE `postfix_relocated` (
`id` int(11) unsigned NOT NULL auto_increment,
`email` varchar(128) NOT NULL default '',
`destination` varchar(128) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Struktura tabulky `postfix_transport`
--
CREATE TABLE `postfix_transport` (
`id` int(11) unsigned NOT NULL auto_increment,
`domain` varchar(128) NOT NULL default '',
`destination` enum('local:','virtual:','maildrop:') NOT NULL default 'local:',
PRIMARY KEY (`id`),
UNIQUE KEY `domain` (`domain`),
KEY `domain_2` (`domain`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Struktura tabulky `postfix_trash`
--
CREATE TABLE `postfix_trash` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`email` varchar(128) NOT NULL default '',
`destination` varchar(128) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Struktura tabulky `postfix_users`
--
CREATE TABLE `postfix_users` (
`id` int(11) unsigned NOT NULL auto_increment,
`email` varchar(128) NOT NULL default '',
`crypt` varchar(128) NOT NULL default '',
`clear` varchar(128) default NULL,
`name` tinytext,
`uid` int(11) unsigned NOT NULL default '5000',
`gid` int(11) unsigned NOT NULL default '5000',
`homedir` tinytext NOT NULL,
`maildir` tinytext NOT NULL,
`quota` tinytext,
`access` enum('Y','N') NOT NULL default 'Y',
`postfix` enum('Y','N') NOT NULL default 'Y',
`spam_tag_level` int(11) default NULL,
`spam_tag2_level` int(11) default NULL,
`spam_kill_level` int(11) default NULL,
`message_size_limit` bigint(20) default NULL,
`bypass_virus_checks` enum('Y','N') default NULL,
`bypass_header_checks` enum('Y','N') default NULL,
`bypass_spam_checks` enum('Y','N') default NULL,
`bypass_banned_checks` enum('Y','N') default NULL,
PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`),
KEY `email_2` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Struktura tabulky `postfix_virtual`
--
CREATE TABLE `postfix_virtual` (
`id` int(11) unsigned NOT NULL auto_increment,
`email` varchar(128) NOT NULL default '',
`destination` mediumtext NOT NULL,
PRIMARY KEY (`id`),
KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Struktura tabulky `postfix_email`
--
CREATE TABLE `postfix_email` (
`id` int(11) unsigned NOT NULL auto_increment,
`email` varchar(128) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `email` (`email`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Kdyby se vám zdálo, že je v nějaké tabulce sloupeček navíc, případně je celá tabulka zbytečná, tak je to v pořádku :-) Jsou to pozůstatky z nějaké první verze howto. Funkčně to ničemu nevadí. Popis tabulekpostfix_aliasTabulka se používá pouze při lokálním doručování, neuplatní se pokud doručujete virtuálním uživatelům. Je to také jediná tabulka, která umožňuje přímo spouštět externí skripty.
postfix_relocatedTato tabulka slouží pouze pro oznámení o tom, že na dané emailové adrese nelze uživatele zastihnout. Oznámí novou adresu kde se uživatel nachází.
postfix_transport
postfix_users
postfix_virtualTabulka slouží jako náhrada za /etc/aliases pro virtuální uživatele.
postfix_trash
postfix_email
postfix_access
PostfixZákladní nastavení
Konfigurační soubory postfixu jsou v adresáři master.cfV souboru jsou potřeba následující řádky: smtp inet n - - - - smtpd virtual unix - n n - - virtual main.cfnastavíme schránky do formátu Maildir: home_mailbox = Maildir/ Oznámíme postfixu kde má hledat potřebné tabulky: alias_maps = mysql:/etc/postfix/mysql-aliases.cf relocated_maps = mysql:/etc/postfix/mysql-relocated.cf transport_maps = mysql:/etc/postfix/mysql-transport.cf virtual_maps = mysql:/etc/postfix/mysql-virtual.cf \ mysql:/etc/postfix/mysql-email.cf mysql:/etc/postfix/mysql-trash.cf virual_maps má definovaných víc konfiguračních souborů, a nastavíme lokální doručování: local_recipient_maps = $alias_maps $virtual_mailbox_maps unix:passwd.byname Dále nastavení pro virtuální uživatele: virtual_mailbox_base = /home/virtual
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-maps.cf
virtual_uid_maps = mysql:/etc/postfix/mysql-virtual-uid.cf
virtual_gid_maps = mysql:/etc/postfix/mysql-virtual-gid.cf
smtpd_recipient_restrictions = check_recipient_access mysql:/etc/postfix/mysql-recipient.cf,
reject_unknown_sender_domain,
permit_mynetworks,
permit_sasl_authenticated,
check_relay_domains,
reject
mysql-aliases.cfuser = postfix password = postfix dbname = postfix table = postfix_alias select_field = destination where_field = alias hosts = 127.0.0.1 mysql-client.cfuser = postfix password = postfix dbname = postfix table = postfix_access select_field = access where_field = source additional_conditions = and type = 'client' hosts = 127.0.0.1 mysql-recipient.cfuser = postfix password = postfix dbname = postfix table = postfix_access select_field = access where_field = source additional_conditions = and type = 'recipient' hosts = 127.0.0.1 mysql-relocated.cfuser = postfix password = postfix dbname = postfix table = postfix_relocated select_field = destination where_field = email hosts = 127.0.0.1 mysql-sender.cfuser = postfix password = postfix dbname = postfix table = postfix_access select_field = access where_field = source additional_conditions = and type = 'sender' hosts = 127.0.0.1 mysql-transport.cfuser = postfix password = postfix dbname = postfix table = postfix_transport select_field = destination where_field = domain hosts = 127.0.0.1 mysql-virtual.cfuser = postfix password = postfix dbname = postfix table = postfix_virtual select_field = destination where_field = email hosts = 127.0.0.1 mysql-virtual-maps.cfuser = postfix password = postfix dbname = postfix table = postfix_users select_field = maildir where_field = email additional_conditions = and postfix = 'y' hosts = 127.0.0.1 mysql-virtual-gid.cfuser = postfix password = postfix dbname = postfix table = postfix_users select_field = gid where_field = email additional_conditions = and postfix = 'y' hosts = 127.0.0.1 mysql-virtual-uid.cfuser = postfix password = postfix dbname = postfix table = postfix_users select_field = uid where_field = email additional_conditions = and postfix = 'y' hosts = 127.0.0.1 mysql-email.cfuser = postfix password = postfix dbname = postfix table = postfix_email select_field = email where_field = email hosts = 127.0.0.1 SMTPs a AUTHNastavení tls pro postfix je celkem jednoduché, vytvoříme adresář Pro ověřování uživatelů použijeme SASL. main.cfsmtp_use_tls = yes smtpd_use_tls = yes smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = mail.domena.tld broken_sasl_auth_clients = yes Generování certifikátuVygenerujeme certifikáty, které potřebujeme. Provádíme jako uživatel root. openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 <- zadejte heslo pro smtpd.key chmod 600 smtpd.key openssl req -new -key smtpd.key -out smtpd.csr
<- Zadejte heslo pro smtpd.key openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt <- zadejte heslo pro smtpd.key openssl rsa -in smtpd.key -out smtpd.key.unencrypted Zadejte heslo pro smtpd.key. mv -f smtpd.key.unencrypted smtpd.key openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
<- Zadejte heslo pro smtpd.key SASL2Pro ověření přihlášení uživatele při odesílání pošty přes SMTPs protkol použijeme stávající MySQL databázi. SASL2 nastavíme tak aby používal pam_mysql. smtpd.confNastavení SASL2 je v debianu v souboru log_level: 3 pwcheck_method: saslauthd mech_list: PLAIN LOGIN main.cfJe potřeba trochu upravit smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject smtpd_recipient_restrictions = permit_sasl_authenticated,... saslauthdPro saslauthd je třeba přidat pár parametrů (hlavně jde o -r, který způsobí, že se bude předávat celá emailová adresa a ne jen username), buď je můžete na tvrdo napsat do spouštěcího skriptu nebo je v Debianu můžete zadat do soubouru START=yes PARAMS="-r -m /var/spool/postfix/var/run/saslauthd" MECHANISMS="pam" Adresář /var/spool/postfix/var/run/saslauthd si vytvořte, protože zřejmě nebude existovat. Během hraní si s saslauth jsem si ještě udělal symlink /etc/pam.d/smtpKonfigurace PAM knihovny je v souboru
auth sufficient pam_mysql.so user=DBUZIVATEL passwd=DBHESLO host=localhost \
db=postfix table=postfix_users usercolumn=email passwdcolumn=clear
auth sufficient pam_mysql.so user=DBUZIVATEL passwd=DBHESLO host=localhost \
db=postfix table=postfix_users usercolumn=email passwdcolumn=crypt crypt=1 md5=y
auth required pam_deny.so
account sufficient pam_mysql.so user=DBUZIVATEL passwd=DBHESLO host=localhost \
db=postfix table=postfix_users usercolumn=email passwdcolumn=crypt where=postfix=Y
account required pam_deny.so
Zalomení řádků v konfiguráku pamu zrušte, přidal jsem ho sem jen kvůli lepšímu formátování textu. Řádek s master.cfNutné úpravy v souboru smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes Použití SMTPs a autorizace je velmi jednoduché, poštovním klientu si nastavte pro odchozí server (SMTP):
SpamAssassinPěkný generátor konfigurace pro SpamAssassin je na stránce http://www.yrex.com/spam/spamconfig.php Zastarelé: Spamassassina spouštím při startu jako démona (program MaildropPár lidiček se mě ptalo proč jsem si zvolil Maildrop pro lokální doručování? Odpověď je velmi jednoduchá: narozdíl od procmailu si umí základní informace o uživateli stáhnout z MySQL databáze, nezatěžuje při zpracovávání emailu počítač jako procmail (narozdíl od procmailu pasuje pouze hlavičku emailu) a taky se mi víc líbí zápis pravidel :-) InstalaceUPDATE: pro novější verze maildropu nemusíte provádět překompilvání s podporou MySQL (ono to ani nejde). Konfigurace maildropu byla přesunuta do authdaemona (takže používá stejný konfigurák pro připojení k MySQL jako courier-imap) Použil jsem verzi 1.6.3, překlad ze zdrojového kódu byl bez problémů. $ tar -xjf maildrop-1.6.3.tar.bz2 $ cd ./maildrop-1.6.3 $ ./configure --prefix=/usr --enable-maildropmysql \ --enable-maildirquota --with-devel \ --with-mysqlconfig=/etc/maildrop/maildropmysql.cf \ --enable-syslog=1 --enable-restrict-trusted=0 \ --enable-sendmail=/usr/sbin/sendmail --with-etcdir=/etc/maildrop \ --enable-maildrop-uid=virtual --enable-maildrop-gid=virtual $ make su - root # make install # make install-man NastaveníDo souboru maildrop unix - n n - - pipe
flags=R user=virtual:virtual argv=/usr/bin/maildrop -V1 -d ${recipient}
Konfigurace maildropu pro přístup k MySQL je uložená v souboru hostname localhost port 3306 database postfix dbuser login-maildropu-do-MySQL dbpw heslo-maildropu-do-MySQL dbtable postfix_users default_uidnumber 5000 default_gidnumber 5000 uid_field email uidnumber_field uid gidnumber_field gid maildir_field maildir homedirectory_field homedir quota_field quota mailstatus_field postfix where_clause and postfix='y' Pro databázi MySQL musíme mít uživatele pro přístup maildropu k datům, můžem použít uživatele co máme pro postfix, ale já jsem si udelal jiného kvůli snadnějšímu ladění (z logu MySQL se pak snadno pozná jestli maildrop přistupuje k databázi a jak se jí dotazuje) v adresáři LOGNAME=tolower($LOGNAME) include "/home/virtual/.mailfilters/$LOGNAME"
Pro každého uživatele, který je v doméně s transportem FROM='uzivatel@domena.tld' to "/home/virtual/domena.tld/uzivatel/." Pozor, maildrop narozdíl od procmailu sám od sebe nezakládá maildiry! Pro uchováváni pravidel pro třídění pošty je v MySQL použita tabulka Skripty se spouštějí pod uživatelem Před prvním použitím skriptů si nastavte v jejich záhlaví jméno a heslo pro přístup do databáze. Uživatel pod kterým do databáze budete přistupovat musí mít právo na SELECT v tabulce QuotaNastavení quoty pro maildrop v tabulce Courier
Na Debianu se konfigurační soubory Courieru nacházejí v adresáři imapdDo konfiguračního souboru AUTHMODULES="authdaemon"
IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT \
THREAD=REFERENCES SORT AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"
IMAPDSTART=YES
pop3dNastavení pop3 se provede v souboru AUTHMODULES="authdaemon" POP3AUTH="LOGIN CRAM-MD5 CRAM-SHA1" POP3DSTART=YES authdaemonrcauthmodulelist="authmysql authpam" authmysqlrcMYSQL_SERVER localhost MYSQL_USERNAME postfix MYSQL_PASSWORD postfix MYSQL_SOCKET /var/run/mysqld/mysqld.sock MYSQL_DATABASE postfix MYSQL_USER_TABLE postfix_users MYSQL_LOGIN_FIELD email MYSQL_CRYPT_PWFIELD crypt MYSQL_UID_FIELD uid MYSQL_GID_FIELD gid MYSQL_HOME_FIELD homedir MYSQL_MAILDIR_FIELD maildir MYSQL_NAME_FIELD name MYSQL_WHERE_CLAUSE access='y' Uživatelský manuálPřidání nové domény do obsluhy postfixu
Založení uživatelského účtu
Mám funkční řešení tak, že není nutné generovat uživateli filtr pro maildrop. Potřebné adresáře se založí samy při příchodu prvního emailu. Uživatelský soubor s pravidly maildropu se použije pouze v případě, že mu chcete umožnit jeho vlastní pravidla pro třídění. Přidání adresy nebo serveru na blacklistNěkdy se hodí přidat adresu nebo rovnou celý server na blacklist tak aby byl odmítnut nějakým "chytrým" hlášením.
ZdrojeAutor
$Id: mailserver.html,v 1.8 2006/01/13 21:48:45 tsunami Exp $
|
Presmerovani kopie
Zdravim Zdenka, toto je nejlepsi manual na postfix s mysql. Vsechno mi podle nej funguje, jen nevim jak udelat presmerovani, ale kopie. ABy se email vlastne naklonoval a prisel na 2 emailove adresy soucasne.
Ahoj, do `postfix_virtual` v
do `postfix_virtual` vlož:
email: adresa1@domena
destination: adresa1@domena, adresa2@kdekoliv
no, problem je v tom ze ked
no, problem je v tom ze ked to takto zadam tak posta dorazi do adresa1@domena a dorazi aj
do adresa2@kdekoliv, ale ta mi uz dorazi 2x ten isty :(
Vytvoreni tabulek
nemelo by byt degault uid a gid 5000 ? jako je id uzivatele virtual ?
CREATE TABLE `postfix_users` (
`id` int(11) unsigned NOT NULL auto_increment,
`email` varchar(128) NOT NULL default '',
`crypt` varchar(128) NOT NULL default '',
`name` tinytext NOT NULL,
`uid` int(11) unsigned NOT NULL default '4001',
`gid` int(11) unsigned NOT NULL default '4001',
`homedir` tinytext NOT NULL,
`maildir` tinytext NOT NULL,
`quota` tinytext NOT NULL,
`access` enum('Y','N') NOT NULL default 'Y',
`postfix` enum('Y','N') NOT NULL default 'Y',
`antispam` enum('Y','N') NOT NULL default 'N',
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) TYPE=MyISAM AUTO_INCREMENT=4 ;
Vytvoreni tabulek
Chyby
Tak jsem to po trech dnech rozchodil :-) Ted uz to jen vsechno pochopit. Chtel jsem si psat vsechny chyby ktery v prubehu udelam.. ale nejak jsem na to zapomel.. Ale aspon jedna z nich..
kdyz jsem vytvarek strukturu pro maildir, tak jsem ji vytvarel jako root a zapomel pak dat prava uzivateli virtual, ten se k tomu ocividne nemohl dostat.
Jinak strukura maildir je popsana tu http://cr.yp.to/proto/maildir.html v tom posledni nadpisu.
Chce to aspon tri slozky pro email koudisek@koudis.net
/home/virtual/koudis.net/koudisek/cur
/home/virtual/koudis.net/koudisek/new
/home/virtual/koudis.net/koudisek/tmp
Mozna se v necem pletu, ale uz mi to nejak zacina chodit ;-)
Dik Zdendo.
Chyby
$ cat /home/virtual/.mailfilters/koudisek\@koudis.net logfile "/home/virtual/logs/koudisek@koudis.net" `/usr/bin/test -d /home/virtual/koudis.net/koudisek/Maildir/` if ($RETURNCODE == 1) { `/bin/mkdir -p /home/virtual/koudis.net/koudisek/Maildir/cur` `/bin/mkdir -p /home/virtual/koudis.net/koudisek/Maildir/new` `/bin/mkdir -p /home/virtual/koudis.net/koudisek/Maildir/tmp` } FROM='koudisek@kodis.net' to "/home/virtual/koudis.net/koudisek/Maildir/."Místo těch mkdirů by šel použít program maildirmake.Supr
Aha, dik. Ja jsem ty filtry zatim naprosto nepochopil co vsechno tam muzu psat... jeste jsem to nehledal.
Domenovy kos
Zdravím, mel bych jede dotaz, když mam nastavene že jako virtual zpracovavam domeu xxx.yyy . mam tam v tabulce transport virtual: . maily pro domenu jedou bez problémů. A když chchi udělat 2 e-mailovky pro domenu, třeba aaa@xxx.yyy a bbb@xxx.yyy a to tak aby vše co pošlu jmenovitě na ně došlo na ty maily a jakykoliv mail co neexistuje, třeba ccc@xxx.yyy aby se mi přeposlal na aaa@xxx.yyy . Jde to? Üplně by stačilo kdyby se dala nastavit priorita zpracovávání , že by měl napřed hledat v userech a až pak ve virtualech. ovšem pak by asi byl problm s timto : http://www.zdenda.com/Mailserver-Postfix-IMAP-Maildrop-MySQL#comment-10 . Nevíte někdo jak to udělat aby to jelo?
Domenovy kos
Můžeš si udělat víc tabulek, ve kterých se bude postfix ptát v pořadí v jakém je uvedeš do main.cf:
virtual_maps = mysql:/etc/postfix/mysql-virtual.cf mysql:/etc/postfix/mysql-email.cf mysql:/etc/postfix/mysql-kos.cfStruktura tabulky bude stejná jako u postfix_virtual
Generování hesla
Heslo pro uživatele nemusíte generovat jenom programem mkpasswd, ale můžete použít i openssl (nebo funkci crypt v php, crypt("foobar",'$1$blahblah$')).
Aktualizace
Automaticka instalace
vytvoril jsem si takovej malej skript kterej provede cast instalace automaticky.. jestli chces tak ti ho sem muzu poslat.. jeste tam tedaneco dodelam.. je to delany pro debian sarge..
Ahoj, posli mi ho na email
tak nic
jsem nakonec zjistil ze je to v podstate jen snuska prikazu aptitude pro instalovani softu a pak kopirovani jiz hotovych konfiguraku, takze je to znacne zmatecny :-)
Ale jestli to nekdy dovedu do lepsi podoby tak to urcite poslu..
Přeposílání pošty
Zdravím,
lze nějak s tímto nastavením serveru dicílit toho, že budu mít třeba na serveru vloženou doménu test.cz a v ní účet /záznam v postfix_users/ test@test.cz ale aby se pošta, která na tuhle adresu přišla uložila do mailboxu, a zároveň i přeposlala dál? (nejlépe, aniž bych musel použít maildrop?)
protože tahle sktruktura mi neprošla...
postfix_transport
--------------------
domain | destiantion
test.cz | virtual:
postfix_users
email | ...
test@test.cz | ...
postfix_virtual
email | destination
test@test.cz | test@jinde.cz
takhle se ten mail jen preposle, ale do mailboxu test@test.cz ani nedorazí :/
díky
Do postfix_virtual bych stči
Do postfix_virtual bych stčil něco jako:
test@test.cz | test@test.cz, uzivatel@jinde.czPsal jsem to už o kousek dřív v diskuzi.
aby toho nebylo málo...
děkuji za odpověď.. problém byl v tom, že jsem neměl přesměrování ye stejné do stejné schránkz, nenapadlo mě, že by to mohlo být touhle drobností.
Ale aby toho nebylo málo, ještě mě trápí jedna věc:) Když pro doménu nastavím doménový koš tak ten koš "sebere" všechny maily, i když nějaké adresy tu účet mají...
v main.cf jsem zkusil dát řádek s virtual maps úplně nakonec souboru, ale to zrovna nepomohlo :)
dík za odpověď
Je celkem jedno kde je řáde
Zacykleni ?
Jaktoze v tomto pripade nedojde k zacykleni ? se to vlastne preposle z test@test.cz na treba koudis@koudis.net a test@test.cz a z toho test@test.cz opet na ty dve adresy atd dokola ne ? :) me se na jednom zpatlanym mailserveru, ktery je polepen z rucnych kusu navodu ted stava ze prave toto presmerovani udelo to ze do lokalni schranky mail ulozi v poradku jednou, ale do vzdalene tj. koudis@koudis.net prijde dvakrat :( a vubec netusim jak to eliminovat
viz log:
Apr 18 15:32:30 server postfix/smtpd[9451]: connect from mail.perfect-system.cz[82.142.65.217]
Apr 18 15:32:30 server postfix/smtpd[9451]: 614037014E: client=mail.perfect-system.cz[82.142.65.217]
Apr 18 15:32:30 server postfix/cleanup[10226]: 614037014E: message-id=<4444EA4A.8060305@cmi.cz>
Apr 18 15:32:30 server postfix/qmgr[1603]: 614037014E: from=, size=1331, nrcpt=2 (queue active)
Apr 18 15:32:30 server postfix/smtpd[9451]: disconnect from mail.perfect-system.cz[82.142.65.217]
Apr 18 15:32:32 server postfix/smtpd[9952]: connect from localhost[127.0.0.1]
Apr 18 15:32:32 server postfix/smtpd[9952]: 4E1CC70168: client=localhost[127.0.0.1]
Apr 18 15:32:32 server postfix/cleanup[10226]: 4E1CC70168: message-id=<4444EA4A.8060305@cmi.cz>
Apr 18 15:32:32 server postfix/qmgr[1603]: 4E1CC70168: from=, size=1566, nrcpt=1 (queue active)
Apr 18 15:32:32 server postfix/smtpd[9952]: disconnect from localhost[127.0.0.1]
Apr 18 15:32:32 server postfix/smtp[8968]: 614037014E: to=, orig_to=, relay=127.0.0.1[127.0.0.1], delay=2, status=sent (250 2.6.0 Ok, id=09781-04, from MTA: 250 Ok: queued as 4E1CC70168)
Apr 18 15:32:32 server postfix/smtp[10382]: 4E1CC70168: to=, relay=mail.perfect-system.cz[82.142.65.217], delay=0, status=sent (250 Ok: queued as 6E163238A8)
Apr 18 15:32:32 server postfix/qmgr[1603]: 4E1CC70168: removed
Apr 18 15:32:33 server postfix/smtpd[9952]: connect from localhost[127.0.0.1]
Apr 18 15:32:33 server postfix/smtpd[9952]: 6F50E70168: client=localhost[127.0.0.1]
Apr 18 15:32:33 server postfix/cleanup[10226]: 6F50E70168: message-id=<4444EA4A.8060305@cmi.cz>
Apr 18 15:32:33 server postfix/qmgr[1603]: 6F50E70168: from=, size=1655, nrcpt=2 (queue active)
Apr 18 15:32:33 server postfix/smtpd[9952]: disconnect from localhost[127.0.0.1]
Apr 18 15:32:33 server postfix/smtp[10199]: 614037014E: to=, relay=127.0.0.1[127.0.0.1], delay=3, status=sent (250 2.6.0 Ok, id=09520-09, from MTA: 250 Ok: queued as 6F50E70168)
Apr 18 15:32:33 server postfix/qmgr[1603]: 614037014E: removed
Apr 18 15:32:33 server postfix/virtual[9955]: 6F50E70168: to=, relay=virtual, delay=0, status=sent (delivered to maildir)
Apr 18 15:32:33 server postfix/smtp[10382]: 6F50E70168: to=, orig_to=, relay=mail.perfect-system.cz[82.142.65.217], delay=0, status=sent (250 Ok: queued as 8B074238A8)
Apr 18 15:32:33 server postfix/qmgr[1603]: 6F50E70168: removed
Apr 18 15:32:37 server courierpop3login: Connection, ip=[::ffff:194.228.230.250]
vse v puvodnim zneni snad se toho neda zneuzit :)
nechapu proc se duplikuje, kdyby nekdo vedel, tak dik moc za radu
aj
no tak ty ostry zavorky to neprezili no :( orig_to= je vzdy treba test@test.cz a to= je m.koudelka@perfect-system.cz
vyreseno
tak chyba byla jinde, v master.cf mi u amavisu chybel parametr no_adress_mapping
pardon na zaklade dotazu na
pardon na zaklade dotazu na mail, jsem to sem zrejme napsal blbe.. melo to byt nikoliv master.cf ale asi jsem mel na mysli main.cf a jde o radek:
receive_override_options = no_address_mappings
no, tak ten tvoj riadok
no, tak ten tvoj riadok no_address_mappings bolo nakopnutie spravnym smerom ;)
takze podla porekadla prve slovo plati druhe leti z gati ta opravujem:
nie do main.cf, ale ako si predtym spravne uviedol do master.cf a rovno k AMAVISD-NEW treba pridat takyto riadok
-o receive_override_options=no_address_mappings
- tym sme povedali amavisu nech sa vykasle na aliasi a nebude to dorucovat 2x...
KURNA KONECNE, drbkal som sa stym 3 dni kym som na to prisiel preco mi to zdvojuje :)
Takze dakujem ti ze si to tu spomenul aj ze si mi odpisoval na majla ;)
A tiez "SVACAovi" z tohto prispevku, kde som nasiel spravny zapis:
http://www.abclinuxu.cz/forum/show/170562
OK uz len zisti jak sa robi auto-odpoved :)
Jestli myslíš
Jestli myslíš auto-odpověď jako třeba informaci o tom že jsi na dovolené a podobně, tak se podívej na program vacation.
spam
Chcel som sa opytat ako je to zo spamom konkretne sa-learn pripadne ak zle oznaci treba spravit dalsie konto a obsah adresara davat pre sa-learn ? .. dik za radu
skript
Este jedna vec ta upravena tabulka postfix_user, md-gen hlasi chybu, nakolko sa zmenila struktura tabulky :) keby sa dalo ten skript upravit na tuto novu ...
Zkusím na tom zapracovat...
Zkusím na tom zapracovat...
uz si na tom zapracoval? ja n
uz si na tom zapracoval? ja na tom zkoncil prave ted
Ne, nemám čas.
Ne, nemám čas.
Nějak mi uteklo na co se vla
:)) Mno skript md-gen neprojd
:)) Mno skript md-gen neprojde skrz upravenu postfix_users no a ci ho chystas upravit alebo nie ;)Funguje len na predoslej ked bolo len antispam
To chápu, ale nerozumím tom
To chápu, ale nerozumím tomuhle:
Chcel som sa opytat ako je to zo spamom konkretne sa-learn pripadne ak zle oznaci treba spravit dalsie konto a obsah adresara davat pre sa-learn ? .. dik za radu
Jen tak mimochdem, ten md-gen nesmysl si můžeš opravit i ty sám, není na tom nic těžkého :-)
Nj :)) sem lazy .... kuknu na
Nj :)) sem lazy .... kuknu na to. Co sa tyka toho spamu ide mi o to ze ked ho zle oznaci kam to poslat aby sa naucil. Pred par mesiacmi nez som nasadil tvoju konfiguraciu, som mal 2 konta na ktore sa preposlal mail ktory bud neoznacil a bol spam a opacne. Tak som ho ucil ... Ucil sa z jednoho suboru v ktorom boli vsetky maile. Otazka je ked su rozdelene maile na jednotlive files, ci sa nieco meni nemam teraz cas sa k tomu dostat aby som testoval .. keby to slo tak to iba prestavim :))
P.S. chcel som mail server rozchodit na druhom serveri a stale kvaka ze mam zle heslo :( vsetko spravene podla funkcnej konfiguracie (na prvom serveri) aky je potom rozdiel ? :( . V logu vidim ako do SQL sa pripaja a selectuje, ale proste heslo je zle .. Debian sarge - testing
heslo som robil jak cez mkpasswd tak cez openssl... bez uspechu
P.S. 2 uz nebudu oxidovat :D
Aha, jestli ti jde o použit
taky
to mi delalo pri konfiguraci taky.. zkontroluj to vse znovu.. urcite tam budes mit nekde chybku.. je to blbost, ael tusim jestli to prave nebylo to ze jsem mel spatne nastaveny prava v /home/vmail resp. /home/virtual
antivir
kdy bude zpracovanej antivir?
dik
Jakmile to někdo napíše...
Jakmile to někdo napíše... v todo je ještě hromada dalších věcí a tahle není momentálně vůbec důležitá.
notifikace
Mam dotaz, lze do teto konfigurace nejak zapracovat moznost pro urcitou adresu posilat jen notifikaci o doslem emailu? Tedy ne kopii emailu, ale pouze kratkou zpravu napr. Prisel vam email od $sender... nebo tak neco...
Lze to s touto konfiguraci? Resilo by to totiz posilani napriklad na gsm brany, ktere odmitaji prijmout dlouhe zpravy nebo zpravy s prilohami.
Diky
Pokud používáš pro doruč
Pokud používáš pro doručování do schránek program maildrop, tak si můžeš nastavit téměř jakékoliv přeposílání emailů nebo jen krátkých upozornění.
notifikace
A mohl bych pozadat o priklad, jak pro jednoho uzivatele ze 100 zasilat notifikace na nejaky email? Moc maildropu nerozumim a vubec nevim jak na to.
Diky.
notifikace
Lze to tedy? Nebo mohl by mne prosim nekdo odkazat na nejaky odkaz, ktery se tim zabyva?
Diky
Lidičky, copak si neumíte p
Lidičky, copak si neumíte poradit sami? Nechce se mi odpovídat na každou kravinu, zvlášť když je to velmi dobře popsané v dokumentaci k maildropu.
notifikace
Kdybych si umel poradit sam, tak se neptam, ze jo... Jak jsem psal vubec nevim, jak maildrop funguje, takze jsem netusil, ze to umi. Diky, odkaz na dokumentaci maildropu mi bude stacit. Doufam, ze tam najdu co potrebuju.
Dik
Pěkná dokumentace je man ma
Pěkná dokumentace je
man maildropfilterjinak taky docela pomáha diskuzní fórum http://news.gmane.org/group/gmane.mail.maildropautoreply
AHoj, mohl by mi prosim nekdo poradit jak nastavit autoreply pomoci .mailfilter u jedne nebo dvou scharenek ?
Co má dělat "autoreply" a p
Co má dělat "autoreply" a proč musí být zrovna v maildropu? Co třeba použít program vacation?
automaticka odpoved
no potrebuju u dvou schranek nastavit automaticke odpovidani
nakonec jsem se dostal do stavu kdy sem u te schranky nastavil transport na maildrop s tim ze tam pak dam cc do nejakeho toho vacation na auto odpoved, jenze v logu postfixu mam user@domena.tld user unknown: invalid username
mam adresar: virtual/.mailfilters/user@domena.tld/ a v nem soubor .mailfilter a v nem polozku cc ....
nejsem si jist jestli jsem to udelal spravne
pravidla pro maildrop mám v
pravidla pro maildrop mám v souboru /home/virtual/.mailfilters/emailova@adresa
Pokud používáš nastavení podle mého návodu, tak to máš špatně.
spatne
sakra, takze ne user@domena.tld/soubor, ale uz ta adresa je soubor, no ja sem vul, jdu to zkusit predelat
oprava a stejne nic
tak jsem to opravil.
dal jsem do home/virtual/.mailfilters/test@xxxxxx.cz
a do nej ty dva radky jak je v navodu ze je to minimalni konfigurace
no a postfix mi porad zaryte vraci: :(
: user unknown. Command output: Invalid user specified.
zkousel jsem i postfix reload a ani to nepomohlo
Zalozeni uzivatele...
Znovu jsem si přečetl co ti to hlásí
: user unknown. Command output: Invalid user specified.
Máš v databázi založeného uživatele?
uzivatel v DB
Ano, uzivatel tam je, dokonce pokud nastavim transport na virtual, tak se to normalne doruci do maildir, ale pokud nastavim transport na maildrop tak nic a zkousel jsem i v prikazove radce maildrop -d user a nic :(
kontroloval jsem i konfigurak maildropu pro pristup k DB, tam je vse v poradku
jen kdyz sem zapnul --log=/var/log/mysql u DB tak sem tam nenasel zadny zaznamo tom ze by maildrop si nacital data z DB :(
Jakou verzi maildropu použí
verze
2.0.1 ted jsem dal make uninstall a jdu to zkusit znova zkonfigurovat prelozit a nainstalit
maildrop
Nemas preklep v maildropmysql.cf ? ja som sa sekol v jednom znaku, ale to ze nevidis v logu mysql ze nema ani snahu je divne.
maildrop -v by mal v jednej vete spomenut podporu mysql
maildrop -d mail@domena.cz ti vrati co ?
P.s. mne maildrop vracia toto: maildrop: signal 0x0B takze mam o zabavu postarane ...
maildrop -d
maildrop -d user@domena.tld mi vrati:
Invalid user specified.
Maildrop novějších verzí
Maildrop novějších verzí se už nekompiluje přímo proti MySQL. Je to napsané přímo v dokumentu:
UPDATE: pro novější verze maildropu nemusíte provádět překompilvání s podporou MySQL (ono to ani nejde). Konfigurace maildropu byla přesunuta do authdaemona (takže používá stejný konfigurák pro připojení k MySQL jako courier-imap)
stary maildrop
zkousel jsem to i tak i tak, no jeste tam zkusim nacpat tustarou verzi maildropu ...
autoreply - vyreseno
hotovo,
vyreseno tak, ze jsem nainstalil maildrop 1.6.3 a nastavil pro ty konkretni schranky dorucovani na maildrop (cela domena je jinak virtual)
a auto odpovedi bezi jako o zivot ;))
diky za rady
> P.s. mne maildrop vracia to
> P.s. mne maildrop vracia toto: maildrop: signal 0x0B takze mam o zabavu postarane ...
Překompiloval jsem si debianí balíček pro courier-maildrop a stalo se mi to stejné. Na nějakém fóru jsem našel info, že 0x0B je sigsegv a díky strace pak to, že v mém případě nezvládl najít konfigurák.
Původní umístění konfiguráku v debianu je totiž /etc/maildrop/maildropmysql.cf, kdežto v originálním zdroji /etc/maildropmysql.config.
Rychlé řešení mě napadá v tomto případě dvojí:
Snad to někomu helpne.
maildrop: signal 0x0B som dos
maildrop: signal 0x0B som dostaval pokial som mal v tabulke postfix_users nastavenu quotu ako NULL.
Chyba pri doruceni emailu maildropem
Jedna mensi chyba na kterou jsem prisel pri dorucovani maildropu. Pokud nekdo zasle na domenu nejaky email (To: neco@domena.cz) a jsou v emailu nastavene dalsi kopie (Cc: neco2@domena.cz) na jine emaily stejne domeny, tak z nekterych mailserveru zpracuje email spatne a doruci ho jen uzivateli To:, ale jiz to nedoruci kopie uzivatelum Cc:
Toto lze upravit parametrem v souboru main.cf:
maildrop_destination_recipient_limit = 1
Pak jiz dorucuje spravne i kopie v emailu....
Diky chlape, mel jsem uplne s
Diky chlape, mel jsem uplne stejnej problem. Pridal jsem radku a uz to funguje tak jak ma. Uz se s tim param 2 dny.
Slackware a PAM :(
Mam takovej veselej problem ve Slackware neni podpora PAM. Co s tim? Nejaky napad?
Slackware a PAM :(
Přestaň používat Slackware a nainstaluj si nějakou jinou distribuci, která PAM podporuje nebo si do Slacka PAM přidej (ale to asi nezvládneš, když se ptáš co s tím...).
Slackware a PAM :(
Aha, nedokoncil jsem myslenku. Myslel jsem jiny typ autentizace. Distribuci se mi moc menit nechtelo, ale pridavani PAM do slackware mi prijde zbytecne pracny. Vypada to na Debian. Diky za reakci. Pekny clanek.
Zdravím, je to super návod,
Zdravím, je to super návod, dokonce jsem to podle něj zvládnul i já, ale nějak to nemůžu dotáhnout do konce, protože mi funguje všechno až na vybírání virtuálních mailboxů pomocí pop3d, imap nepotřebuju. Když nastavím v konfigu pop3d MAILDIRPATH napevno pro konkrétního virtuálního uživatele, všechno proběhne v pořádku, e-mail se stáhne, ale nevím jak nastavit tu proměnou, aby to bylo univerzální pro všechny, potřebuju to pro víc virtuálních domén, používám Slackware, jestli to je důležitá informace a pop3d jsem kompiloval. Díky za odpověď a jen tak dál, je to skvělá práce.
Tak si naštěstí můžu odp
Tak si naštěstí můžu odpovědět sám:-) Zapomněl jsem v authmysqlrc upřesnit v jakém sloupci databáze se nachází cesta k maildiru, takže už to funguje.
Dorucovani lokalnim uzivatelum
Cau Zdendo,
uz te to hafo dotazu asi stve, ale jestli si najdes chvilku :)
Snazil jsem se aby kdyz v shellu na mailserveru napisu prikaz
"mail root" a poslu touto cestou mail aby byl dorucen do lokani schranky a mohl jsem si pod prihlasenym uzivatelem root precist prikazem "mail"
nejprve jsem zjistil ze mi adresy sender i recipient meni z "root" na "root@domena.tld" a timpadem se to snazil poslat "venkem"
tak jsem do tabulky postfix_access zadal "domena.tld" dorucovat do "local:" ted to sice pise v logu relay=local coz si myslim ze je ok, dokonce pise i ze se to odeslalo, ale po napsani prikazu "mail" zadny mail nedorazil.. kam teda ten mail sel ?
prikladam kus logu (snad dostatecny)
Feb 15 01:48:17 andrejka postfix/pickup[22152]: ED62B85F2: uid=0 from=
Feb 15 01:48:17 andrejka postfix/cleanup[25495]: ED62B85F2: message-id=<20060215004817.ED62B85F2@andrejka.koudis.net>
Feb 15 01:48:18 andrejka postfix/qmgr[22153]: ED62B85F2: from=, size=336, nrcpt=1 (queue active)
Feb 15 01:48:18 andrejka postfix/local[25499]: ED62B85F2: to=, orig_to=, relay=local, delay=1, status=sent (d
elivered to maildir)
Feb 15 01:48:18 andrejka postfix/qmgr[22153]: ED62B85F2: removed
P.S. jeste jsem si zkousel hrat s tabulkou postfix_alias, ale tam jsem taky nic nevykoumal, tak jsem ji zas vyprazdnil..
diky moc za radu
Koudis
omyl
postfix_access mysleno postfix_transport
druha chybka
koukam v tom logu to vynechalo vsechno adresy mezi spicatyma zavorkama :( maji tam byt.. ale to snad neni tak podstatny
uz vim kam
no tak jsem prave zjistil ze se mi ty maily dorucovali do /root/Maildir/.. mozna za par hodin zjistim i jak docilit aby se dorucovali tak abych je mohl cist prikazem "mail" :)
client restriction
takova drobnost, na tomhle radku
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject
by melo byt jeste " mysql:/etc/postfix/mysql-client.cf"
aby se v tabulce postfix_access dali omezovat clienti co se pripojuji
takze cele to bude:
smtpd_client_restrictions = check_client_access mysql:/etc/postfix/mysql-client.cf, permit_mynetworks, reject
ja to mam tedy bez SASL
amavis clamav
Pripajam konfiguraciu pre antvir ... Ak su tam nejake nezrovnalosti dajte vediet, inak toto mi funguje.
Treba nainstalovat amavis a clamav
Postfix uprava:
master.cf
smtp-amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-------
main.cf
content_filter = smtp-amavis:[127.0.0.1]:10024
-------
nastavenie amavisu:
amavisd.conf
$inet_socket_port = 10024;
$forward_method = 'smtp:127.0.0.1:10025';
$notify_method = $forward_method;
do cronu treba este pridat freshclam pre aktualizaciu ....
amavis sa da uplne upravit toto je zaklad aby to fungovalo.
pripadne to mozem niekde uplne laicky rozpisat ... ak by bol zaujem, ale zdenda to mozno skorej stihne :D
spamassasin
Zdravim, nemas k tomu zkonfigurovanyho i spamassasina ? Takhle mam taky antivir, ale spamassasin zrejme vubec nefunguje. Zkousel jsem ho nastavit aby vzdy pridaval halvicku a indexu spamu a nikdy nic neprida.. muzu ho vubec pouzivat i na odchozi maily ?
spam
spam mam normalne nakonfigurivany podla navodu co je tu + nejaky upravy. Spam ide cez maildrop ak ide mail von zoberie ho priamo postfix takze sa to na mail neaplikuje ... ale spravit by to mozna slo
spamassassin
ktery vykend tim byl myslen?
ktery vykend tim byl myslen? tetnto co prave ubehl:-D?
ktery vykend tim byl myslen?
Ano, tento co prave ubehl. Proste jsem misto toho abych sedel u pocitace a neco psal sel ven...
No ja pouzivam Sagator-a, ten
No ja pouzivam Sagator-a, ten umi jak Clamav tak Spamassasin, je napsan v pythonu ... bo perl je prasarna nenazrana ... no hlavne ze Spamassasin je taky v perlu a Clamav tak napul.
Jinak samozrejme ze Clamavd a Spamassasind, protoze jinak se server uforkuje k smrti. Na strankach Sagatoru doporucuji prejit na antispam napsany v pythonu, protoze perl ma tak o 90% vetsi CPU a pametove naroky a pri velkem zatizeni je to DOS utok
maildrop problem
maildrop je nastaveny s podporou mysql. dorucovanie mailov funguje v poriadku az na vynimku dorucenia jedneho velkeho aliasu na cca 300 lokalnych adries.
postfix vypise na niektore adresy chybovu hlasku maildropu: Invalid user specified. Uzivatel pritom existuje a ina posta sa mu doruci v poriadku.
Skusal som aj spravit skript, ktory lokalne doruci ale iba na jedno konto 3000 mailov. vsetky prejdu v poriadku. Nemal niekto podobny problem ?
Maildrop
Všechno funguje už jak má, jen maildrop zlobí :(
v postfix_virtual mam aliasy, ktery maji dorucit jeden mail na vice schranek, postfix to spravne rozpozna a vsechny ty adresy kam se ta zprava pak ma dorucit predava maildropu v tom pamarametru -d. Jenze maildrop to doruci jen do te prvni v poradi a na dalsi se uz vykasle. Slo by to nejak doladit? :(
Takhle postifix spouští maildrop:
/usr/local/courier/bin/maildrop -d info@mysh.cz sebi@mysh.cz vlada@mysh.cz
a v logu postfixe je
Feb 26 10:43:13 Holly postfix/pipe[24529]: 3EB4F5B2C5: to=, relay=maildrop, delay=5, status=sent (mysh.cz)
Feb 26 10:43:13 Holly postfix/pipe[24529]: 3EB4F5B2C5: to=, orig_to=, relay=maildrop, delay=5,status=sent (mysh.cz)
Feb 26 10:43:13 Holly postfix/pipe[24529]: 3EB4F5B2C5: to=, orig_to=, relay=maildrop, delay=5, status=sent (mysh.cz)
takže postfix nic špatně nedělá. Všechno to padne až v maildropu :(
Poradí prosím někdo, jak toto dořešit? dííky
odpovím si sám... do mai
odpovím si sám...
do main.cf bylo potřeba ještě přidat
maildrop_destination_concurrency_limit = 1
treba to nekomu dalsimu pomuze.
Prijem x odesilani mailu
Jsem se nejak zamotal.
Jsem zjistil ze jsem mel do nedavna zakomentovane radky s overeni klienta, odeilatele i prijemce. Takze v podstate verejne smtp :)
Server je umisten na vnitrni siti za NAT.
Prvnim ukolem je odesilat maily z vnitrni site. Tudiz mam nastaveny v rozsahu mynetworks toto:
mynetworks = 192.168.1.0/24 192.168.2.0/24 127.0.0.1/8
odesilani je bez problemu..
jenze pro prijem mailu se preklada na NATu vnejsi adresa na 192.168.1.1 a posila se to na mailserveru takze to zapadne do rozsahu a zas muze kazdy z venku vesele posilat.
Nevedel jsem jak tu jednu IP z toho rozsahu vykopat tak jsem ji dal zakazat pres mysql jako client_restriction na konretni IP, ale pak se mi zas vraci vsechny prichozi maily jako nedorucitelne pac vsechny chodi z teto IP adresy. Nejak mi neni jasny ten rozdil mezi prichozi a odchozi postou.
Muzete mi k tomu nekdo neco napsat ? Nebo odkaz na clanek kde je tohle konkretne vysvetleno ? Dik
uz vim co mi zpusobilo muj zm
uz vim co mi zpusobilo muj zmatek, pri odstranovani vyuziti ssl, jsem omylem odstranil i toto:
reject_unauth_destination
tudiz mi tam chodila posta ktera mi nepatrila a zatezovala spam filter
Access denied
At delam co delam, nekde mam chybu. Konfiguraci jsem celou nekolkrat prosel, ale pri prijmu mailu mi postfix hlasi
554 : Client host rejected: Access denied;
Zkousel jsem "mail user@domena.tld" a to funguje, mail se ulozi na spravne misto. Hledam bybu n vastaveni smtp, ale nemuzu najit. Nesetkal jste se s tim nekdo ?? Diky za rady.
zkus zakomentovat cast smtpd_
zkus zakomentovat cast smtpd_client_restrictions a reloadnout. Pokud ti to pak pojede, tak hledej chybu tam.... pred chvili jsem se potykal s tim stejnym.