Install Postfix dovecot with mysql backgroud -


i have spent 3 days install postfix, dovecot , mysql on vps server. has been frustrating process. have googled painfully 3 days , collected information piece piece , made combination work.

just want list steps , configuration files together, useful undergoing painful process.

  1. make mysql ready, , create database postfix (or whatever name want), create mysql user postfix , grant privilege postfix database.

create following tables:

create table virtual_domains ( id int(11) not null auto_increment, name varchar(50) not null, primary key (id) ) engine=innodb default charset=utf8;  create table virtual_aliases ( id int(11) not null auto_increment, domain_id int(11) not null, source varchar(100) not null, destination varchar(100) not null, primary key (id), foreign key (domain_id) references virtual_domains(id) on delete cascade ) engine=innodb default charset=utf8;   create table virtual_users ( id int(11) not null auto_increment, domain_id int(11) not null, password varchar(32) not null, email varchar(100) not null, maildir varchar(255) not null, primary key (id), unique key email (email), foreign key (domain_id) references virtual_domains(id) on delete cascade ) engine=innodb default charset=utf8; 

compile postfix mysql support, should see bunch of postfix configuration files:

main.cf

[root@mail postfix]#postconf -n

alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases command_directory = /var/postfix/usr/sbin compatibility_level = 2 daemon_directory = /var/postfix/usr/libexec/postfix data_directory = /var/lib/postfix debug_peer_level = 2 debugger_command = path=/bin:/usr/bin:/usr/local/bin:/usr/x11r6 /binddd   $daemon_directory/$process_name $process_id & sleep 5 home_mailbox = maildir/ html_directory = no inet_interfaces = inet_protocols = ipv4 mail_owner = postfix mail_spool_directory = /home mailq_path = /var/postfix/usr/bin/mailq manpage_directory = /usr/local/man meta_directory = /etc/postfix mydomain = myspeedshow.com myhostname = mail.yourdoamin.com mynetworks_style = host myorigin = $mydomain newaliases_path = /var/postfix/usr/bin/newaliases postscreen_greet_banner = "before smtp banner" postscreen_greet_wait = 2s postscreen_non_smtp_command_enable = no postscreen_pipelining_enable = no queue_directory = /var/spool/postfix readme_directory = no recipient_delimiter = + sample_directory = /etc/postfix sendmail_path = /var/postfix/usr/sbin/sendmail setgid_group = postdrop shlib_directory = no smtpd_banner = $myhostname esmtp $mail_name smtpd_recipient_restrictions =                             reject_invalid_hostname,<br>                                            reject_unknown_recipient_domain,                             reject_unauth_pipelining,                                   permit_mynetworks,                             reject_unauth_destination,                             reject_rbl_client zen.spamhaus.org,                              reject_rbl_client bl.spamcop.net,                              reject_rbl_client dnsbl.sorbs.net,                              reject_rbl_client cbl.abuseat.org,                             reject_rbl_client b.barracudacentral.org,                             reject_rbl_client dnsbl-1.uceprotect.net,                             permit<br> smtpd_sasl_auth_enable = yes smtpd_sasl_path = private/auth smtpd_sasl_type = dovecot smtpd_tls_auth_only = yes smtputf8_enable = no unknown_local_recipient_reject_code = 550 virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias- maps.cf,mysql:/etc/postfix/mysql-email2email.cf virtual_gid_maps = static:5000 virtual_mailbox_base = /var/vmail virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf virtual_mailbox_limit = 51200000 virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf virtual_transport = virtual virtual_uid_maps = static:5000 

master.cf

relay     unix  -       -       n       -       -       smtp flush     unix  n       -       n       1000?   0       flush trace     unix  -       -       n       -       0       bounce verify    unix  -       -       n       -       1       verify rewrite   unix  -       -       -       -       -       trivial-rewrite proxymap  unix  -       -       n       -       -       proxymap anvil     unix  -       -       n       -       1       anvil scache    unix  -       -       n       -       1       scache discard   unix  -       -       n       -       -       discard tlsmgr    unix  -       -       n       1000?   1       tlsmgr retry     unix  -       -       n       -       -       error proxywrite unix -       -       n       -       1       proxymap smtp      unix  -       -       n       -       -       smtp smtp      inet  n       -       n       -       1       postscreen smtpd     pass  -       -       n       -       -       smtpd lmtp      unix  -       -       n       -       -       lmtp cleanup   unix  n       -       n       -       0       cleanup qmgr      fifo  n       -       n       300     1       qmgr virtual    unix  -       n       n       -       -       virtual dovecot   unix  -       n       n       -       -       pipe   flags=drhu user=vmail:vmail argv=/usr/local/libexec/dovecot   /dovecot-lda -f ${sender} -d ${recipient} 

mysql-virtual-mailbox-domains.cf

user=postfix password=yourpassword host=127.0.0.1 dbname=postfix query=select name virtual_domains name='%s' 

mysql-virtual-mailbox-maps.cf

user=postfix password=yourpassword dbname=postfix query=select maildir virtual_users email='%s' 

mysql-virtual-alias-maps.cf

user=postfix password=yourpassword host=127.0.0.1 dbname=postfix query=select destination virtual_aliases source='%s' 

the next step configure dovecot.

10-auth.conf

disable_plaintext_auth = yes auth_mechanisms = plain login !include auth-sql.conf.ext comments out other !include 

auth-sql.conf.ext

passdb {       driver = sql       args = /etc/dovecot/dovecot-sql.conf.ext  }  userdb {       driver = static       args = uid=vmail gid=vmail home=/var/vmail/%d/%n } 

10-mail.conf comments out mail_location

here use maildir format store email in:

/var/vmail/domain/user/maildir/ folder, in virtual_users table, column maildir should in following format 'yourdomain.com/user/maildir/' 

if have not populated virtual_users.maildir column correctly, postfix use mailbox format, store mail belong domain file /var/vmail/1.


Comments

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

python - pip wont install .WHL files -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -