install Dovecot to configure POP IMAP server
Innholdsfortegnelse:
Dette er det andre innlegget i vår Konfigurering og konfigurering av en postserver-serie. I dette innlegget vil vi vise deg hvordan du installerer og konfigurerer Postfix og Dovecot, de to hovedkomponentene i postsystemet vårt.
Postfix er en åpen kildekodeoverføringsagent (MTA), en tjeneste som brukes til å sende og motta e-post. Dovecot er en IMAP / POP3-server og i vårt oppsett vil den også håndtere lokal levering og autentisering av brukere.
Denne opplæringen ble skrevet for Ubuntu 16.04, men de samme trinnene med små modifikasjoner bør fungere på en nyere versjon av Ubuntu.
Forutsetninger
Før du fortsetter med denne opplæringen, må du sørge for at du er logget inn som en bruker med sudo-rettigheter.
Installer Postfix og Dovecot
Dovecot-pakker i Ubuntu standardlagringsplasser er utdaterte. For å dra nytte av
imap_sieve
modulen vil vi installere Dovecot fra Dovecot-fellesskapsdatabasen.
Legg depot-GPG-nøkkelen til nøkkelring av apt kilder med følgende wget-kommando:
wget -O- https://repo.dovecot.org/DOVECOT-REPO-GPG | sudo apt-key add -
Aktiver Dovecot-fellesskapsdatabasen ved å bruke følgende kommando:
echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list
sudo apt update
sudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)"
sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"
sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql
Postfix-konfigurasjon
Vi vil sette opp Postfix for å bruke virtuelle postbokser og domener.
Start med å lage
sql
konfigurasjonsfilene som vil instruere postfiks hvordan du får tilgang til MySQL-databasen, opprettet i den første delen av denne serien.
sudo mkdir -p /etc/postfix/sql
Åpne teksteditoren din og lag følgende filer:
/etc/postfix/sql/mysql_virtual_domains_maps.cf
user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
/etc/postfix/sql/mysql_virtual_alias_maps.cf
user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT goto FROM alias, alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT goto FROM alias, alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
/etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
user = postfixadmin password = P4ssvv0rD hosts = 127.0.0.1 dbname = postfixadmin query = SELECT maildir FROM mailbox, alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'
Når SQL-konfigurasjonsfilene er opprettet, oppdaterer du hovedkonfigurasjonsfilen for postfix for å inkludere informasjon om de virtuelle domenene, brukerne og aliasene som er lagret i MySQL-databasen.
sudo postconf -e "virtual_mailbox_domains = mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf"
sudo postconf -e "virtual_alias_maps = mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf"
sudo postconf -e "virtual_mailbox_maps = mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf, mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf"
Postconf-kommandoen viser de faktiske verdiene for konfigurasjonsparametere, endrer konfigurasjonsparameterverdier eller viser annen konfigurasjonsinformasjon om Postfix-postsystemet.
Den lokale leveringsagenten vil levere innkommende e-postmeldinger til brukernes postbokser. Kjør følgende kommando for å angi Dovecots LMTP-tjeneste som en standard posttransporttransport:
sudo postconf -e "virtual_transport = lmtp:unix:private/dovecot-lmtp"
Angi TL-parametere ved å bruke det tidligere genererte Let's kryptere SSL-sertifikatet:
sudo postconf -e 'smtp_tls_security_level = may'
sudo postconf -e 'smtpd_tls_security_level = may'
sudo postconf -e 'smtp_tls_note_starttls_offer = yes'
sudo postconf -e 'smtpd_tls_loglevel = 1'
sudo postconf -e 'smtpd_tls_cert_file = /etc/letsencrypt/live/mail.linuxize.com/fullchain.pem'
sudo postconf -e 'smtpd_tls_key_file = /etc/letsencrypt/live/mail.linuxize.com/privkey.pem'
Konfigurer de autentiserte SMTP-innstillingene og del ut godkjenning til Dovecot:
sudo postconf -e 'smtpd_sasl_type = dovecot'
sudo postconf -e 'smtpd_sasl_path = private/auth'
sudo postconf -e 'smtpd_sasl_local_domain ='
sudo postconf -e 'smtpd_sasl_path = private/auth'
sudo postconf -e 'smtpd_sasl_local_domain ='
sudo postconf -e 'smtpd_sasl_security_options = noanonymous'
sudo postconf -e 'smtpd_sasl_auth_enable = yes'
sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination'
Vi må også redigere Postfix-hovedkonfigurasjonsfilen
master.cf
og aktivere innsendingsporten (
587
) og smtps-porten (
465
).
Åpne filen med teksteditoren, og fjern / kommenter / rediger følgende linjer:
/etc/postfix/master.cf
submission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=permit_sasl_authenticated, reject # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated, reject -o milter_macro_daemon_name=ORIGINATING smtps inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=permit_sasl_authenticated, reject # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated, reject -o milter_macro_daemon_name=ORIGINATING
Start postfix-tjenesten på nytt for at endringene skal tre i kraft.
sudo systemctl restart postfix
På dette tidspunktet har du konfigurert Postfix-tjenesten.
Konfigurer Dovecot
I denne delen konfigurerer vi Dovecot til å samsvare med oppsettet vårt. Forsikre deg om at du redigerer linjene uthevet i gult.
Start med å konfigurere
dovecot-sql.conf.ext
filen som instruerer Dovecot hvordan du får tilgang til databasen og hvordan du finner informasjonen om e-postkontoer.
driver = mysql connect = host=127.0.0.1 dbname=postfixadmin user=postfixadmin password=P4ssvv0rD default_pass_scheme = MD5-CRYPT iterate_query = SELECT username AS user FROM mailbox user_query = SELECT CONCAT('/var/mail/vmail/', maildir) AS home, \ CONCAT('maildir:/var/mail/vmail/', maildir) AS mail, \ 5000 AS uid, 5000 AS gid, CONCAT('*:bytes=', quota) AS quota_rule \ FROM mailbox WHERE username = '%u' AND active = 1 password_query = SELECT username AS user, password FROM mailbox \ WHERE username = '%u' AND active='1'
Ikke glem å bruke riktig MySQL-legitimasjon (dbname, bruker og passord).
Deretter redigerer du
conf.d/10-mail.conf
og rediger følgende variabler:
… mail_location = maildir:/var/mail/vmail/%d/%n… mail_uid = vmail mail_gid = vmail… first_valid_uid = 5000 last_valid_uid = 5000… mail_privileged_group = vmail… mail_plugins = quota…
For å få autentiseringen til å fungere, åpner du
conf.d/10-auth.conf
, rediger følgende linjer og inkluderer filen filen filen
auth-sql.conf.ext
:
… disable_plaintext_auth = yes… auth_mechanisms = plain login… #!include auth-system.conf.ext !include auth-sql.conf.ext…
Åpne
conf.d/10-master.conf
, og endre den på følgende måte:
… service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix }… }… service auth {… unix_listener auth-userdb { mode = 0600 user = vmail group = vmail }… unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }… }… service auth-worker { user = vmail }… service dict { unix_listener dict { mode = 0660 user = vmail group = vmail } }…
Åpne
conf.d/10-ssl.conf
og aktiver SSL / TLS.
… ssl = yes… ssl_cert = Make sure you use the correct path to the SSL certificate files.
If you have followed this series from the beginning, you should already have the
fullchain.pem
,
privkey.pem
,
dhparam.pem
files created on your server. For more information about how to create a free Let's encrypt SSL certificate and Diffie–Hellman key check this tutorial.
Thanks to Nevyn for noticing the problem and providing a solution.
… ssl = yes… ssl_cert = Make sure you use the correct path to the SSL certificate files.
If you have followed this series from the beginning, you should already have the
fullchain.pem
,
privkey.pem
,
dhparam.pem
files created on your server. For more information about how to create a free Let's encrypt SSL certificate and Diffie–Hellman key check this tutorial.
Thanks to Nevyn for noticing the problem and providing a solution.
Åpne
conf.d/20-imap.conf
og aktivere
imap_quota
plugin:
… protocol imap {… mail_plugins = $mail_plugins imap_quota… }…
Åpne
conf.d/20-lmtp.conf
og rediger den på følgende måte:
… protocol lmtp { postmaster_address = [email protected] mail_plugins = $mail_plugins }…
Definer standardpostkasser i
conf.d/20-lmtp.conf
:
… mailbox Drafts { special_use = \Drafts } mailbox Spam { special_use = \Junk auto = subscribe } mailbox Junk { special_use = \Junk }…
Det er to forskjellige typer kvotestørrelser, den ene er angitt for hele domenet og den andre per brukerpostkasse. I forrige del av denne serien har vi allerede aktivert kvotestøtten i PostfixAdmin, noe som betyr at kvoteinformasjonen blir lagret i PostfixAdmin-databasen.
Nå må vi konfigurere Dovecot til å koble seg til databasen, for å håndtere kvotegrenser og for å kjøre et skript som sender en mail til brukeren når brukers kvote overstiger en spesifisert grense.
conf.d/90-quota.conf
filen
conf.d/90-quota.conf
og endre den på følgende måte:
plugin { quota = dict:User quota::proxy::sqlquota quota_rule = *:storage=5GB quota_rule2 = Trash:storage=+100M quota_grace = 10%% quota_exceeded_message = Quota exceeded, please contact your system administrator. quota_warning = storage=100%% quota-warning 100 %u quota_warning2 = storage=95%% quota-warning 95 %u quota_warning3 = storage=90%% quota-warning 90 %u quota_warning4 = storage=85%% quota-warning 85 %u } service quota-warning { executable = script /usr/local/bin/quota-warning.sh user = vmail unix_listener quota-warning { group = vmail mode = 0660 user = vmail } } dict { sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext }
Vi må også fortelle dovecot hvordan vi får tilgang til SQL-ordboken for kvoter. Åpne
dovecot-dict-sql.conf.ext
filen og rediger følgende linjer:
… connect = host=127.0.0.1 dbname=postfixadmin user=postfixadmin password=P4ssvv0rD… map { pattern = priv/quota/storage table = quota2 username_field = username value_field = bytes } map { pattern = priv/quota/messages table = quota2 username_field = username value_field = messages }… # map { # pattern = shared/expire/$user/$mailbox # table = expires # value_field = expire_stamp # # fields { # username = $user # mailbox = $mailbox # } # }…
Forsikre deg om at du bruker riktig MySQL-legitimasjon (dbname, bruker og passord).
Lag følgende skallskript som vil sende en e-post til brukeren hvis kvoten overstiger en spesifisert grense:
/usr/local/bin/quota-warning.sh
#!/bin/sh PERCENT=$1 USER=$2 cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o "plugin/quota=dict:User quota::noenforcing:proxy::sqlquota" From: [email protected] Subject: Quota warning Your mailbox is now $PERCENT% full. EOF
Gjør skriptet kjørbart ved å kjøre følgende
chmod
kommando:
sudo chmod +x /usr/local/bin/quota-warning.sh
Endelig start dovecot-tjenesten på nytt for at endringer skal tre i kraft.
sudo systemctl restart dovecot
Konklusjon
Nå bør du ha et fullt funksjonelt postsystem. I neste del av denne serien vil vi vise deg hvordan du installerer og integrerer Rspamd.
postserver postfix dovecotDette innlegget er en del av Konfigurering og konfigurering av en postserver-serie.
Andre innlegg i denne serien:
• Konfigurer en postserver med PostfixAdmin • Installer og konfigurer Postfix og Dovecot • Installer og integrer Rspamd • Installer og konfigurer Roundcube WebmailKonfigurer og konfigurer Exchange ActiveSync på Windows Phone 7

Denne veiledningen forteller deg hvordan du konfigurerer Exchange ActiveSync på Windows Phone 7-enheten, bruker min Office 365-konto til et eksempel.
Konfigurer eller konfigurer Hotmail på iPad / iPhone / iPod Touch ved hjelp av Active Sync

Denne artikkelen viser trinn- trinnvis hvordan du konfigurerer Windows Live Hotmail på iPad, iPhone og iPod Touch ved hjelp av Active Sync.
Konfigurer og konfigurer Outlook for å jobbe med en indisk språk e-postkonto

Lær hvordan du konfigurerer og konfigurerer Outlook slik at det jobber med indiske språk. Fremgangsmåten innebærer å konfigurere e-postkontoen din ved hjelp av den vanlige IMAP-konfigurasjonen.