Feb 25, 2020
This commit is contained in:
28
jails/config/mail/.secret/dkim/ahlawat.com.dkim.key
Normal file
28
jails/config/mail/.secret/dkim/ahlawat.com.dkim.key
Normal file
@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDDECIuIzM+f5+s
|
||||
PdoTBSLGpARZkcKWboSUfLdiFsBEXkV5KLy12S6T2ja0oH5C6GfhkqpdzAsCPHKs
|
||||
SdIyJAmHj7FXnbOnP93N64E3n/wONj5cq9QAz2acKxS167DXpnSE7K+egcqI7ePL
|
||||
BBecLnKUUnSQ4JMAeUBatjnl5SsKF7pwDM1DsOYvWFpDH0BfjIlZq1JJIUnfE7pK
|
||||
b3ppdBSF0bum+/Y6TZVJdNg4fYj5k68vLeBp8PkJj60pO4B7oexLpXcz/pqkGi9a
|
||||
K5P86RzZliKMqGVAs3TmxWMskoX2Hpm1VXIg/Pht75FuaPqwkAW8FVb3Y7yvfmgU
|
||||
O7FaP423AgMBAAECggEAP7BG2LWZh7B32+8eAtPMdPsciHo1BJT1KN5HqfkvsaLu
|
||||
IA8S/nT45kF7VyKH1yS2tkoC4jk65vIBpws7XC+0BNT/3FGbVOJfc1qPiC/uRl2j
|
||||
ovJfeBw/roHKc1OPG/o3VSdKeAB8tpSlqaWeZ9oqgw8hDCSnGqJ8RqH06YEXumVO
|
||||
/59N5/kweoN1902nrsnhhY72cx/YY7TFZt+sbCs1D8rimHFX5UQUWGQgwqKeCvG2
|
||||
VmBtU+oXCBKdaR+IcJd9Oy/qkmEQZ6dDL7n/HUwOcRzuBuZoeXN9sc9z81mYEI2Q
|
||||
bYpowPOyqFArB08HjQpFndQFSyNwiVVSzaOHRUNBwQKBgQDkECi9WkyqGgVvSM6f
|
||||
fC9OTKKk5kI12j4I3aQKZSnW/eNTpaHykRhvUsr36zp58vRN4G9YDJyblgOhgr1U
|
||||
7SBwqZRLETwG0ktKDipgibWjBm+K5LfK+wWRwn/qzq494Qg2GQ/DniXqCZ6SI1s1
|
||||
wMBHS9s/VYPGaYvYrS1TD90JpwKBgQDa9R90rcyNlXTLHwYzxgjJczLKHz+0ANlR
|
||||
GORg31/VBxs94IYby+cZ/oGRjCB5syR/SaN5Z+N2w8GT0yFWN8UCJS0G4I6fGtCb
|
||||
wYWzhK2UtI4WyOH9jIdl8AYjFGRZMFJEkDPmac54jtNcqhfO/Eei9+yHq7llEnUP
|
||||
F4qKf8K9cQKBgQDEwDgVW4DGQxqrLhmrt3wsRasPLeKzCOv5xBTQLwRQiMoEkOFN
|
||||
HeYBrGCUT6gsKvCe+t+0C3VUOLA7N0pVqRkSeQoJVP3/OI9hfSUMEeHUminCnpz9
|
||||
DWB5pl2q2dGyaqAl46sY7SfyZ4gYtU3r6rU3DPdCBWlg1A+kx4pRnV7pAwKBgCOu
|
||||
fonNKOCJ0panX6NgSl5J36UAoqj62m9U1yLSRBO7LL1QsYomGGssBoFpjIFIqFH1
|
||||
9iX6wB7Cl/E3Ht+mBvzqggP05EkZXZWEW/19SaxKID2mTu260PXTv6xHznKaZU23
|
||||
Ej4iT/tlixw2u9qHUkVEkc8qNPQ7pcfn1jPrzhiBAoGBAN075cp3R9bzzfVzrFRh
|
||||
ZFWzSnWieSsOP635nj48HXKyne7gjvG1IG/HHSi3XPmRIdWTAfOYz29rWQEOaY7b
|
||||
wbNhvH7jvtq/A7/Uifh6l8cnN9TFAmN/wmKEUCloVxg1/GltXbR6UwzbJWAs40ya
|
||||
VtAxvncs1bqtPBAgfE5wwdCd
|
||||
-----END PRIVATE KEY-----
|
28
jails/config/mail/.secret/dkim/beyondbell.com.dkim.key
Normal file
28
jails/config/mail/.secret/dkim/beyondbell.com.dkim.key
Normal file
@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDYdTOGw8TvQtkr
|
||||
Z139xpQC1iXu/X+2ei7ascX6C2G8WM7NS3XphgMd0LgzEm9POoJyYP7KVjQdPK5m
|
||||
mRoZOCATmFhNPGSer96qjASHgm10GISKlUyGKRWv1mNHsLJaLwsd8ef13+qBsTvG
|
||||
pT0z2I/0OWwAuqQuZdMPuVskspF8jusycibpQ7WjqaOynPEUuRZHDLQToso02+Vd
|
||||
X3l3bU08Rz3vW7+hNjZYuzsfCTBzD91kxTGyetqg2CXyLM/dWbDFgY72zG682X0d
|
||||
CtoWoEAKdUJkPDxQeKJtqh84TsAOUvg/z3W6J7uJow9OcWsXWJcAJ/HG8gNPq4ho
|
||||
sVbc96SzAgMBAAECggEADXPTPPfjwF7uMkVdUQ1LW5XFi8HTcxrK2KqdvDmC3HrE
|
||||
d3vOGzJJ9UtodzwZENp5CvS+QQL0gDCqQhQXzCNx0uXv7vTm5/nUI9NJ4MYZWVLA
|
||||
wgAfXmMlRuVTDDyOCQ7NaRIEsYI2B9Nk/KZ+VD+MSshazvzKgVuwr1R8tp4mbpAx
|
||||
8f4xe51b5ZVqTLcnkoSR6lTmKMQruIZwQpvaGYZLjBRaBcACwYkbZksQZkx7xZdZ
|
||||
enpLcKoCc1xXg+gjlfF9HOD1e2GlYQTOgfDcQVJEIS+jjzMyiJA1BxqL8/LkafeD
|
||||
CKfx8mzd1LjyDDaAP8ruZb4Ns/6SazAPozxBSRnP2QKBgQD+uf+evckgN6+3/Bur
|
||||
egP6I4dUKw1joCo69p98388mWq+ywhIc2rquEfSoQCqjli4pG3iwBbDVxgjk08GV
|
||||
ayFaP3X3LvuqCZBktSjEJR6WUMB0kW77BigLCtbzyd2R9upp0A3CnXsmmLVL+o5n
|
||||
TD5w6cd67NPS/NGo2FyA6JQO5QKBgQDZijnfG4Yt6BdX3+WBFXNGkhdJziokmrfG
|
||||
no5p/tw+/kJfHFC017Z+EbLbcWMKL9cDzl9uMXGDy1xd8+OfolxZZEnrmt4btbmh
|
||||
wVzTPrhREwjqzwu/Y2jQwFBef+zJ+b8a1uZOFYVIWWeGCT7wirq54AslE8y0lNEF
|
||||
olBnP44TtwKBgQDyn4k50z16QXBOx4Q3fZ3CKQsigWtcZFc1GGlrEOaHesN1eeK0
|
||||
tyYu3Q1zIMM8U7SeFPuMda8sv1cDVitCPetjwaSED61IFZoCQoeU5GJQ/JODtG7I
|
||||
DOIhOm7pgHJaMJywsqoYn9WIOtYci4gOHhIvjI0jqeZNReARehwJ8P3tfQKBgEWD
|
||||
hAalNvVIat0rsJzVC+cLG+H7vT/BKOSRGhUI2bxPZ0oZNDj1jV0vrqWsz+cbbmvK
|
||||
8He32PwyaaukGaKTMUtnXq+o5zyXj1/+9/iQ3DkcCgdubeSUkZPTQFtSKYpJAiZD
|
||||
cYiWG+cImqocHj6jNhPbYfRRJWK3Ayv3uBWmG3J1AoGAGjKqKpd8+00IxElXpov9
|
||||
At2YzPZlzPQCU0+vcreGVTaO9wNdVKfc6uaeAO4D0DP9SOwEqRC9rv8FNb8DxgTB
|
||||
ryWMy8rY/CC3mhK6hnsWNRC0a1myKva2XwQ+jMKuCsznFE0N2xjizNdv2/HM2dcr
|
||||
ropb+P1w1KZyTiNbTTTC1eQ=
|
||||
-----END PRIVATE KEY-----
|
28
jails/config/mail/.secret/dkim/diyit.org.dkim.key
Normal file
28
jails/config/mail/.secret/dkim/diyit.org.dkim.key
Normal file
@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDc2cV9/D/MWdUl
|
||||
DBfKzA3zNjFbzDJd4WP1fdRRIdell57kJwyKehYCw/HxWy4+AnWj6c2fhPXI2EQp
|
||||
K3I1QjNSxV4kq+Lr2SFJuDiZvDRLzihu24N6go34R9712mbZOWWl0KyihO6E2cH8
|
||||
h6cr2iahXmAjqVtm9/mBmdnrQ2Bv0fusdpS24x3NOPs4Q5gJTadJFGBkwXb88D/+
|
||||
mBDcEUFwDul4bVQWvqHk+8EJwApGLo7YVL2F0A25FAm43rWexjb+JeTsHRqN/TaV
|
||||
ALzQPr/DQIb2wyWsTnQMnd0t8qg9ErDAKgxMDeGDRFbHr5wNMTrewQkW7yd+H0T0
|
||||
Wa97aDXbAgMBAAECggEANUp/M0VZB7BtlED0xMS0YQmko2gEh07J1gUE5IbsCFMr
|
||||
zhX2GrwW75fkm77Ky7/AL0tNiL6GqG43FFAdgOh2hfSGIQcw/IQqWiWP0tjtLZWT
|
||||
gByL/1XdeBmvnVeUFbqZ4ocWASlefMQm4Q7Csfwz8iBZxoEpQxF3LWS4huJ9NL3d
|
||||
qiI1jX5otXN0ybA6jDpridvExRwWT6KrAykUrh5f7vRGUp0I7/GltvSHS4mu24C1
|
||||
08RUPE5NjynEX/amc1urMwH3ZdOZgCx819DfQXpQts9/TejSLlLL8s4lXTsZDoab
|
||||
DiJ1zZKZEpMIheEGAWSyLtqc1QxypauVAMeM6ZgasQKBgQD88Yf1E7X8zS4hYSyu
|
||||
WHiUgrin/0febsHWZAVBTwnzpDwfY0jNnq57tiALyaVzk3vCL3a9WckpXPbQk4Yk
|
||||
Oypu1eDyGT4Xf7hrXqFTlMtkupa3Os5/MlTXOFMMs5VISsxrbVjNlvSxITXASWwr
|
||||
IYVjmhgTx8Rg3ApM5X/Tqd8XxwKBgQDfhPZ2t+4fBwhzgydKnkPWMbJ6k17tWoZu
|
||||
8tzCzrxJd/cYUmi/44sOLrFCLwaS28I4sR7iBPCeiFnnbqlv+f6uw2Xmr5jc/BsT
|
||||
md6yl2gNmow//iGFwf8lAsA1VyoFbZoAvQUMVElaxvCngifsTNqRHap8KY6xv5r/
|
||||
C6MEoGd5TQKBgQDEoPXxnEsCpHXR2Pqk5X2G5T+qyRYTYcIpaUN0i37O+cMLG2FD
|
||||
BrHY1bF/uFd3yxSP1dnWRG/OSchMSAIlNCE+W+EsEldkaRLx1HRQxwB941a6RWq1
|
||||
EmlFjTFyVEAeHJdgg3ZfC5RYBdsFCY6e0MYisW06IzcTnLodIOMHpawZjQKBgQC+
|
||||
1RVbnINXyDhl7rbQFTlTmVCJKGMmgGBAP2dNhxXoH909zbYTBmFFdYXvPJj/L1Kt
|
||||
9kKos5D/uOgRGEDfEnBnovnQL2FyYmd3n6orjerPmoBdbkoOmeeNIMEbiVSeF8oh
|
||||
EUBLG3cZYro6OXx+WctNlCdnJE/o3+6kC7pdi9lsDQKBgEtkK4RpB1OKJm6sEiWe
|
||||
hoTI6yqflpkivWtV3F8/D37LbYT5wiAsRr6AkgetB7jsi0t//thJiAUUxhtb+u4M
|
||||
1zR7i9bIRv3lU8TgYpfS/Yq3T9feZoj682LKtBMPoSgm/p5+ogzIlAU3cpjAW+A8
|
||||
2CyzbDc7K58vuzaR8RHpnzYi
|
||||
-----END PRIVATE KEY-----
|
28
jails/config/mail/.secret/dkim/diyit.space.dkim.key
Normal file
28
jails/config/mail/.secret/dkim/diyit.space.dkim.key
Normal file
@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDJE2rtl2EGU7YD
|
||||
TWSlapLqMgn02m9Valldv6u3NP5CZTwI9/xrlEZYzjArInvLE4SFx5VlgC52K92A
|
||||
tZUqs7ckZgDmMOIr1vXGP3YgzGO9NK3hqyPHlu2Twuu96rP9+CTTlU8ovun14Ucu
|
||||
b0+W3pH646kMZBc0wAAj0xg+QI0PhFphQZyHkV9laOFwx/ErCu9SdUfcUY+zouSG
|
||||
DMxPAL8pT1JS5IOVGDM7rXbAwZ1+LrHTmOD1Mi6jtYtV7/Pqga6CBpcQFa/kMvza
|
||||
idjPkVyUg4YY/9i+P9dRQMK6dJgmRSaLLaOTaYHCT6PgpWQvKhYJZsNIB+LmfdHp
|
||||
gzE4s0tfAgMBAAECggEBALtNkzVu5bp3D/1TgoV0GRZ/NjcXos32GvjxKoummZJP
|
||||
qvTPzBqKLF1c9BG6NYadz7yuhcPe+2iow9S5URJOBjOpsPy8XHJp8teRFgDHY8FD
|
||||
6RVlzhaFyRjzYZWvo6rYE7XkR7C05ktcZmoi1gi7m1AR8c7RDazdjUPRx6t1hfEE
|
||||
ubocsnwZ5McU3tHVHj8pHBM9nKaarVd3BSTydStjGOmoS+E5BR1NLMDpx3Aw9S/V
|
||||
tn1iJxxF9+GONFfCBQ/IQ4+rBbOPsICwhhhrTpJwPilzBynGQevtEHdpq6ewS2bq
|
||||
ESsgQoax70cW1TymOPOzYQvPUzJy0S68OoSMAXVr8MECgYEA755LulHIALONfQWG
|
||||
XBUT7UMaePyLDkuNoGkIDqIdqZiJf8kxDs8yWznCGim/vlnmK2hVn1nqi+omtbaG
|
||||
AsCgU9q2JnP4r0Nr7yb/L4WAHp5WxR5ifS/aOHUple9oQwfPkzpxWEGFFvN0PW7p
|
||||
4lk4lRNvI4q5zMdugpbwn4vbzEMCgYEA1tKRDfPY/9GV/dYnt433bjtlNU9j7UCc
|
||||
8iP26Rg8zjC4tzlVoZDZjov5FMG2Ifb7cLNroONATg2ivKNyRm73Le9p2KVqtvTX
|
||||
zHs1sKVJofWQ4+GzJd8MkUEXu397oTUudGV+z82Hd0iKkQBT7EYBybHl6kY4XbR1
|
||||
BS36gdW2oLUCgYBvt1LBNH3V7eCqiFfjOKSIuv9tpvjCGnGWd0GdaPIBby+0Fz47
|
||||
FFj69UvM3OgbvFg2prc8yzQyNWIE2GtUfzCAx/iipvEr7Xg2EO1q34gjPllgH9F1
|
||||
YkkQh3dzAyKOFecuUlIj/rApSipIthxvPn/F6UCoxnXnxpd8ZRkcmZ1JdwKBgQCZ
|
||||
bltb88YRMMhIPCSx3RvUB2gJ42Ijmfp+l2FKqp0DR5kmhDS86I/6V87XHGPRbm23
|
||||
2O4OQ0Eyflq1EKgV1juE+3JF4h+N/OIEkhuOxv8IRjPuDs29RsnbFPq2WB8czLcZ
|
||||
O0SPduRCNfWCCxHltzqfrAfig7TOeIz73hMFmHaP4QKBgQCN1XzjGMrL0ZlFQTM1
|
||||
ljaqWEaQ+JSzZtiVDdPcuKytyvz59OdJnag9O0TBaOY6XGG1Dbl8FJEG9KZCwYRv
|
||||
a+CKb6qHyowgu17GlWQBn2i3Ep5GOQhkR4ghvDXZPwOJfW5VbfWo4N/r3Q81kaRO
|
||||
Iovk5uipUk5dtW69hOYmq4OBxA==
|
||||
-----END PRIVATE KEY-----
|
3
jails/config/mail/dcc_conf
Normal file
3
jails/config/mail/dcc_conf
Normal file
@ -0,0 +1,3 @@
|
||||
DCCM_LOG_AT=NEVER
|
||||
DCCM_REJECT_AT=MANY
|
||||
DCCIFD_ENABLE=on
|
2
jails/config/mail/dovecot/README
Normal file
2
jails/config/mail/dovecot/README
Normal file
@ -0,0 +1,2 @@
|
||||
Configuration files go to this directory. See example configuration files in
|
||||
/usr/local/etc/dovecot/example-config/
|
21
jails/config/mail/dovecot/conf.d/10-auth.conf
Normal file
21
jails/config/mail/dovecot/conf.d/10-auth.conf
Normal file
@ -0,0 +1,21 @@
|
||||
# cache all authentication results for one hour
|
||||
auth_cache_size = 10M
|
||||
auth_cache_ttl = 1 hour
|
||||
auth_cache_negative_ttl = 1 hour
|
||||
|
||||
# only use plain username/password auth - OK since everything is over TLS
|
||||
auth_mechanisms = plain
|
||||
|
||||
# passdb specifies how users are authenticated - LDAP in my case
|
||||
passdb {
|
||||
driver = ldap
|
||||
args = /usr/local/etc/dovecot/ldap.conf.ext
|
||||
}
|
||||
|
||||
# userdb specifies the location of users' "home" directories - where their
|
||||
# mail is stored. e.g. /var/mail/vhosts/exmaple.com/user
|
||||
# %d = domain, %n = user
|
||||
userdb {
|
||||
driver = static
|
||||
args = uid=vmail gid=vmail home=/data/vhosts/%d/%n
|
||||
}
|
28
jails/config/mail/dovecot/conf.d/10-mail.conf
Normal file
28
jails/config/mail/dovecot/conf.d/10-mail.conf
Normal file
@ -0,0 +1,28 @@
|
||||
# default home directory location for all users
|
||||
mail_home = /data/vhosts/%d/%n
|
||||
|
||||
# directory to store mail. The tilda makes it relative to the *dovecot*
|
||||
# virtual home directory.
|
||||
#
|
||||
# I use mdbox - this is Dovecot's own high-performance mail store format.
|
||||
# There are other slower, more "traditional" formats you can choose from.
|
||||
# Read about them here: https://wiki2.dovecot.org/MailboxFormat
|
||||
mail_location = mdbox:~/mdbox
|
||||
|
||||
# nothing fancy - just a standard default namespace with '/' as the
|
||||
# hierarchy separator
|
||||
namespace inbox {
|
||||
separator = /
|
||||
inbox = yes
|
||||
}
|
||||
|
||||
# set this to the group that owns your vmail directory.
|
||||
mail_privileged_group = vmail
|
||||
|
||||
# these lines enable attachment deduplication. Attachments must be somewhat
|
||||
# large (64k) to store them separately from the mail store.
|
||||
mail_attachment_dir = /data/attachments
|
||||
mail_attachment_min_size = 64k
|
||||
|
||||
# we'll uncomment this after we set up Solr in the following section:
|
||||
mail_plugins = $mail_plugins fts fts_solr
|
60
jails/config/mail/dovecot/conf.d/10-master.conf
Normal file
60
jails/config/mail/dovecot/conf.d/10-master.conf
Normal file
@ -0,0 +1,60 @@
|
||||
default_client_limit = 1500
|
||||
|
||||
# to improve performance, disable fsync globally - we will enable it for
|
||||
# some specific services later on
|
||||
mail_fsync = never
|
||||
|
||||
service imap-login {
|
||||
# plain-text IMAP should only be accessible from localhost
|
||||
inet_listener imap {
|
||||
address = 127.0.0.1, ::1
|
||||
}
|
||||
inet_listener imaps {
|
||||
}
|
||||
# enable high-performance mode, described here:
|
||||
# https://wiki.dovecot.org/LoginProcess
|
||||
service_count = 0
|
||||
# set to the number of CPU cores on your server
|
||||
process_min_avail = 3
|
||||
vsz_limit = 1G
|
||||
}
|
||||
|
||||
# disable POP3 altogether
|
||||
service pop3-login {
|
||||
inet_listener pop3 {
|
||||
port = 0
|
||||
}
|
||||
inet_listener pop3s {
|
||||
port = 0
|
||||
}
|
||||
}
|
||||
|
||||
# enable semi-long-lived IMAP processes to improve performance
|
||||
service imap {
|
||||
service_count = 256
|
||||
# set to the number of CPU cores on your server
|
||||
process_min_avail = 3
|
||||
}
|
||||
|
||||
# expose an LMTP socket for postfix to deliver mail
|
||||
service lmtp {
|
||||
unix_listener /var/spool/postfix/private/dovecot-lmtp {
|
||||
group = postfix
|
||||
mode = 0600
|
||||
user = postfix
|
||||
}
|
||||
}
|
||||
|
||||
# expose an auth socket for postfix to authenticate users
|
||||
service auth {
|
||||
unix_listener /var/spool/postfix/private/auth {
|
||||
mode = 0660
|
||||
user = postfix
|
||||
group = postfix
|
||||
}
|
||||
}
|
||||
|
||||
# no need to run this as root
|
||||
service auth-worker {
|
||||
user = vmail
|
||||
}
|
11
jails/config/mail/dovecot/conf.d/10-ssl.conf
Normal file
11
jails/config/mail/dovecot/conf.d/10-ssl.conf
Normal file
@ -0,0 +1,11 @@
|
||||
# require SSL for all non-localhost connections
|
||||
ssl = required
|
||||
|
||||
ssl_cert = </mnt/certs/fullchain.pem
|
||||
ssl_key = </mnt/certs/privkeyr.pem
|
||||
|
||||
# require modern crypto - taken from Mozilla's SSL recommendations page
|
||||
#ssl_dh_parameters_length = 2048
|
||||
#ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1 TLSv1.2
|
||||
#ssl_cipher_list = ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
|
||||
ssl_prefer_server_ciphers = yes
|
7
jails/config/mail/dovecot/conf.d/15-lda.conf
Normal file
7
jails/config/mail/dovecot/conf.d/15-lda.conf
Normal file
@ -0,0 +1,7 @@
|
||||
# configuration for mail delivered by the `dovecot-lda` command. Shouldn't
|
||||
# be needed since we are using LMTP, but kept for backwards compatibility.
|
||||
protocol lda {
|
||||
# use fsync for write-safety - this deals with delivering actual mail
|
||||
mail_fsync = optimized
|
||||
mail_plugins = $mail_plugins sieve
|
||||
}
|
24
jails/config/mail/dovecot/conf.d/15-mailboxes.conf
Normal file
24
jails/config/mail/dovecot/conf.d/15-mailboxes.conf
Normal file
@ -0,0 +1,24 @@
|
||||
# define any special IMAP folders here. You can force them to be created or
|
||||
# created+subscribed automatically used the `auto` option.
|
||||
namespace inbox {
|
||||
mailbox Drafts {
|
||||
auto = subscribe
|
||||
special_use = \Drafts
|
||||
}
|
||||
mailbox Junk {
|
||||
auto = create
|
||||
special_use = \Junk
|
||||
}
|
||||
mailbox Trash {
|
||||
auto = create
|
||||
special_use = \Trash
|
||||
}
|
||||
mailbox Archive {
|
||||
auto = subscribe
|
||||
special_use = \Archive
|
||||
}
|
||||
mailbox Sent {
|
||||
auto = subscribe
|
||||
special_use = \Sent
|
||||
}
|
||||
}
|
10
jails/config/mail/dovecot/conf.d/20-imap.conf
Normal file
10
jails/config/mail/dovecot/conf.d/20-imap.conf
Normal file
@ -0,0 +1,10 @@
|
||||
# Use a longer IDLE interval to reduce network chatter and save battery
|
||||
# life. Max is 30 minutes.
|
||||
imap_idle_notify_interval = 29 mins
|
||||
|
||||
protocol imap {
|
||||
# max IMAP connections per IP address
|
||||
mail_max_userip_connections = 50
|
||||
# imap_sieve will be used for spam training by rspamd
|
||||
mail_plugins = $mail_plugins imap_sieve
|
||||
}
|
5
jails/config/mail/dovecot/conf.d/20-lmtp.conf
Normal file
5
jails/config/mail/dovecot/conf.d/20-lmtp.conf
Normal file
@ -0,0 +1,5 @@
|
||||
protocol lmtp {
|
||||
# use fsync for write-safety - this deals with delivering actual mail
|
||||
mail_fsync = optimized
|
||||
mail_plugins = $mail_plugins sieve
|
||||
}
|
14
jails/config/mail/dovecot/conf.d/20-managesieve.conf
Normal file
14
jails/config/mail/dovecot/conf.d/20-managesieve.conf
Normal file
@ -0,0 +1,14 @@
|
||||
protocols = $protocols sieve
|
||||
|
||||
# uncomment if you want remote managesieve functionality - unfortunately
|
||||
# almost no mail clients support it :(
|
||||
#
|
||||
# service managesieve-login {
|
||||
# inet_listener sieve_deprecated {
|
||||
# port = 0
|
||||
# }
|
||||
#
|
||||
# service_count = 0
|
||||
# process_min_avail = 3
|
||||
# vsz_limit = 1G
|
||||
# }
|
6
jails/config/mail/dovecot/conf.d/90-fts.conf
Normal file
6
jails/config/mail/dovecot/conf.d/90-fts.conf
Normal file
@ -0,0 +1,6 @@
|
||||
# We'll uncomment these when we set up Solr in the next section:
|
||||
plugin {
|
||||
fts_autoindex = yes
|
||||
fts = solr
|
||||
fts_solr = url=http://127.0.0.1:8983/solr/dovecot/
|
||||
}
|
18
jails/config/mail/dovecot/conf.d/90-imapsieve.conf
Normal file
18
jails/config/mail/dovecot/conf.d/90-imapsieve.conf
Normal file
@ -0,0 +1,18 @@
|
||||
plugin {
|
||||
sieve_plugins = sieve_imapsieve sieve_extprograms
|
||||
|
||||
# From elsewhere to Junk folder
|
||||
imapsieve_mailbox1_name = Junk
|
||||
imapsieve_mailbox1_causes = COPY
|
||||
imapsieve_mailbox1_before = file:/usr/local/etc/dovecot/sieve/report-spam.sieve
|
||||
|
||||
# From Junk folder to elsewhere
|
||||
imapsieve_mailbox2_name = *
|
||||
imapsieve_mailbox2_from = Junk
|
||||
imapsieve_mailbox2_causes = COPY
|
||||
imapsieve_mailbox2_before = file:/usr/local/etc/dovecot/sieve/report-ham.sieve
|
||||
|
||||
sieve_pipe_bin_dir = /usr/local/etc/dovecot/sieve
|
||||
|
||||
sieve_global_extensions = +vnd.dovecot.pipe
|
||||
}
|
21
jails/config/mail/dovecot/conf.d/90-sieve.conf
Normal file
21
jails/config/mail/dovecot/conf.d/90-sieve.conf
Normal file
@ -0,0 +1,21 @@
|
||||
plugin {
|
||||
# location of users' sieve directory and their "active" sieve script
|
||||
sieve = file:~/sieve;active=~/.dovecot.sieve
|
||||
|
||||
# directory of global sieve scripts to run before and after processing ALL
|
||||
# incoming mail
|
||||
sieve_before = /usr/local/etc/dovecot/sieve-before.d
|
||||
sieve_after = /usr/local/etc/dovecot/sieve-after.d
|
||||
|
||||
# make sieve aware of user+tag@domain.tld aliases
|
||||
recipient_delimiter = +
|
||||
|
||||
# maximum size of all user's sieve scripts
|
||||
sieve_quota_max_storage = 50M
|
||||
}
|
||||
# We'll uncomment these when we set up Solr in the next section:
|
||||
# plugin {
|
||||
# fts_autoindex = yes
|
||||
# fts = solr
|
||||
# fts_solr = url=http://127.0.0.1:8983/solr/dovecot/
|
||||
# }
|
9
jails/config/mail/dovecot/dovecot.conf
Normal file
9
jails/config/mail/dovecot/dovecot.conf
Normal file
@ -0,0 +1,9 @@
|
||||
# IMAP for remote access, LMTP for local delivery
|
||||
protocols = imap lmtp
|
||||
|
||||
# set these to the uid of your `vmail` user
|
||||
first_valid_uid = 145
|
||||
last_valid_uid = 145
|
||||
|
||||
!include conf.d/*.conf
|
||||
!include_try local.conf
|
128
jails/config/mail/dovecot/example-config/conf.d/10-auth.conf
Normal file
128
jails/config/mail/dovecot/example-config/conf.d/10-auth.conf
Normal file
@ -0,0 +1,128 @@
|
||||
##
|
||||
## Authentication processes
|
||||
##
|
||||
|
||||
# Disable LOGIN command and all other plaintext authentications unless
|
||||
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
|
||||
# matches the local IP (ie. you're connecting from the same computer), the
|
||||
# connection is considered secure and plaintext authentication is allowed.
|
||||
# See also ssl=required setting.
|
||||
#disable_plaintext_auth = yes
|
||||
|
||||
# Authentication cache size (e.g. 10M). 0 means it's disabled. Note that
|
||||
# bsdauth, PAM and vpopmail require cache_key to be set for caching to be used.
|
||||
#auth_cache_size = 0
|
||||
# Time to live for cached data. After TTL expires the cached record is no
|
||||
# longer used, *except* if the main database lookup returns internal failure.
|
||||
# We also try to handle password changes automatically: If user's previous
|
||||
# authentication was successful, but this one wasn't, the cache isn't used.
|
||||
# For now this works only with plaintext authentication.
|
||||
#auth_cache_ttl = 1 hour
|
||||
# TTL for negative hits (user not found, password mismatch).
|
||||
# 0 disables caching them completely.
|
||||
#auth_cache_negative_ttl = 1 hour
|
||||
|
||||
# Space separated list of realms for SASL authentication mechanisms that need
|
||||
# them. You can leave it empty if you don't want to support multiple realms.
|
||||
# Many clients simply use the first one listed here, so keep the default realm
|
||||
# first.
|
||||
#auth_realms =
|
||||
|
||||
# Default realm/domain to use if none was specified. This is used for both
|
||||
# SASL realms and appending @domain to username in plaintext logins.
|
||||
#auth_default_realm =
|
||||
|
||||
# List of allowed characters in username. If the user-given username contains
|
||||
# a character not listed in here, the login automatically fails. This is just
|
||||
# an extra check to make sure user can't exploit any potential quote escaping
|
||||
# vulnerabilities with SQL/LDAP databases. If you want to allow all characters,
|
||||
# set this value to empty.
|
||||
#auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
|
||||
|
||||
# Username character translations before it's looked up from databases. The
|
||||
# value contains series of from -> to characters. For example "#@/@" means
|
||||
# that '#' and '/' characters are translated to '@'.
|
||||
#auth_username_translation =
|
||||
|
||||
# Username formatting before it's looked up from databases. You can use
|
||||
# the standard variables here, eg. %Lu would lowercase the username, %n would
|
||||
# drop away the domain if it was given, or "%n-AT-%d" would change the '@' into
|
||||
# "-AT-". This translation is done after auth_username_translation changes.
|
||||
#auth_username_format = %Lu
|
||||
|
||||
# If you want to allow master users to log in by specifying the master
|
||||
# username within the normal username string (ie. not using SASL mechanism's
|
||||
# support for it), you can specify the separator character here. The format
|
||||
# is then <username><separator><master username>. UW-IMAP uses "*" as the
|
||||
# separator, so that could be a good choice.
|
||||
#auth_master_user_separator =
|
||||
|
||||
# Username to use for users logging in with ANONYMOUS SASL mechanism
|
||||
#auth_anonymous_username = anonymous
|
||||
|
||||
# Maximum number of dovecot-auth worker processes. They're used to execute
|
||||
# blocking passdb and userdb queries (eg. MySQL and PAM). They're
|
||||
# automatically created and destroyed as needed.
|
||||
#auth_worker_max_count = 30
|
||||
|
||||
# Host name to use in GSSAPI principal names. The default is to use the
|
||||
# name returned by gethostname(). Use "$ALL" (with quotes) to allow all keytab
|
||||
# entries.
|
||||
#auth_gssapi_hostname =
|
||||
|
||||
# Kerberos keytab to use for the GSSAPI mechanism. Will use the system
|
||||
# default (usually /etc/krb5.keytab) if not specified. You may need to change
|
||||
# the auth service to run as root to be able to read this file.
|
||||
#auth_krb5_keytab =
|
||||
|
||||
# Do NTLM and GSS-SPNEGO authentication using Samba's winbind daemon and
|
||||
# ntlm_auth helper. <doc/wiki/Authentication/Mechanisms/Winbind.txt>
|
||||
#auth_use_winbind = no
|
||||
|
||||
# Path for Samba's ntlm_auth helper binary.
|
||||
#auth_winbind_helper_path = /usr/bin/ntlm_auth
|
||||
|
||||
# Time to delay before replying to failed authentications.
|
||||
#auth_failure_delay = 2 secs
|
||||
|
||||
# Require a valid SSL client certificate or the authentication fails.
|
||||
#auth_ssl_require_client_cert = no
|
||||
|
||||
# Take the username from client's SSL certificate, using
|
||||
# X509_NAME_get_text_by_NID() which returns the subject's DN's
|
||||
# CommonName.
|
||||
#auth_ssl_username_from_cert = no
|
||||
|
||||
# Space separated list of wanted authentication mechanisms:
|
||||
# plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
|
||||
# gss-spnego
|
||||
# NOTE: See also disable_plaintext_auth setting.
|
||||
auth_mechanisms = plain
|
||||
|
||||
##
|
||||
## Password and user databases
|
||||
##
|
||||
|
||||
#
|
||||
# Password database is used to verify user's password (and nothing more).
|
||||
# You can have multiple passdbs and userdbs. This is useful if you want to
|
||||
# allow both system users (/etc/passwd) and virtual users to login without
|
||||
# duplicating the system users into virtual database.
|
||||
#
|
||||
# <doc/wiki/PasswordDatabase.txt>
|
||||
#
|
||||
# User database specifies where mails are located and what user/group IDs
|
||||
# own them. For single-UID configuration use "static" userdb.
|
||||
#
|
||||
# <doc/wiki/UserDatabase.txt>
|
||||
|
||||
#!include auth-deny.conf.ext
|
||||
#!include auth-master.conf.ext
|
||||
|
||||
!include auth-system.conf.ext
|
||||
#!include auth-sql.conf.ext
|
||||
#!include auth-ldap.conf.ext
|
||||
#!include auth-passwdfile.conf.ext
|
||||
#!include auth-checkpassword.conf.ext
|
||||
#!include auth-vpopmail.conf.ext
|
||||
#!include auth-static.conf.ext
|
@ -0,0 +1,60 @@
|
||||
##
|
||||
## Director-specific settings.
|
||||
##
|
||||
|
||||
# Director can be used by Dovecot proxy to keep a temporary user -> mail server
|
||||
# mapping. As long as user has simultaneous connections, the user is always
|
||||
# redirected to the same server. Each proxy server is running its own director
|
||||
# process, and the directors are communicating the state to each others.
|
||||
# Directors are mainly useful with NFS-like setups.
|
||||
|
||||
# List of IPs or hostnames to all director servers, including ourself.
|
||||
# Ports can be specified as ip:port. The default port is the same as
|
||||
# what director service's inet_listener is using.
|
||||
#director_servers =
|
||||
|
||||
# List of IPs or hostnames to all backend mail servers. Ranges are allowed
|
||||
# too, like 10.0.0.10-10.0.0.30.
|
||||
#director_mail_servers =
|
||||
|
||||
# How long to redirect users to a specific server after it no longer has
|
||||
# any connections.
|
||||
#director_user_expire = 15 min
|
||||
|
||||
# How the username is translated before being hashed. Useful values include
|
||||
# %Ln if user can log in with or without @domain, %Ld if mailboxes are shared
|
||||
# within domain.
|
||||
#director_username_hash = %Lu
|
||||
|
||||
# To enable director service, uncomment the modes and assign a port.
|
||||
service director {
|
||||
unix_listener login/director {
|
||||
#mode = 0666
|
||||
}
|
||||
fifo_listener login/proxy-notify {
|
||||
#mode = 0666
|
||||
}
|
||||
unix_listener director-userdb {
|
||||
#mode = 0600
|
||||
}
|
||||
inet_listener {
|
||||
#port =
|
||||
}
|
||||
}
|
||||
|
||||
# Enable director for the wanted login services by telling them to
|
||||
# connect to director socket instead of the default login socket:
|
||||
service imap-login {
|
||||
#executable = imap-login director
|
||||
}
|
||||
service pop3-login {
|
||||
#executable = pop3-login director
|
||||
}
|
||||
service submission-login {
|
||||
#executable = submission-login director
|
||||
}
|
||||
|
||||
# Enable director for LMTP proxying:
|
||||
protocol lmtp {
|
||||
#auth_socket_path = director-userdb
|
||||
}
|
109
jails/config/mail/dovecot/example-config/conf.d/10-logging.conf
Normal file
109
jails/config/mail/dovecot/example-config/conf.d/10-logging.conf
Normal file
@ -0,0 +1,109 @@
|
||||
##
|
||||
## Log destination.
|
||||
##
|
||||
|
||||
# Log file to use for error messages. "syslog" logs to syslog,
|
||||
# /dev/stderr logs to stderr.
|
||||
#log_path = syslog
|
||||
|
||||
# Log file to use for informational messages. Defaults to log_path.
|
||||
#info_log_path =
|
||||
# Log file to use for debug messages. Defaults to info_log_path.
|
||||
#debug_log_path =
|
||||
|
||||
# Syslog facility to use if you're logging to syslog. Usually if you don't
|
||||
# want to use "mail", you'll use local0..local7. Also other standard
|
||||
# facilities are supported.
|
||||
#syslog_facility = mail
|
||||
|
||||
##
|
||||
## Logging verbosity and debugging.
|
||||
##
|
||||
|
||||
# Log filter is a space-separated list conditions. If any of the conditions
|
||||
# match, the log filter matches (i.e. they're ORed together). Parenthesis
|
||||
# are supported if multiple conditions need to be matched together.
|
||||
# Supported conditions are:
|
||||
# event:<name wildcard> - Match event name. '*' and '?' wildcards supported.
|
||||
# source:<filename>[:<line number>] - Match source code filename [and line]
|
||||
# field:<key>=<value wildcard> - Match field key to a value. Can be specified
|
||||
# multiple times to match multiple keys.
|
||||
# cat[egory]:<value> - Match a category. Can be specified multiple times to
|
||||
# match multiple categories.
|
||||
# For example: event:http_request_* (cat:error cat:storage)
|
||||
|
||||
# Filter to specify what debug logging to enable. This will eventually replace
|
||||
# mail_debug and auth_debug settings.
|
||||
#log_debug =
|
||||
|
||||
# Crash after logging a matching event. For example category:error will crash
|
||||
# any time an error is logged, which can be useful for debugging.
|
||||
#log_core_filter =
|
||||
|
||||
# Log unsuccessful authentication attempts and the reasons why they failed.
|
||||
#auth_verbose = no
|
||||
|
||||
# In case of password mismatches, log the attempted password. Valid values are
|
||||
# no, plain and sha1. sha1 can be useful for detecting brute force password
|
||||
# attempts vs. user simply trying the same password over and over again.
|
||||
# You can also truncate the value to n chars by appending ":n" (e.g. sha1:6).
|
||||
#auth_verbose_passwords = no
|
||||
|
||||
# Even more verbose logging for debugging purposes. Shows for example SQL
|
||||
# queries.
|
||||
#auth_debug = no
|
||||
|
||||
# In case of password mismatches, log the passwords and used scheme so the
|
||||
# problem can be debugged. Enabling this also enables auth_debug.
|
||||
#auth_debug_passwords = no
|
||||
|
||||
# Enable mail process debugging. This can help you figure out why Dovecot
|
||||
# isn't finding your mails.
|
||||
#mail_debug = no
|
||||
|
||||
# Show protocol level SSL errors.
|
||||
#verbose_ssl = no
|
||||
|
||||
# mail_log plugin provides more event logging for mail processes.
|
||||
plugin {
|
||||
# Events to log. Also available: flag_change append
|
||||
#mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename
|
||||
# Available fields: uid, box, msgid, from, subject, size, vsize, flags
|
||||
# size and vsize are available only for expunge and copy events.
|
||||
#mail_log_fields = uid box msgid size
|
||||
}
|
||||
|
||||
##
|
||||
## Log formatting.
|
||||
##
|
||||
|
||||
# Prefix for each line written to log file. % codes are in strftime(3)
|
||||
# format.
|
||||
#log_timestamp = "%b %d %H:%M:%S "
|
||||
|
||||
# Space-separated list of elements we want to log. The elements which have
|
||||
# a non-empty variable value are joined together to form a comma-separated
|
||||
# string.
|
||||
#login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c
|
||||
|
||||
# Login log format. %s contains login_log_format_elements string, %$ contains
|
||||
# the data we want to log.
|
||||
#login_log_format = %$: %s
|
||||
|
||||
# Log prefix for mail processes. See doc/wiki/Variables.txt for list of
|
||||
# possible variables you can use.
|
||||
#mail_log_prefix = "%s(%u)<%{pid}><%{session}>: "
|
||||
|
||||
# Format to use for logging mail deliveries:
|
||||
# %$ - Delivery status message (e.g. "saved to INBOX")
|
||||
# %m / %{msgid} - Message-ID
|
||||
# %s / %{subject} - Subject
|
||||
# %f / %{from} - From address
|
||||
# %p / %{size} - Physical size
|
||||
# %w / %{vsize} - Virtual size
|
||||
# %e / %{from_envelope} - MAIL FROM envelope
|
||||
# %{to_envelope} - RCPT TO envelope
|
||||
# %{delivery_time} - How many milliseconds it took to deliver the mail
|
||||
# %{session_time} - How long LMTP session took, not including delivery_time
|
||||
# %{storage_id} - Backend-specific ID for mail, e.g. Maildir filename
|
||||
#deliver_log_format = msgid=%m: %$
|
414
jails/config/mail/dovecot/example-config/conf.d/10-mail.conf
Normal file
414
jails/config/mail/dovecot/example-config/conf.d/10-mail.conf
Normal file
@ -0,0 +1,414 @@
|
||||
##
|
||||
## Mailbox locations and namespaces
|
||||
##
|
||||
|
||||
# Location for users' mailboxes. The default is empty, which means that Dovecot
|
||||
# tries to find the mailboxes automatically. This won't work if the user
|
||||
# doesn't yet have any mail, so you should explicitly tell Dovecot the full
|
||||
# location.
|
||||
#
|
||||
# If you're using mbox, giving a path to the INBOX file (eg. /var/mail/%u)
|
||||
# isn't enough. You'll also need to tell Dovecot where the other mailboxes are
|
||||
# kept. This is called the "root mail directory", and it must be the first
|
||||
# path given in the mail_location setting.
|
||||
#
|
||||
# There are a few special variables you can use, eg.:
|
||||
#
|
||||
# %u - username
|
||||
# %n - user part in user@domain, same as %u if there's no domain
|
||||
# %d - domain part in user@domain, empty if there's no domain
|
||||
# %h - home directory
|
||||
#
|
||||
# See doc/wiki/Variables.txt for full list. Some examples:
|
||||
#
|
||||
# mail_location = maildir:~/Maildir
|
||||
# mail_location = mbox:~/mail:INBOX=/var/mail/%u
|
||||
# mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
|
||||
#
|
||||
# <doc/wiki/MailLocation.txt>
|
||||
#
|
||||
#mail_location =
|
||||
|
||||
# If you need to set multiple mailbox locations or want to change default
|
||||
# namespace settings, you can do it by defining namespace sections.
|
||||
#
|
||||
# You can have private, shared and public namespaces. Private namespaces
|
||||
# are for user's personal mails. Shared namespaces are for accessing other
|
||||
# users' mailboxes that have been shared. Public namespaces are for shared
|
||||
# mailboxes that are managed by sysadmin. If you create any shared or public
|
||||
# namespaces you'll typically want to enable ACL plugin also, otherwise all
|
||||
# users can access all the shared mailboxes, assuming they have permissions
|
||||
# on filesystem level to do so.
|
||||
namespace inbox {
|
||||
# Namespace type: private, shared or public
|
||||
#type = private
|
||||
|
||||
# Hierarchy separator to use. You should use the same separator for all
|
||||
# namespaces or some clients get confused. '/' is usually a good one.
|
||||
# The default however depends on the underlying mail storage format.
|
||||
#separator =
|
||||
|
||||
# Prefix required to access this namespace. This needs to be different for
|
||||
# all namespaces. For example "Public/".
|
||||
#prefix =
|
||||
|
||||
# Physical location of the mailbox. This is in same format as
|
||||
# mail_location, which is also the default for it.
|
||||
#location =
|
||||
|
||||
# There can be only one INBOX, and this setting defines which namespace
|
||||
# has it.
|
||||
inbox = yes
|
||||
|
||||
# If namespace is hidden, it's not advertised to clients via NAMESPACE
|
||||
# extension. You'll most likely also want to set list=no. This is mostly
|
||||
# useful when converting from another server with different namespaces which
|
||||
# you want to deprecate but still keep working. For example you can create
|
||||
# hidden namespaces with prefixes "~/mail/", "~%u/mail/" and "mail/".
|
||||
#hidden = no
|
||||
|
||||
# Show the mailboxes under this namespace with LIST command. This makes the
|
||||
# namespace visible for clients that don't support NAMESPACE extension.
|
||||
# "children" value lists child mailboxes, but hides the namespace prefix.
|
||||
#list = yes
|
||||
|
||||
# Namespace handles its own subscriptions. If set to "no", the parent
|
||||
# namespace handles them (empty prefix should always have this as "yes")
|
||||
#subscriptions = yes
|
||||
|
||||
# See 15-mailboxes.conf for definitions of special mailboxes.
|
||||
}
|
||||
|
||||
# Example shared namespace configuration
|
||||
#namespace {
|
||||
#type = shared
|
||||
#separator = /
|
||||
|
||||
# Mailboxes are visible under "shared/user@domain/"
|
||||
# %%n, %%d and %%u are expanded to the destination user.
|
||||
#prefix = shared/%%u/
|
||||
|
||||
# Mail location for other users' mailboxes. Note that %variables and ~/
|
||||
# expands to the logged in user's data. %%n, %%d, %%u and %%h expand to the
|
||||
# destination user's data.
|
||||
#location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
|
||||
|
||||
# Use the default namespace for saving subscriptions.
|
||||
#subscriptions = no
|
||||
|
||||
# List the shared/ namespace only if there are visible shared mailboxes.
|
||||
#list = children
|
||||
#}
|
||||
# Should shared INBOX be visible as "shared/user" or "shared/user/INBOX"?
|
||||
#mail_shared_explicit_inbox = no
|
||||
|
||||
# System user and group used to access mails. If you use multiple, userdb
|
||||
# can override these by returning uid or gid fields. You can use either numbers
|
||||
# or names. <doc/wiki/UserIds.txt>
|
||||
#mail_uid =
|
||||
#mail_gid =
|
||||
|
||||
# Group to enable temporarily for privileged operations. Currently this is
|
||||
# used only with INBOX when either its initial creation or dotlocking fails.
|
||||
# Typically this is set to "mail" to give access to /var/mail.
|
||||
#mail_privileged_group =
|
||||
|
||||
# Grant access to these supplementary groups for mail processes. Typically
|
||||
# these are used to set up access to shared mailboxes. Note that it may be
|
||||
# dangerous to set these if users can create symlinks (e.g. if "mail" group is
|
||||
# set here, ln -s /var/mail ~/mail/var could allow a user to delete others'
|
||||
# mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it).
|
||||
#mail_access_groups =
|
||||
|
||||
# Allow full filesystem access to clients. There's no access checks other than
|
||||
# what the operating system does for the active UID/GID. It works with both
|
||||
# maildir and mboxes, allowing you to prefix mailboxes names with eg. /path/
|
||||
# or ~user/.
|
||||
#mail_full_filesystem_access = no
|
||||
|
||||
# Dictionary for key=value mailbox attributes. This is used for example by
|
||||
# URLAUTH and METADATA extensions.
|
||||
#mail_attribute_dict =
|
||||
|
||||
# A comment or note that is associated with the server. This value is
|
||||
# accessible for authenticated users through the IMAP METADATA server
|
||||
# entry "/shared/comment".
|
||||
#mail_server_comment = ""
|
||||
|
||||
# Indicates a method for contacting the server administrator. According to
|
||||
# RFC 5464, this value MUST be a URI (e.g., a mailto: or tel: URL), but that
|
||||
# is currently not enforced. Use for example mailto:admin@example.com. This
|
||||
# value is accessible for authenticated users through the IMAP METADATA server
|
||||
# entry "/shared/admin".
|
||||
#mail_server_admin =
|
||||
|
||||
##
|
||||
## Mail processes
|
||||
##
|
||||
|
||||
# Don't use mmap() at all. This is required if you store indexes to shared
|
||||
# filesystems (NFS or clustered filesystem).
|
||||
#mmap_disable = no
|
||||
|
||||
# Rely on O_EXCL to work when creating dotlock files. NFS supports O_EXCL
|
||||
# since version 3, so this should be safe to use nowadays by default.
|
||||
#dotlock_use_excl = yes
|
||||
|
||||
# When to use fsync() or fdatasync() calls:
|
||||
# optimized (default): Whenever necessary to avoid losing important data
|
||||
# always: Useful with e.g. NFS when write()s are delayed
|
||||
# never: Never use it (best performance, but crashes can lose data)
|
||||
#mail_fsync = optimized
|
||||
|
||||
# Locking method for index files. Alternatives are fcntl, flock and dotlock.
|
||||
# Dotlocking uses some tricks which may create more disk I/O than other locking
|
||||
# methods. NFS users: flock doesn't work, remember to change mmap_disable.
|
||||
#lock_method = fcntl
|
||||
|
||||
# Directory where mails can be temporarily stored. Usually it's used only for
|
||||
# mails larger than >= 128 kB. It's used by various parts of Dovecot, for
|
||||
# example LDA/LMTP while delivering large mails or zlib plugin for keeping
|
||||
# uncompressed mails.
|
||||
#mail_temp_dir = /tmp
|
||||
|
||||
# Valid UID range for users, defaults to 500 and above. This is mostly
|
||||
# to make sure that users can't log in as daemons or other system users.
|
||||
# Note that denying root logins is hardcoded to dovecot binary and can't
|
||||
# be done even if first_valid_uid is set to 0.
|
||||
#first_valid_uid = 500
|
||||
#last_valid_uid = 0
|
||||
|
||||
# Valid GID range for users, defaults to non-root/wheel. Users having
|
||||
# non-valid GID as primary group ID aren't allowed to log in. If user
|
||||
# belongs to supplementary groups with non-valid GIDs, those groups are
|
||||
# not set.
|
||||
#first_valid_gid = 1
|
||||
#last_valid_gid = 0
|
||||
|
||||
# Maximum allowed length for mail keyword name. It's only forced when trying
|
||||
# to create new keywords.
|
||||
#mail_max_keyword_length = 50
|
||||
|
||||
# ':' separated list of directories under which chrooting is allowed for mail
|
||||
# processes (ie. /var/mail will allow chrooting to /var/mail/foo/bar too).
|
||||
# This setting doesn't affect login_chroot, mail_chroot or auth chroot
|
||||
# settings. If this setting is empty, "/./" in home dirs are ignored.
|
||||
# WARNING: Never add directories here which local users can modify, that
|
||||
# may lead to root exploit. Usually this should be done only if you don't
|
||||
# allow shell access for users. <doc/wiki/Chrooting.txt>
|
||||
#valid_chroot_dirs =
|
||||
|
||||
# Default chroot directory for mail processes. This can be overridden for
|
||||
# specific users in user database by giving /./ in user's home directory
|
||||
# (eg. /home/./user chroots into /home). Note that usually there is no real
|
||||
# need to do chrooting, Dovecot doesn't allow users to access files outside
|
||||
# their mail directory anyway. If your home directories are prefixed with
|
||||
# the chroot directory, append "/." to mail_chroot. <doc/wiki/Chrooting.txt>
|
||||
#mail_chroot =
|
||||
|
||||
# UNIX socket path to master authentication server to find users.
|
||||
# This is used by imap (for shared users) and lda.
|
||||
#auth_socket_path = /var/run/dovecot/auth-userdb
|
||||
|
||||
# Directory where to look up mail plugins.
|
||||
#mail_plugin_dir = /usr/lib/dovecot
|
||||
|
||||
# Space separated list of plugins to load for all services. Plugins specific to
|
||||
# IMAP, LDA, etc. are added to this list in their own .conf files.
|
||||
#mail_plugins =
|
||||
|
||||
##
|
||||
## Mailbox handling optimizations
|
||||
##
|
||||
|
||||
# Mailbox list indexes can be used to optimize IMAP STATUS commands. They are
|
||||
# also required for IMAP NOTIFY extension to be enabled.
|
||||
#mailbox_list_index = yes
|
||||
|
||||
# Trust mailbox list index to be up-to-date. This reduces disk I/O at the cost
|
||||
# of potentially returning out-of-date results after e.g. server crashes.
|
||||
# The results will be automatically fixed once the folders are opened.
|
||||
#mailbox_list_index_very_dirty_syncs = yes
|
||||
|
||||
# Should INBOX be kept up-to-date in the mailbox list index? By default it's
|
||||
# not, because most of the mailbox accesses will open INBOX anyway.
|
||||
#mailbox_list_index_include_inbox = no
|
||||
|
||||
# The minimum number of mails in a mailbox before updates are done to cache
|
||||
# file. This allows optimizing Dovecot's behavior to do less disk writes at
|
||||
# the cost of more disk reads.
|
||||
#mail_cache_min_mail_count = 0
|
||||
|
||||
# When IDLE command is running, mailbox is checked once in a while to see if
|
||||
# there are any new mails or other changes. This setting defines the minimum
|
||||
# time to wait between those checks. Dovecot can also use inotify and
|
||||
# kqueue to find out immediately when changes occur.
|
||||
#mailbox_idle_check_interval = 30 secs
|
||||
|
||||
# Save mails with CR+LF instead of plain LF. This makes sending those mails
|
||||
# take less CPU, especially with sendfile() syscall with Linux and FreeBSD.
|
||||
# But it also creates a bit more disk I/O which may just make it slower.
|
||||
# Also note that if other software reads the mboxes/maildirs, they may handle
|
||||
# the extra CRs wrong and cause problems.
|
||||
#mail_save_crlf = no
|
||||
|
||||
# Max number of mails to keep open and prefetch to memory. This only works with
|
||||
# some mailbox formats and/or operating systems.
|
||||
#mail_prefetch_count = 0
|
||||
|
||||
# How often to scan for stale temporary files and delete them (0 = never).
|
||||
# These should exist only after Dovecot dies in the middle of saving mails.
|
||||
#mail_temp_scan_interval = 1w
|
||||
|
||||
# How many slow mail accesses sorting can perform before it returns failure.
|
||||
# With IMAP the reply is: NO [LIMIT] Requested sort would have taken too long.
|
||||
# The untagged SORT reply is still returned, but it's likely not correct.
|
||||
#mail_sort_max_read_count = 0
|
||||
|
||||
protocol !indexer-worker {
|
||||
# If folder vsize calculation requires opening more than this many mails from
|
||||
# disk (i.e. mail sizes aren't in cache already), return failure and finish
|
||||
# the calculation via indexer process. Disabled by default. This setting must
|
||||
# be 0 for indexer-worker processes.
|
||||
#mail_vsize_bg_after_count = 0
|
||||
}
|
||||
|
||||
##
|
||||
## Maildir-specific settings
|
||||
##
|
||||
|
||||
# By default LIST command returns all entries in maildir beginning with a dot.
|
||||
# Enabling this option makes Dovecot return only entries which are directories.
|
||||
# This is done by stat()ing each entry, so it causes more disk I/O.
|
||||
# (For systems setting struct dirent->d_type, this check is free and it's
|
||||
# done always regardless of this setting)
|
||||
#maildir_stat_dirs = no
|
||||
|
||||
# When copying a message, do it with hard links whenever possible. This makes
|
||||
# the performance much better, and it's unlikely to have any side effects.
|
||||
#maildir_copy_with_hardlinks = yes
|
||||
|
||||
# Assume Dovecot is the only MUA accessing Maildir: Scan cur/ directory only
|
||||
# when its mtime changes unexpectedly or when we can't find the mail otherwise.
|
||||
#maildir_very_dirty_syncs = no
|
||||
|
||||
# If enabled, Dovecot doesn't use the S=<size> in the Maildir filenames for
|
||||
# getting the mail's physical size, except when recalculating Maildir++ quota.
|
||||
# This can be useful in systems where a lot of the Maildir filenames have a
|
||||
# broken size. The performance hit for enabling this is very small.
|
||||
#maildir_broken_filename_sizes = no
|
||||
|
||||
# Always move mails from new/ directory to cur/, even when the \Recent flags
|
||||
# aren't being reset.
|
||||
#maildir_empty_new = no
|
||||
|
||||
##
|
||||
## mbox-specific settings
|
||||
##
|
||||
|
||||
# Which locking methods to use for locking mbox. There are four available:
|
||||
# dotlock: Create <mailbox>.lock file. This is the oldest and most NFS-safe
|
||||
# solution. If you want to use /var/mail/ like directory, the users
|
||||
# will need write access to that directory.
|
||||
# dotlock_try: Same as dotlock, but if it fails because of permissions or
|
||||
# because there isn't enough disk space, just skip it.
|
||||
# fcntl : Use this if possible. Works with NFS too if lockd is used.
|
||||
# flock : May not exist in all systems. Doesn't work with NFS.
|
||||
# lockf : May not exist in all systems. Doesn't work with NFS.
|
||||
#
|
||||
# You can use multiple locking methods; if you do the order they're declared
|
||||
# in is important to avoid deadlocks if other MTAs/MUAs are using multiple
|
||||
# locking methods as well. Some operating systems don't allow using some of
|
||||
# them simultaneously.
|
||||
#mbox_read_locks = fcntl
|
||||
#mbox_write_locks = dotlock fcntl
|
||||
|
||||
# Maximum time to wait for lock (all of them) before aborting.
|
||||
#mbox_lock_timeout = 5 mins
|
||||
|
||||
# If dotlock exists but the mailbox isn't modified in any way, override the
|
||||
# lock file after this much time.
|
||||
#mbox_dotlock_change_timeout = 2 mins
|
||||
|
||||
# When mbox changes unexpectedly we have to fully read it to find out what
|
||||
# changed. If the mbox is large this can take a long time. Since the change
|
||||
# is usually just a newly appended mail, it'd be faster to simply read the
|
||||
# new mails. If this setting is enabled, Dovecot does this but still safely
|
||||
# fallbacks to re-reading the whole mbox file whenever something in mbox isn't
|
||||
# how it's expected to be. The only real downside to this setting is that if
|
||||
# some other MUA changes message flags, Dovecot doesn't notice it immediately.
|
||||
# Note that a full sync is done with SELECT, EXAMINE, EXPUNGE and CHECK
|
||||
# commands.
|
||||
#mbox_dirty_syncs = yes
|
||||
|
||||
# Like mbox_dirty_syncs, but don't do full syncs even with SELECT, EXAMINE,
|
||||
# EXPUNGE or CHECK commands. If this is set, mbox_dirty_syncs is ignored.
|
||||
#mbox_very_dirty_syncs = no
|
||||
|
||||
# Delay writing mbox headers until doing a full write sync (EXPUNGE and CHECK
|
||||
# commands and when closing the mailbox). This is especially useful for POP3
|
||||
# where clients often delete all mails. The downside is that our changes
|
||||
# aren't immediately visible to other MUAs.
|
||||
#mbox_lazy_writes = yes
|
||||
|
||||
# If mbox size is smaller than this (e.g. 100k), don't write index files.
|
||||
# If an index file already exists it's still read, just not updated.
|
||||
#mbox_min_index_size = 0
|
||||
|
||||
# Mail header selection algorithm to use for MD5 POP3 UIDLs when
|
||||
# pop3_uidl_format=%m. For backwards compatibility we use apop3d inspired
|
||||
# algorithm, but it fails if the first Received: header isn't unique in all
|
||||
# mails. An alternative algorithm is "all" that selects all headers.
|
||||
#mbox_md5 = apop3d
|
||||
|
||||
##
|
||||
## mdbox-specific settings
|
||||
##
|
||||
|
||||
# Maximum dbox file size until it's rotated.
|
||||
#mdbox_rotate_size = 10M
|
||||
|
||||
# Maximum dbox file age until it's rotated. Typically in days. Day begins
|
||||
# from midnight, so 1d = today, 2d = yesterday, etc. 0 = check disabled.
|
||||
#mdbox_rotate_interval = 0
|
||||
|
||||
# When creating new mdbox files, immediately preallocate their size to
|
||||
# mdbox_rotate_size. This setting currently works only in Linux with some
|
||||
# filesystems (ext4, xfs).
|
||||
#mdbox_preallocate_space = no
|
||||
|
||||
##
|
||||
## Mail attachments
|
||||
##
|
||||
|
||||
# sdbox and mdbox support saving mail attachments to external files, which
|
||||
# also allows single instance storage for them. Other backends don't support
|
||||
# this for now.
|
||||
|
||||
# Directory root where to store mail attachments. Disabled, if empty.
|
||||
#mail_attachment_dir =
|
||||
|
||||
# Attachments smaller than this aren't saved externally. It's also possible to
|
||||
# write a plugin to disable saving specific attachments externally.
|
||||
#mail_attachment_min_size = 128k
|
||||
|
||||
# Filesystem backend to use for saving attachments:
|
||||
# posix : No SiS done by Dovecot (but this might help FS's own deduplication)
|
||||
# sis posix : SiS with immediate byte-by-byte comparison during saving
|
||||
# sis-queue posix : SiS with delayed comparison and deduplication
|
||||
#mail_attachment_fs = sis posix
|
||||
|
||||
# Hash format to use in attachment filenames. You can add any text and
|
||||
# variables: %{md4}, %{md5}, %{sha1}, %{sha256}, %{sha512}, %{size}.
|
||||
# Variables can be truncated, e.g. %{sha256:80} returns only first 80 bits
|
||||
#mail_attachment_hash = %{sha1}
|
||||
|
||||
# Settings to control adding $HasAttachment or $HasNoAttachment keywords.
|
||||
# By default, all MIME parts with Content-Disposition=attachment, or inlines
|
||||
# with filename parameter are consired attachments.
|
||||
# add-flags-on-save - Add the keywords when saving new mails.
|
||||
# content-type=type or !type - Include/exclude content type. Excluding will
|
||||
# never consider the matched MIME part as attachment. Including will only
|
||||
# negate an exclusion (e.g. content-type=!foo/* content-type=foo/bar).
|
||||
# exclude-inlined - Exclude any Content-Disposition=inline MIME part.
|
||||
#mail_attachment_detection_options =
|
130
jails/config/mail/dovecot/example-config/conf.d/10-master.conf
Normal file
130
jails/config/mail/dovecot/example-config/conf.d/10-master.conf
Normal file
@ -0,0 +1,130 @@
|
||||
#default_process_limit = 100
|
||||
#default_client_limit = 1000
|
||||
|
||||
# Default VSZ (virtual memory size) limit for service processes. This is mainly
|
||||
# intended to catch and kill processes that leak memory before they eat up
|
||||
# everything.
|
||||
#default_vsz_limit = 256M
|
||||
|
||||
# Login user is internally used by login processes. This is the most untrusted
|
||||
# user in Dovecot system. It shouldn't have access to anything at all.
|
||||
#default_login_user = dovenull
|
||||
|
||||
# Internal user is used by unprivileged processes. It should be separate from
|
||||
# login user, so that login processes can't disturb other processes.
|
||||
#default_internal_user = dovecot
|
||||
|
||||
service imap-login {
|
||||
inet_listener imap {
|
||||
#port = 143
|
||||
}
|
||||
inet_listener imaps {
|
||||
#port = 993
|
||||
#ssl = yes
|
||||
}
|
||||
|
||||
# Number of connections to handle before starting a new process. Typically
|
||||
# the only useful values are 0 (unlimited) or 1. 1 is more secure, but 0
|
||||
# is faster. <doc/wiki/LoginProcess.txt>
|
||||
#service_count = 1
|
||||
|
||||
# Number of processes to always keep waiting for more connections.
|
||||
#process_min_avail = 0
|
||||
|
||||
# If you set service_count=0, you probably need to grow this.
|
||||
#vsz_limit = $default_vsz_limit
|
||||
}
|
||||
|
||||
service pop3-login {
|
||||
inet_listener pop3 {
|
||||
#port = 110
|
||||
}
|
||||
inet_listener pop3s {
|
||||
#port = 995
|
||||
#ssl = yes
|
||||
}
|
||||
}
|
||||
|
||||
service submission-login {
|
||||
inet_listener submission {
|
||||
#port = 587
|
||||
}
|
||||
}
|
||||
|
||||
service lmtp {
|
||||
unix_listener lmtp {
|
||||
#mode = 0666
|
||||
}
|
||||
|
||||
# Create inet listener only if you can't use the above UNIX socket
|
||||
#inet_listener lmtp {
|
||||
# Avoid making LMTP visible for the entire internet
|
||||
#address =
|
||||
#port =
|
||||
#}
|
||||
}
|
||||
|
||||
service imap {
|
||||
# Most of the memory goes to mmap()ing files. You may need to increase this
|
||||
# limit if you have huge mailboxes.
|
||||
#vsz_limit = $default_vsz_limit
|
||||
|
||||
# Max. number of IMAP processes (connections)
|
||||
#process_limit = 1024
|
||||
}
|
||||
|
||||
service pop3 {
|
||||
# Max. number of POP3 processes (connections)
|
||||
#process_limit = 1024
|
||||
}
|
||||
|
||||
service submission {
|
||||
# Max. number of SMTP Submission processes (connections)
|
||||
#process_limit = 1024
|
||||
}
|
||||
|
||||
service auth {
|
||||
# auth_socket_path points to this userdb socket by default. It's typically
|
||||
# used by dovecot-lda, doveadm, possibly imap process, etc. Users that have
|
||||
# full permissions to this socket are able to get a list of all usernames and
|
||||
# get the results of everyone's userdb lookups.
|
||||
#
|
||||
# The default 0666 mode allows anyone to connect to the socket, but the
|
||||
# userdb lookups will succeed only if the userdb returns an "uid" field that
|
||||
# matches the caller process's UID. Also if caller's uid or gid matches the
|
||||
# socket's uid or gid the lookup succeeds. Anything else causes a failure.
|
||||
#
|
||||
# To give the caller full permissions to lookup all users, set the mode to
|
||||
# something else than 0666 and Dovecot lets the kernel enforce the
|
||||
# permissions (e.g. 0777 allows everyone full permissions).
|
||||
unix_listener auth-userdb {
|
||||
#mode = 0666
|
||||
#user =
|
||||
#group =
|
||||
}
|
||||
|
||||
# Postfix smtp-auth
|
||||
#unix_listener /var/spool/postfix/private/auth {
|
||||
# mode = 0666
|
||||
#}
|
||||
|
||||
# Auth process is run as this user.
|
||||
#user = $default_internal_user
|
||||
}
|
||||
|
||||
service auth-worker {
|
||||
# Auth worker process is run as root by default, so that it can access
|
||||
# /etc/shadow. If this isn't necessary, the user should be changed to
|
||||
# $default_internal_user.
|
||||
#user = root
|
||||
}
|
||||
|
||||
service dict {
|
||||
# If dict proxy is used, mail processes should have access to its socket.
|
||||
# For example: mode=0660, group=vmail and global mail_access_groups=vmail
|
||||
unix_listener dict {
|
||||
#mode = 0600
|
||||
#user =
|
||||
#group =
|
||||
}
|
||||
}
|
78
jails/config/mail/dovecot/example-config/conf.d/10-ssl.conf
Normal file
78
jails/config/mail/dovecot/example-config/conf.d/10-ssl.conf
Normal file
@ -0,0 +1,78 @@
|
||||
##
|
||||
## SSL settings
|
||||
##
|
||||
|
||||
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
|
||||
#ssl = yes
|
||||
|
||||
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
|
||||
# dropping root privileges, so keep the key file unreadable by anyone but
|
||||
# root. Included doc/mkcert.sh can be used to easily generate self-signed
|
||||
# certificate, just make sure to update the domains in dovecot-openssl.cnf
|
||||
ssl_cert = </etc/ssl/certs/dovecot.pem
|
||||
ssl_key = </etc/ssl/private/dovecot.pem
|
||||
|
||||
# If key file is password protected, give the password here. Alternatively
|
||||
# give it when starting dovecot with -p parameter. Since this file is often
|
||||
# world-readable, you may want to place this setting instead to a different
|
||||
# root owned 0600 file by using ssl_key_password = <path.
|
||||
#ssl_key_password =
|
||||
|
||||
# PEM encoded trusted certificate authority. Set this only if you intend to use
|
||||
# ssl_verify_client_cert=yes. The file should contain the CA certificate(s)
|
||||
# followed by the matching CRL(s). (e.g. ssl_ca = </etc/ssl/certs/ca.pem)
|
||||
#ssl_ca =
|
||||
|
||||
# Require that CRL check succeeds for client certificates.
|
||||
#ssl_require_crl = yes
|
||||
|
||||
# Directory and/or file for trusted SSL CA certificates. These are used only
|
||||
# when Dovecot needs to act as an SSL client (e.g. imapc backend or
|
||||
# submission service). The directory is usually /etc/ssl/certs in
|
||||
# Debian-based systems and the file is /etc/pki/tls/cert.pem in
|
||||
# RedHat-based systems.
|
||||
#ssl_client_ca_dir =
|
||||
#ssl_client_ca_file =
|
||||
|
||||
# Require valid cert when connecting to a remote server
|
||||
#ssl_client_require_valid_cert = yes
|
||||
|
||||
# Request client to send a certificate. If you also want to require it, set
|
||||
# auth_ssl_require_client_cert=yes in auth section.
|
||||
#ssl_verify_client_cert = no
|
||||
|
||||
# Which field from certificate to use for username. commonName and
|
||||
# x500UniqueIdentifier are the usual choices. You'll also need to set
|
||||
# auth_ssl_username_from_cert=yes.
|
||||
#ssl_cert_username_field = commonName
|
||||
|
||||
# SSL DH parameters
|
||||
# Generate new params with `openssl dhparam -out /usr/local/etc/dovecot/dh.pem 4096`
|
||||
# Or migrate from old ssl-parameters.dat file with the command dovecot
|
||||
# gives on startup when ssl_dh is unset.
|
||||
#ssl_dh = </usr/local/etc/dovecot/dh.pem
|
||||
|
||||
# Minimum SSL protocol version to use. Potentially recognized values are SSLv3,
|
||||
# TLSv1, TLSv1.1, and TLSv1.2, depending on the OpenSSL version used.
|
||||
#ssl_min_protocol = TLSv1
|
||||
|
||||
# SSL ciphers to use, the default is:
|
||||
#ssl_cipher_list = ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@STRENGTH
|
||||
# To disable non-EC DH, use:
|
||||
#ssl_cipher_list = ALL:!DH:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@STRENGTH
|
||||
|
||||
# Colon separated list of elliptic curves to use. Empty value (the default)
|
||||
# means use the defaults from the SSL library. P-521:P-384:P-256 would be an
|
||||
# example of a valid value.
|
||||
#ssl_curve_list =
|
||||
|
||||
# Prefer the server's order of ciphers over client's.
|
||||
#ssl_prefer_server_ciphers = no
|
||||
|
||||
# SSL crypto device to use, for valid values run "openssl engine"
|
||||
#ssl_crypto_device =
|
||||
|
||||
# SSL extra options. Currently supported options are:
|
||||
# compression - Enable compression.
|
||||
# no_ticket - Disable SSL session tickets.
|
||||
#ssl_options =
|
48
jails/config/mail/dovecot/example-config/conf.d/15-lda.conf
Normal file
48
jails/config/mail/dovecot/example-config/conf.d/15-lda.conf
Normal file
@ -0,0 +1,48 @@
|
||||
##
|
||||
## LDA specific settings (also used by LMTP)
|
||||
##
|
||||
|
||||
# Address to use when sending rejection mails.
|
||||
# Default is postmaster@%d. %d expands to recipient domain.
|
||||
#postmaster_address =
|
||||
|
||||
# Hostname to use in various parts of sent mails (e.g. in Message-Id) and
|
||||
# in LMTP replies. Default is the system's real hostname@domain.
|
||||
#hostname =
|
||||
|
||||
# If user is over quota, return with temporary failure instead of
|
||||
# bouncing the mail.
|
||||
#quota_full_tempfail = no
|
||||
|
||||
# Binary to use for sending mails.
|
||||
#sendmail_path = /usr/sbin/sendmail
|
||||
|
||||
# If non-empty, send mails via this SMTP host[:port] instead of sendmail.
|
||||
#submission_host =
|
||||
|
||||
# Subject: header to use for rejection mails. You can use the same variables
|
||||
# as for rejection_reason below.
|
||||
#rejection_subject = Rejected: %s
|
||||
|
||||
# Human readable error message for rejection mails. You can use variables:
|
||||
# %n = CRLF, %r = reason, %s = original subject, %t = recipient
|
||||
#rejection_reason = Your message to <%t> was automatically rejected:%n%r
|
||||
|
||||
# Delimiter character between local-part and detail in email address.
|
||||
#recipient_delimiter = +
|
||||
|
||||
# Header where the original recipient address (SMTP's RCPT TO: address) is taken
|
||||
# from if not available elsewhere. With dovecot-lda -a parameter overrides this.
|
||||
# A commonly used header for this is X-Original-To.
|
||||
#lda_original_recipient_header =
|
||||
|
||||
# Should saving a mail to a nonexistent mailbox automatically create it?
|
||||
#lda_mailbox_autocreate = no
|
||||
|
||||
# Should automatically created mailboxes be also automatically subscribed?
|
||||
#lda_mailbox_autosubscribe = no
|
||||
|
||||
protocol lda {
|
||||
# Space separated list of plugins to load (default is global mail_plugins).
|
||||
#mail_plugins = $mail_plugins
|
||||
}
|
@ -0,0 +1,78 @@
|
||||
##
|
||||
## Mailbox definitions
|
||||
##
|
||||
|
||||
# Each mailbox is specified in a separate mailbox section. The section name
|
||||
# specifies the mailbox name. If it has spaces, you can put the name
|
||||
# "in quotes". These sections can contain the following mailbox settings:
|
||||
#
|
||||
# auto:
|
||||
# Indicates whether the mailbox with this name is automatically created
|
||||
# implicitly when it is first accessed. The user can also be automatically
|
||||
# subscribed to the mailbox after creation. The following values are
|
||||
# defined for this setting:
|
||||
#
|
||||
# no - Never created automatically.
|
||||
# create - Automatically created, but no automatic subscription.
|
||||
# subscribe - Automatically created and subscribed.
|
||||
#
|
||||
# special_use:
|
||||
# A space-separated list of SPECIAL-USE flags (RFC 6154) to use for the
|
||||
# mailbox. There are no validity checks, so you could specify anything
|
||||
# you want in here, but it's not a good idea to use flags other than the
|
||||
# standard ones specified in the RFC:
|
||||
#
|
||||
# \All - This (virtual) mailbox presents all messages in the
|
||||
# user's message store.
|
||||
# \Archive - This mailbox is used to archive messages.
|
||||
# \Drafts - This mailbox is used to hold draft messages.
|
||||
# \Flagged - This (virtual) mailbox presents all messages in the
|
||||
# user's message store marked with the IMAP \Flagged flag.
|
||||
# \Junk - This mailbox is where messages deemed to be junk mail
|
||||
# are held.
|
||||
# \Sent - This mailbox is used to hold copies of messages that
|
||||
# have been sent.
|
||||
# \Trash - This mailbox is used to hold messages that have been
|
||||
# deleted.
|
||||
#
|
||||
# comment:
|
||||
# Defines a default comment or note associated with the mailbox. This
|
||||
# value is accessible through the IMAP METADATA mailbox entries
|
||||
# "/shared/comment" and "/private/comment". Users with sufficient
|
||||
# privileges can override the default value for entries with a custom
|
||||
# value.
|
||||
|
||||
# NOTE: Assumes "namespace inbox" has been defined in 10-mail.conf.
|
||||
namespace inbox {
|
||||
# These mailboxes are widely used and could perhaps be created automatically:
|
||||
mailbox Drafts {
|
||||
special_use = \Drafts
|
||||
}
|
||||
mailbox Junk {
|
||||
special_use = \Junk
|
||||
}
|
||||
mailbox Trash {
|
||||
special_use = \Trash
|
||||
}
|
||||
|
||||
# For \Sent mailboxes there are two widely used names. We'll mark both of
|
||||
# them as \Sent. User typically deletes one of them if duplicates are created.
|
||||
mailbox Sent {
|
||||
special_use = \Sent
|
||||
}
|
||||
mailbox "Sent Messages" {
|
||||
special_use = \Sent
|
||||
}
|
||||
|
||||
# If you have a virtual "All messages" mailbox:
|
||||
#mailbox virtual/All {
|
||||
# special_use = \All
|
||||
# comment = All my messages
|
||||
#}
|
||||
|
||||
# If you have a virtual "Flagged" mailbox:
|
||||
#mailbox virtual/Flagged {
|
||||
# special_use = \Flagged
|
||||
# comment = All my flagged messages
|
||||
#}
|
||||
}
|
98
jails/config/mail/dovecot/example-config/conf.d/20-imap.conf
Normal file
98
jails/config/mail/dovecot/example-config/conf.d/20-imap.conf
Normal file
@ -0,0 +1,98 @@
|
||||
##
|
||||
## IMAP specific settings
|
||||
##
|
||||
|
||||
# If nothing happens for this long while client is IDLEing, move the connection
|
||||
# to imap-hibernate process and close the old imap process. This saves memory,
|
||||
# because connections use very little memory in imap-hibernate process. The
|
||||
# downside is that recreating the imap process back uses some resources.
|
||||
#imap_hibernate_timeout = 0
|
||||
|
||||
# Maximum IMAP command line length. Some clients generate very long command
|
||||
# lines with huge mailboxes, so you may need to raise this if you get
|
||||
# "Too long argument" or "IMAP command line too large" errors often.
|
||||
#imap_max_line_length = 64k
|
||||
|
||||
# IMAP logout format string:
|
||||
# %i - total number of bytes read from client
|
||||
# %o - total number of bytes sent to client
|
||||
# %{fetch_hdr_count} - Number of mails with mail header data sent to client
|
||||
# %{fetch_hdr_bytes} - Number of bytes with mail header data sent to client
|
||||
# %{fetch_body_count} - Number of mails with mail body data sent to client
|
||||
# %{fetch_body_bytes} - Number of bytes with mail body data sent to client
|
||||
# %{deleted} - Number of mails where client added \Deleted flag
|
||||
# %{expunged} - Number of mails that client expunged, which does not
|
||||
# include automatically expunged mails
|
||||
# %{autoexpunged} - Number of mails that were automatically expunged after
|
||||
# client disconnected
|
||||
# %{trashed} - Number of mails that client copied/moved to the
|
||||
# special_use=\Trash mailbox.
|
||||
# %{appended} - Number of mails saved during the session
|
||||
#imap_logout_format = in=%i out=%o deleted=%{deleted} expunged=%{expunged} \
|
||||
# trashed=%{trashed} hdr_count=%{fetch_hdr_count} \
|
||||
# hdr_bytes=%{fetch_hdr_bytes} body_count=%{fetch_body_count} \
|
||||
# body_bytes=%{fetch_body_bytes}
|
||||
|
||||
# Override the IMAP CAPABILITY response. If the value begins with '+',
|
||||
# add the given capabilities on top of the defaults (e.g. +XFOO XBAR).
|
||||
#imap_capability =
|
||||
|
||||
# How long to wait between "OK Still here" notifications when client is
|
||||
# IDLEing.
|
||||
#imap_idle_notify_interval = 2 mins
|
||||
|
||||
# ID field names and values to send to clients. Using * as the value makes
|
||||
# Dovecot use the default value. The following fields have default values
|
||||
# currently: name, version, os, os-version, support-url, support-email.
|
||||
#imap_id_send =
|
||||
|
||||
# ID fields sent by client to log. * means everything.
|
||||
#imap_id_log =
|
||||
|
||||
# Workarounds for various client bugs:
|
||||
# delay-newmail:
|
||||
# Send EXISTS/RECENT new mail notifications only when replying to NOOP
|
||||
# and CHECK commands. Some clients ignore them otherwise, for example OSX
|
||||
# Mail (<v2.1). Outlook Express breaks more badly though, without this it
|
||||
# may show user "Message no longer in server" errors. Note that OE6 still
|
||||
# breaks even with this workaround if synchronization is set to
|
||||
# "Headers Only".
|
||||
# tb-extra-mailbox-sep:
|
||||
# Thunderbird gets somehow confused with LAYOUT=fs (mbox and dbox) and
|
||||
# adds extra '/' suffixes to mailbox names. This option causes Dovecot to
|
||||
# ignore the extra '/' instead of treating it as invalid mailbox name.
|
||||
# tb-lsub-flags:
|
||||
# Show \Noselect flags for LSUB replies with LAYOUT=fs (e.g. mbox).
|
||||
# This makes Thunderbird realize they aren't selectable and show them
|
||||
# greyed out, instead of only later giving "not selectable" popup error.
|
||||
#
|
||||
# The list is space-separated.
|
||||
#imap_client_workarounds =
|
||||
|
||||
# Host allowed in URLAUTH URLs sent by client. "*" allows all.
|
||||
#imap_urlauth_host =
|
||||
|
||||
# Enable IMAP LITERAL- extension (replaces LITERAL+)
|
||||
#imap_literal_minus = no
|
||||
|
||||
# What happens when FETCH fails due to some internal error:
|
||||
# disconnect-immediately:
|
||||
# The FETCH is aborted immediately and the IMAP client is disconnected.
|
||||
# disconnect-after:
|
||||
# The FETCH runs for all the requested mails returning as much data as
|
||||
# possible. The client is finally disconnected without a tagged reply.
|
||||
# no-after:
|
||||
# Same as disconnect-after, but tagged NO reply is sent instead of
|
||||
# disconnecting the client. If the client attempts to FETCH the same failed
|
||||
# mail more than once, the client is disconnected. This is to avoid clients
|
||||
# from going into infinite loops trying to FETCH a broken mail.
|
||||
#imap_fetch_failure = disconnect-immediately
|
||||
|
||||
protocol imap {
|
||||
# Space separated list of plugins to load (default is global mail_plugins).
|
||||
#mail_plugins = $mail_plugins
|
||||
|
||||
# Maximum number of IMAP connections allowed for a user from each IP address.
|
||||
# NOTE: The username is compared case-sensitively.
|
||||
#mail_max_userip_connections = 10
|
||||
}
|
26
jails/config/mail/dovecot/example-config/conf.d/20-lmtp.conf
Normal file
26
jails/config/mail/dovecot/example-config/conf.d/20-lmtp.conf
Normal file
@ -0,0 +1,26 @@
|
||||
##
|
||||
## LMTP specific settings
|
||||
##
|
||||
|
||||
# Support proxying to other LMTP/SMTP servers by performing passdb lookups.
|
||||
#lmtp_proxy = no
|
||||
|
||||
# When recipient address includes the detail (e.g. user+detail), try to save
|
||||
# the mail to the detail mailbox. See also recipient_delimiter and
|
||||
# lda_mailbox_autocreate settings.
|
||||
#lmtp_save_to_detail_mailbox = no
|
||||
|
||||
# Verify quota before replying to RCPT TO. This adds a small overhead.
|
||||
#lmtp_rcpt_check_quota = no
|
||||
|
||||
# Which recipient address to use for Delivered-To: header and Received:
|
||||
# header. The default is "final", which is the same as the one given to
|
||||
# RCPT TO command. "original" uses the address given in RCPT TO's ORCPT
|
||||
# parameter, "none" uses nothing. Note that "none" is currently always used
|
||||
# when a mail has multiple recipients.
|
||||
#lmtp_hdr_delivery_address = final
|
||||
|
||||
protocol lmtp {
|
||||
# Space separated list of plugins to load (default is global mail_plugins).
|
||||
#mail_plugins = $mail_plugins
|
||||
}
|
99
jails/config/mail/dovecot/example-config/conf.d/20-pop3.conf
Normal file
99
jails/config/mail/dovecot/example-config/conf.d/20-pop3.conf
Normal file
@ -0,0 +1,99 @@
|
||||
##
|
||||
## POP3 specific settings
|
||||
##
|
||||
|
||||
# Don't try to set mails non-recent or seen with POP3 sessions. This is
|
||||
# mostly intended to reduce disk I/O. With maildir it doesn't move files
|
||||
# from new/ to cur/, with mbox it doesn't write Status-header.
|
||||
#pop3_no_flag_updates = no
|
||||
|
||||
# Support LAST command which exists in old POP3 specs, but has been removed
|
||||
# from new ones. Some clients still wish to use this though. Enabling this
|
||||
# makes RSET command clear all \Seen flags from messages.
|
||||
#pop3_enable_last = no
|
||||
|
||||
# If mail has X-UIDL header, use it as the mail's UIDL.
|
||||
#pop3_reuse_xuidl = no
|
||||
|
||||
# Allow only one POP3 session to run simultaneously for the same user.
|
||||
#pop3_lock_session = no
|
||||
|
||||
# POP3 requires message sizes to be listed as if they had CR+LF linefeeds.
|
||||
# Many POP3 servers violate this by returning the sizes with LF linefeeds,
|
||||
# because it's faster to get. When this setting is enabled, Dovecot still
|
||||
# tries to do the right thing first, but if that requires opening the
|
||||
# message, it fallbacks to the easier (but incorrect) size.
|
||||
#pop3_fast_size_lookups = no
|
||||
|
||||
# POP3 UIDL (unique mail identifier) format to use. You can use following
|
||||
# variables, along with the variable modifiers described in
|
||||
# doc/wiki/Variables.txt (e.g. %Uf for the filename in uppercase)
|
||||
#
|
||||
# %v - Mailbox's IMAP UIDVALIDITY
|
||||
# %u - Mail's IMAP UID
|
||||
# %m - MD5 sum of the mailbox headers in hex (mbox only)
|
||||
# %f - filename (maildir only)
|
||||
# %g - Mail's GUID
|
||||
#
|
||||
# If you want UIDL compatibility with other POP3 servers, use:
|
||||
# UW's ipop3d : %08Xv%08Xu
|
||||
# Courier : %f or %v-%u (both might be used simultaneously)
|
||||
# Cyrus (<= 2.1.3) : %u
|
||||
# Cyrus (>= 2.1.4) : %v.%u
|
||||
# Dovecot v0.99.x : %v.%u
|
||||
# tpop3d : %Mf
|
||||
#
|
||||
# Note that Outlook 2003 seems to have problems with %v.%u format which was
|
||||
# Dovecot's default, so if you're building a new server it would be a good
|
||||
# idea to change this. %08Xu%08Xv should be pretty fail-safe.
|
||||
#
|
||||
#pop3_uidl_format = %08Xu%08Xv
|
||||
|
||||
# Permanently save UIDLs sent to POP3 clients, so pop3_uidl_format changes
|
||||
# won't change those UIDLs. Currently this works only with Maildir.
|
||||
#pop3_save_uidl = no
|
||||
|
||||
# What to do about duplicate UIDLs if they exist?
|
||||
# allow: Show duplicates to clients.
|
||||
# rename: Append a temporary -2, -3, etc. counter after the UIDL.
|
||||
#pop3_uidl_duplicates = allow
|
||||
|
||||
# This option changes POP3 behavior so that it's not possible to actually
|
||||
# delete mails via POP3, only hide them from future POP3 sessions. The mails
|
||||
# will still be counted towards user's quota until actually deleted via IMAP.
|
||||
# Use e.g. "$POP3Deleted" as the value (it will be visible as IMAP keyword).
|
||||
# Make sure you can legally archive mails before enabling this setting.
|
||||
#pop3_deleted_flag =
|
||||
|
||||
# POP3 logout format string:
|
||||
# %i - total number of bytes read from client
|
||||
# %o - total number of bytes sent to client
|
||||
# %t - number of TOP commands
|
||||
# %p - number of bytes sent to client as a result of TOP command
|
||||
# %r - number of RETR commands
|
||||
# %b - number of bytes sent to client as a result of RETR command
|
||||
# %d - number of deleted messages
|
||||
# %{deleted_bytes} - number of bytes in deleted messages
|
||||
# %m - number of messages (before deletion)
|
||||
# %s - mailbox size in bytes (before deletion)
|
||||
# %u - old/new UIDL hash. may help finding out if UIDLs changed unexpectedly
|
||||
#pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
|
||||
|
||||
# Workarounds for various client bugs:
|
||||
# outlook-no-nuls:
|
||||
# Outlook and Outlook Express hang if mails contain NUL characters.
|
||||
# This setting replaces them with 0x80 character.
|
||||
# oe-ns-eoh:
|
||||
# Outlook Express and Netscape Mail breaks if end of headers-line is
|
||||
# missing. This option simply sends it if it's missing.
|
||||
# The list is space-separated.
|
||||
#pop3_client_workarounds =
|
||||
|
||||
protocol pop3 {
|
||||
# Space separated list of plugins to load (default is global mail_plugins).
|
||||
#mail_plugins = $mail_plugins
|
||||
|
||||
# Maximum number of POP3 connections allowed for a user from each IP address.
|
||||
# NOTE: The username is compared case-sensitively.
|
||||
#mail_max_userip_connections = 10
|
||||
}
|
@ -0,0 +1,112 @@
|
||||
##
|
||||
## Settings specific to SMTP Submission
|
||||
##
|
||||
|
||||
# SMTP Submission logout format string:
|
||||
# %i - total number of bytes read from client
|
||||
# %o - total number of bytes sent to client
|
||||
# %{command_count} - Number of commands received from client
|
||||
# %{reply_count} - Number of replies sent to client
|
||||
# %{session} - Session ID of the login session
|
||||
# %{transaction_id} - ID of the current transaction, if any
|
||||
#submission_logout_format = in=%i out=%o
|
||||
|
||||
# Host name reported by the SMTP service, for example to the client in the
|
||||
# initial greeting and to the relay server in the HELO/EHLO command.
|
||||
# Default is the system's real hostname@domain.
|
||||
#hostname =
|
||||
|
||||
# Maximum size of messages accepted for relay. This announced in the SIZE
|
||||
# capability. If not configured, this is either determined from the relay
|
||||
# server or left unlimited if no limit is known (relay will reply with error
|
||||
# if some unknown limit exists there, which is duly passed to our client).
|
||||
#submission_max_mail_size =
|
||||
|
||||
# Maximum number of recipients accepted per connection (default: unlimited)
|
||||
#submission_max_recipients =
|
||||
|
||||
# Workarounds for various client bugs:
|
||||
# whitespace-before-path:
|
||||
# Allow one or more spaces or tabs between `MAIL FROM:' and path and between
|
||||
# `RCPT TO:' and path.
|
||||
# mailbox-for-path:
|
||||
# Allow using bare Mailbox syntax (i.e., without <...>) instead of full path
|
||||
# syntax.
|
||||
#
|
||||
# The list is space-separated.
|
||||
#submission_client_workarounds =
|
||||
|
||||
# Relay server configuration:
|
||||
#
|
||||
# The Dovecot SMTP submission service directly proxies the mail transaction
|
||||
# to the SMTP relay configured here.
|
||||
|
||||
# Host name for the relay server (required)
|
||||
#submission_relay_host =
|
||||
|
||||
# Port for the relay server
|
||||
#submission_relay_port = 25
|
||||
|
||||
# Is the relay server trusted? This determines whether we try to send
|
||||
# (Postfix-specific) XCLIENT data to the relay server
|
||||
#submission_relay_trusted = no
|
||||
|
||||
# Authentication data for the relay server if authentication is required
|
||||
#submission_relay_user =
|
||||
#submission_relay_master_user =
|
||||
#submission_relay_password =
|
||||
|
||||
# SSL configuration for connection to relay server
|
||||
#
|
||||
# submission_relay_ssl:
|
||||
# Indicates whether SSL is used for the connection to the relay server. The
|
||||
# following values are defined for this setting:
|
||||
#
|
||||
# no - No SSL is used
|
||||
# smtps - An SMTPS connection (immediate SSL) is used
|
||||
# starttls - The STARTTLS command is used to establish SSL layer
|
||||
#submission_relay_ssl = no
|
||||
|
||||
# submission_relay_ssl_verify:
|
||||
# Configures whether the SSL certificate of the relay server is to be
|
||||
# verified.
|
||||
#submission_relay_ssl_verify = yes
|
||||
|
||||
# Write protocol logs for relay connection to this directory for debugging
|
||||
#submission_relay_rawlog_dir =
|
||||
|
||||
# BURL is configured implicitly by IMAP URLAUTH
|
||||
|
||||
# Part of the SMTP capabilities that the submission service can offer to the
|
||||
# client (as listed in the EHLO reply) depend on those capabilities also being
|
||||
# provided by the relay server. These capabilities currently are:
|
||||
#
|
||||
# - 8BITMIME
|
||||
# - BINARYMIME
|
||||
# - DSN
|
||||
# - VRFY (always returns 252 without support)
|
||||
#
|
||||
# By default, the submission service first connects to the relay server to
|
||||
# determine the support for such capabilities before sending the initial EHLO
|
||||
# reply to the client. If the list of capabilities returned by the relay server
|
||||
# is somehow unreliable or it is undesirable to start the connection to the
|
||||
# relay server before the first mail transaction is started, the backend
|
||||
# capabilities can be configured explicitly using the
|
||||
# submission_backend_capabilities setting. This is a space-separated list of
|
||||
# SMTP capability names. This setting is only relevant for capabilities that
|
||||
# depend on support from the relay server: including (or omitting) capabilities
|
||||
# that are not listed above has no effect. When this setting is explicitly set
|
||||
# to the empty string, none of the capabilities is enabled. To achieve the
|
||||
# default behavior, this setting must be left unconfigured.
|
||||
#submission_backend_capabilities =
|
||||
|
||||
protocol submission {
|
||||
# Space-separated list of plugins to load (default is global mail_plugins).
|
||||
#mail_plugins = $mail_plugins
|
||||
|
||||
# Maximum number of SMTP submission connections allowed for a user from
|
||||
# each IP address.
|
||||
# NOTE: The username is compared case-sensitively.
|
||||
#mail_max_userip_connections = 10
|
||||
}
|
||||
|
19
jails/config/mail/dovecot/example-config/conf.d/90-acl.conf
Normal file
19
jails/config/mail/dovecot/example-config/conf.d/90-acl.conf
Normal file
@ -0,0 +1,19 @@
|
||||
##
|
||||
## Mailbox access control lists.
|
||||
##
|
||||
|
||||
# vfile backend reads ACLs from "dovecot-acl" file from mail directory.
|
||||
# You can also optionally give a global ACL directory path where ACLs are
|
||||
# applied to all users' mailboxes. The global ACL directory contains
|
||||
# one file for each mailbox, eg. INBOX or sub.mailbox. cache_secs parameter
|
||||
# specifies how many seconds to wait between stat()ing dovecot-acl file
|
||||
# to see if it changed.
|
||||
plugin {
|
||||
#acl = vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300
|
||||
}
|
||||
|
||||
# To let users LIST mailboxes shared by other users, Dovecot needs a
|
||||
# shared mailbox dictionary. For example:
|
||||
plugin {
|
||||
#acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
##
|
||||
## Plugin settings
|
||||
##
|
||||
|
||||
# All wanted plugins must be listed in mail_plugins setting before any of the
|
||||
# settings take effect. See <doc/wiki/Plugins.txt> for list of plugins and
|
||||
# their configuration. Note that %variable expansion is done for all values.
|
||||
|
||||
plugin {
|
||||
#setting_name = value
|
||||
}
|
@ -0,0 +1,83 @@
|
||||
##
|
||||
## Quota configuration.
|
||||
##
|
||||
|
||||
# Note that you also have to enable quota plugin in mail_plugins setting.
|
||||
# <doc/wiki/Quota.txt>
|
||||
|
||||
##
|
||||
## Quota limits
|
||||
##
|
||||
|
||||
# Quota limits are set using "quota_rule" parameters. To get per-user quota
|
||||
# limits, you can set/override them by returning "quota_rule" extra field
|
||||
# from userdb. It's also possible to give mailbox-specific limits, for example
|
||||
# to give additional 100 MB when saving to Trash:
|
||||
|
||||
plugin {
|
||||
#quota_rule = *:storage=1G
|
||||
#quota_rule2 = Trash:storage=+100M
|
||||
|
||||
# LDA/LMTP allows saving the last mail to bring user from under quota to
|
||||
# over quota, if the quota doesn't grow too high. Default is to allow as
|
||||
# long as quota will stay under 10% above the limit. Also allowed e.g. 10M.
|
||||
#quota_grace = 10%%
|
||||
|
||||
# Quota plugin can also limit the maximum accepted mail size.
|
||||
#quota_max_mail_size = 100M
|
||||
}
|
||||
|
||||
##
|
||||
## Quota warnings
|
||||
##
|
||||
|
||||
# You can execute a given command when user exceeds a specified quota limit.
|
||||
# Each quota root has separate limits. Only the command for the first
|
||||
# exceeded limit is executed, so put the highest limit first.
|
||||
# The commands are executed via script service by connecting to the named
|
||||
# UNIX socket (quota-warning below).
|
||||
# Note that % needs to be escaped as %%, otherwise "% " expands to empty.
|
||||
|
||||
plugin {
|
||||
#quota_warning = storage=95%% quota-warning 95 %u
|
||||
#quota_warning2 = storage=80%% quota-warning 80 %u
|
||||
}
|
||||
|
||||
# Example quota-warning service. The unix listener's permissions should be
|
||||
# set in a way that mail processes can connect to it. Below example assumes
|
||||
# that mail processes run as vmail user. If you use mode=0666, all system users
|
||||
# can generate quota warnings to anyone.
|
||||
#service quota-warning {
|
||||
# executable = script /usr/local/bin/quota-warning.sh
|
||||
# user = dovecot
|
||||
# unix_listener quota-warning {
|
||||
# user = vmail
|
||||
# }
|
||||
#}
|
||||
|
||||
##
|
||||
## Quota backends
|
||||
##
|
||||
|
||||
# Multiple backends are supported:
|
||||
# dirsize: Find and sum all the files found from mail directory.
|
||||
# Extremely SLOW with Maildir. It'll eat your CPU and disk I/O.
|
||||
# dict: Keep quota stored in dictionary (eg. SQL)
|
||||
# maildir: Maildir++ quota
|
||||
# fs: Read-only support for filesystem quota
|
||||
|
||||
plugin {
|
||||
#quota = dirsize:User quota
|
||||
#quota = maildir:User quota
|
||||
#quota = dict:User quota::proxy::quota
|
||||
#quota = fs:User quota
|
||||
}
|
||||
|
||||
# Multiple quota roots are also possible, for example this gives each user
|
||||
# their own 100MB quota and one shared 1GB quota within the domain:
|
||||
plugin {
|
||||
#quota = dict:user::proxy::quota
|
||||
#quota2 = dict:domain:%d:proxy::quota_domain
|
||||
#quota_rule = *:storage=102400
|
||||
#quota2_rule = *:storage=1048576
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
# Authentication for checkpassword users. Included from 10-auth.conf.
|
||||
#
|
||||
# <doc/wiki/AuthDatabase.CheckPassword.txt>
|
||||
|
||||
passdb {
|
||||
driver = checkpassword
|
||||
args = /usr/bin/checkpassword
|
||||
}
|
||||
|
||||
# passdb lookup should return also userdb info
|
||||
userdb {
|
||||
driver = prefetch
|
||||
}
|
||||
|
||||
# Standard checkpassword doesn't support direct userdb lookups.
|
||||
# If you need checkpassword userdb, the checkpassword must support
|
||||
# Dovecot-specific extensions.
|
||||
#userdb {
|
||||
# driver = checkpassword
|
||||
# args = /usr/bin/checkpassword
|
||||
#}
|
@ -0,0 +1,15 @@
|
||||
# Deny access for users. Included from 10-auth.conf.
|
||||
|
||||
# Users can be (temporarily) disabled by adding a passdb with deny=yes.
|
||||
# If the user is found from that database, authentication will fail.
|
||||
# The deny passdb should always be specified before others, so it gets
|
||||
# checked first.
|
||||
|
||||
# Example deny passdb using passwd-file. You can use any passdb though.
|
||||
passdb {
|
||||
driver = passwd-file
|
||||
deny = yes
|
||||
|
||||
# File contains a list of usernames, one per line
|
||||
args = /usr/local/etc/dovecot/deny-users
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
# Authentication via dict backend. Included from 10-auth.conf.
|
||||
#
|
||||
# <doc/wiki/AuthDatabase.Dict.txt>
|
||||
|
||||
passdb {
|
||||
driver = dict
|
||||
|
||||
# Path for dict configuration file, see
|
||||
# example-config/dovecot-dict-auth.conf.ext
|
||||
args = /usr/local/etc/dovecot/dovecot-dict-auth.conf.ext
|
||||
}
|
||||
|
||||
userdb {
|
||||
driver = dict
|
||||
args = /usr/local/etc/dovecot/dovecot-dict-auth.conf.ext
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
# Authentication for LDAP users. Included from 10-auth.conf.
|
||||
#
|
||||
# <doc/wiki/AuthDatabase.LDAP.txt>
|
||||
|
||||
passdb {
|
||||
driver = ldap
|
||||
|
||||
# Path for LDAP configuration file, see example-config/dovecot-ldap.conf.ext
|
||||
args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext
|
||||
}
|
||||
|
||||
# "prefetch" user database means that the passdb already provided the
|
||||
# needed information and there's no need to do a separate userdb lookup.
|
||||
# <doc/wiki/UserDatabase.Prefetch.txt>
|
||||
#userdb {
|
||||
# driver = prefetch
|
||||
#}
|
||||
|
||||
userdb {
|
||||
driver = ldap
|
||||
args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext
|
||||
|
||||
# Default fields can be used to specify defaults that LDAP may override
|
||||
#default_fields = home=/home/virtual/%u
|
||||
}
|
||||
|
||||
# If you don't have any user-specific settings, you can avoid the userdb LDAP
|
||||
# lookup by using userdb static instead of userdb ldap, for example:
|
||||
# <doc/wiki/UserDatabase.Static.txt>
|
||||
#userdb {
|
||||
#driver = static
|
||||
#args = uid=vmail gid=vmail home=/var/vmail/%u
|
||||
#}
|
@ -0,0 +1,16 @@
|
||||
# Authentication for master users. Included from 10-auth.conf.
|
||||
|
||||
# By adding master=yes setting inside a passdb you make the passdb a list
|
||||
# of "master users", who can log in as anyone else.
|
||||
# <doc/wiki/Authentication.MasterUsers.txt>
|
||||
|
||||
# Example master user passdb using passwd-file. You can use any passdb though.
|
||||
passdb {
|
||||
driver = passwd-file
|
||||
master = yes
|
||||
args = /usr/local/etc/dovecot/master-users
|
||||
|
||||
# Unless you're using PAM, you probably still want the destination user to
|
||||
# be looked up from passdb that it really exists. pass=yes does that.
|
||||
pass = yes
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
# Authentication for passwd-file users. Included from 10-auth.conf.
|
||||
#
|
||||
# passwd-like file with specified location.
|
||||
# <doc/wiki/AuthDatabase.PasswdFile.txt>
|
||||
|
||||
passdb {
|
||||
driver = passwd-file
|
||||
args = scheme=CRYPT username_format=%u /usr/local/etc/dovecot/users
|
||||
}
|
||||
|
||||
userdb {
|
||||
driver = passwd-file
|
||||
args = username_format=%u /usr/local/etc/dovecot/users
|
||||
|
||||
# Default fields that can be overridden by passwd-file
|
||||
#default_fields = quota_rule=*:storage=1G
|
||||
|
||||
# Override fields from passwd-file
|
||||
#override_fields = home=/home/virtual/%u
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
# Authentication for SQL users. Included from 10-auth.conf.
|
||||
#
|
||||
# <doc/wiki/AuthDatabase.SQL.txt>
|
||||
|
||||
passdb {
|
||||
driver = sql
|
||||
|
||||
# Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
|
||||
args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
|
||||
}
|
||||
|
||||
# "prefetch" user database means that the passdb already provided the
|
||||
# needed information and there's no need to do a separate userdb lookup.
|
||||
# <doc/wiki/UserDatabase.Prefetch.txt>
|
||||
#userdb {
|
||||
# driver = prefetch
|
||||
#}
|
||||
|
||||
userdb {
|
||||
driver = sql
|
||||
args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
|
||||
}
|
||||
|
||||
# If you don't have any user-specific settings, you can avoid the user_query
|
||||
# by using userdb static instead of userdb sql, for example:
|
||||
# <doc/wiki/UserDatabase.Static.txt>
|
||||
#userdb {
|
||||
#driver = static
|
||||
#args = uid=vmail gid=vmail home=/var/vmail/%u
|
||||
#}
|
@ -0,0 +1,24 @@
|
||||
# Static passdb. Included from 10-auth.conf.
|
||||
|
||||
# This can be used for situations where Dovecot doesn't need to verify the
|
||||
# username or the password, or if there is a single password for all users:
|
||||
#
|
||||
# - proxy frontend, where the backend verifies the password
|
||||
# - proxy backend, where the frontend already verified the password
|
||||
# - authentication with SSL certificates
|
||||
# - simple testing
|
||||
|
||||
#passdb {
|
||||
# driver = static
|
||||
# args = proxy=y host=%1Mu.example.com nopassword=y
|
||||
#}
|
||||
|
||||
#passdb {
|
||||
# driver = static
|
||||
# args = password=test
|
||||
#}
|
||||
|
||||
#userdb {
|
||||
# driver = static
|
||||
# args = uid=vmail gid=vmail home=/home/%u
|
||||
#}
|
@ -0,0 +1,74 @@
|
||||
# Authentication for system users. Included from 10-auth.conf.
|
||||
#
|
||||
# <doc/wiki/PasswordDatabase.txt>
|
||||
# <doc/wiki/UserDatabase.txt>
|
||||
|
||||
# PAM authentication. Preferred nowadays by most systems.
|
||||
# PAM is typically used with either userdb passwd or userdb static.
|
||||
# REMEMBER: You'll need /etc/pam.d/dovecot file created for PAM
|
||||
# authentication to actually work. <doc/wiki/PasswordDatabase.PAM.txt>
|
||||
passdb {
|
||||
driver = pam
|
||||
# [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
|
||||
# [cache_key=<key>] [<service name>]
|
||||
#args = dovecot
|
||||
}
|
||||
|
||||
# System users (NSS, /etc/passwd, or similar).
|
||||
# In many systems nowadays this uses Name Service Switch, which is
|
||||
# configured in /etc/nsswitch.conf. <doc/wiki/AuthDatabase.Passwd.txt>
|
||||
#passdb {
|
||||
#driver = passwd
|
||||
# [blocking=no]
|
||||
#args =
|
||||
#}
|
||||
|
||||
# Shadow passwords for system users (NSS, /etc/shadow or similar).
|
||||
# Deprecated by PAM nowadays.
|
||||
# <doc/wiki/PasswordDatabase.Shadow.txt>
|
||||
#passdb {
|
||||
#driver = shadow
|
||||
# [blocking=no]
|
||||
#args =
|
||||
#}
|
||||
|
||||
# PAM-like authentication for OpenBSD.
|
||||
# <doc/wiki/PasswordDatabase.BSDAuth.txt>
|
||||
#passdb {
|
||||
#driver = bsdauth
|
||||
# [blocking=no] [cache_key=<key>]
|
||||
#args =
|
||||
#}
|
||||
|
||||
##
|
||||
## User databases
|
||||
##
|
||||
|
||||
# System users (NSS, /etc/passwd, or similar). In many systems nowadays this
|
||||
# uses Name Service Switch, which is configured in /etc/nsswitch.conf.
|
||||
userdb {
|
||||
# <doc/wiki/AuthDatabase.Passwd.txt>
|
||||
driver = passwd
|
||||
# [blocking=no]
|
||||
#args =
|
||||
|
||||
# Override fields from passwd
|
||||
#override_fields = home=/home/virtual/%u
|
||||
}
|
||||
|
||||
# Static settings generated from template <doc/wiki/UserDatabase.Static.txt>
|
||||
#userdb {
|
||||
#driver = static
|
||||
# Can return anything a userdb could normally return. For example:
|
||||
#
|
||||
# args = uid=500 gid=500 home=/var/mail/%u
|
||||
#
|
||||
# LDA and LMTP needs to look up users only from the userdb. This of course
|
||||
# doesn't work with static userdb because there is no list of users.
|
||||
# Normally static userdb handles this by doing a passdb lookup. This works
|
||||
# with most passdbs, with PAM being the most notable exception. If you do
|
||||
# the user verification another way, you can add allow_all_users=yes to
|
||||
# the args in which case the passdb lookup is skipped.
|
||||
#
|
||||
#args =
|
||||
#}
|
@ -0,0 +1,17 @@
|
||||
# Authentication for vpopmail users. Included from 10-auth.conf.
|
||||
#
|
||||
# <doc/wiki/AuthDatabase.VPopMail.txt>
|
||||
|
||||
passdb {
|
||||
driver = vpopmail
|
||||
|
||||
# [cache_key=<key>] [webmail=<ip>]
|
||||
args =
|
||||
}
|
||||
|
||||
userdb {
|
||||
driver = vpopmail
|
||||
|
||||
# [quota_template=<template>] - %q expands to Maildir++ quota
|
||||
args = quota_template=quota_rule=*:backend=%q
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
# This file is commonly accessed via passdb {} or userdb {} section in
|
||||
# conf.d/auth-dict.conf.ext
|
||||
|
||||
# Dictionary URI
|
||||
#uri =
|
||||
|
||||
# Default password scheme
|
||||
default_pass_scheme = MD5
|
||||
|
||||
# Username iteration prefix. Keys under this are assumed to contain usernames.
|
||||
iterate_prefix = userdb/
|
||||
|
||||
# Should iteration be disabled for this userdb? If this userdb acts only as a
|
||||
# cache there's no reason to try to iterate the (partial & duplicate) users.
|
||||
#iterate_disable = no
|
||||
|
||||
# The example here shows how to do multiple dict lookups and merge the replies.
|
||||
# The "passdb" and "userdb" keys are JSON objects containing key/value pairs,
|
||||
# for example: { "uid": 1000, "gid": 1000, "home": "/home/user" }
|
||||
|
||||
key passdb {
|
||||
key = passdb/%u
|
||||
format = json
|
||||
}
|
||||
key userdb {
|
||||
key = userdb/%u
|
||||
format = json
|
||||
}
|
||||
key quota {
|
||||
key = userdb/%u/quota
|
||||
#format = value
|
||||
# The default_value is used if the key isn't found. If default_value setting
|
||||
# isn't specified at all (even as empty), the passdb/userdb lookup fails with
|
||||
# "user doesn't exist".
|
||||
default_value = 100M
|
||||
}
|
||||
|
||||
# Space separated list of keys whose values contain key/value paired objects.
|
||||
# All the key/value pairs inside the object are added as passdb fields.
|
||||
passdb_objects = passdb
|
||||
|
||||
#passdb_fields {
|
||||
#}
|
||||
|
||||
# Userdb key/value object list.
|
||||
userdb_objects = userdb
|
||||
|
||||
userdb_fields {
|
||||
# dict:<key> refers to key names
|
||||
quota_rule = *:storage=%{dict:quota}
|
||||
|
||||
# dict:<key>.<objkey> refers to the objkey inside (JSON) object
|
||||
mail = maildir:%{dict:userdb.home}/Maildir
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
# This file is commonly accessed via dict {} section in dovecot.conf
|
||||
|
||||
#connect = host=localhost dbname=mails user=testuser password=pass
|
||||
|
||||
# CREATE TABLE quota (
|
||||
# username varchar(100) not null,
|
||||
# bytes bigint not null default 0,
|
||||
# messages integer not null default 0,
|
||||
# primary key (username)
|
||||
# );
|
||||
|
||||
map {
|
||||
pattern = priv/quota/storage
|
||||
table = quota
|
||||
username_field = username
|
||||
value_field = bytes
|
||||
}
|
||||
map {
|
||||
pattern = priv/quota/messages
|
||||
table = quota
|
||||
username_field = username
|
||||
value_field = messages
|
||||
}
|
||||
|
||||
# CREATE TABLE expires (
|
||||
# username varchar(100) not null,
|
||||
# mailbox varchar(255) not null,
|
||||
# expire_stamp integer not null,
|
||||
# primary key (username, mailbox)
|
||||
# );
|
||||
|
||||
map {
|
||||
pattern = shared/expire/$user/$mailbox
|
||||
table = expires
|
||||
value_field = expire_stamp
|
||||
|
||||
fields {
|
||||
username = $user
|
||||
mailbox = $mailbox
|
||||
}
|
||||
}
|
151
jails/config/mail/dovecot/example-config/dovecot-ldap.conf.ext
Normal file
151
jails/config/mail/dovecot/example-config/dovecot-ldap.conf.ext
Normal file
@ -0,0 +1,151 @@
|
||||
# This file is commonly accessed via passdb {} or userdb {} section in
|
||||
# conf.d/auth-ldap.conf.ext
|
||||
|
||||
# This file is opened as root, so it should be owned by root and mode 0600.
|
||||
#
|
||||
# http://wiki2.dovecot.org/AuthDatabase/LDAP
|
||||
#
|
||||
# NOTE: If you're not using authentication binds, you'll need to give
|
||||
# dovecot-auth read access to userPassword field in the LDAP server.
|
||||
# With OpenLDAP this is done by modifying /etc/ldap/slapd.conf. There should
|
||||
# already be something like this:
|
||||
|
||||
# access to attribute=userPassword
|
||||
# by dn="<dovecot's dn>" read # add this
|
||||
# by anonymous auth
|
||||
# by self write
|
||||
# by * none
|
||||
|
||||
# Space separated list of LDAP hosts to use. host:port is allowed too.
|
||||
#hosts =
|
||||
|
||||
# LDAP URIs to use. You can use this instead of hosts list. Note that this
|
||||
# setting isn't supported by all LDAP libraries.
|
||||
#uris =
|
||||
|
||||
# Distinguished Name - the username used to login to the LDAP server.
|
||||
# Leave it commented out to bind anonymously (useful with auth_bind=yes).
|
||||
#dn =
|
||||
|
||||
# Password for LDAP server, if dn is specified.
|
||||
#dnpass =
|
||||
|
||||
# Use SASL binding instead of the simple binding. Note that this changes
|
||||
# ldap_version automatically to be 3 if it's lower.
|
||||
#sasl_bind = no
|
||||
# SASL mechanism name to use.
|
||||
#sasl_mech =
|
||||
# SASL realm to use.
|
||||
#sasl_realm =
|
||||
# SASL authorization ID, ie. the dnpass is for this "master user", but the
|
||||
# dn is still the logged in user. Normally you want to keep this empty.
|
||||
#sasl_authz_id =
|
||||
|
||||
# Use TLS to connect to the LDAP server.
|
||||
#tls = no
|
||||
# TLS options, currently supported only with OpenLDAP:
|
||||
#tls_ca_cert_file =
|
||||
#tls_ca_cert_dir =
|
||||
#tls_cipher_suite =
|
||||
# TLS cert/key is used only if LDAP server requires a client certificate.
|
||||
#tls_cert_file =
|
||||
#tls_key_file =
|
||||
# Valid values: never, hard, demand, allow, try
|
||||
#tls_require_cert =
|
||||
|
||||
# Use the given ldaprc path.
|
||||
#ldaprc_path =
|
||||
|
||||
# LDAP library debug level as specified by LDAP_DEBUG_* in ldap_log.h.
|
||||
# -1 = everything. You may need to recompile OpenLDAP with debugging enabled
|
||||
# to get enough output.
|
||||
#debug_level = 0
|
||||
|
||||
# Use authentication binding for verifying password's validity. This works by
|
||||
# logging into LDAP server using the username and password given by client.
|
||||
# The pass_filter is used to find the DN for the user. Note that the pass_attrs
|
||||
# is still used, only the password field is ignored in it. Before doing any
|
||||
# search, the binding is switched back to the default DN.
|
||||
#auth_bind = no
|
||||
|
||||
# If authentication binding is used, you can save one LDAP request per login
|
||||
# if users' DN can be specified with a common template. The template can use
|
||||
# the standard %variables (see user_filter). Note that you can't
|
||||
# use any pass_attrs if you use this setting.
|
||||
#
|
||||
# If you use this setting, it's a good idea to use a different
|
||||
# dovecot-ldap.conf.ext for userdb (it can even be a symlink, just as long as
|
||||
# the filename is different in userdb's args). That way one connection is used
|
||||
# only for LDAP binds and another connection is used for user lookups.
|
||||
# Otherwise the binding is changed to the default DN before each user lookup.
|
||||
#
|
||||
# For example:
|
||||
# auth_bind_userdn = cn=%u,ou=people,o=org
|
||||
#
|
||||
#auth_bind_userdn =
|
||||
|
||||
# LDAP protocol version to use. Likely 2 or 3.
|
||||
#ldap_version = 3
|
||||
|
||||
# LDAP base. %variables can be used here.
|
||||
# For example: dc=mail, dc=example, dc=org
|
||||
base =
|
||||
|
||||
# Dereference: never, searching, finding, always
|
||||
#deref = never
|
||||
|
||||
# Search scope: base, onelevel, subtree
|
||||
#scope = subtree
|
||||
|
||||
# User attributes are given in LDAP-name=dovecot-internal-name list. The
|
||||
# internal names are:
|
||||
# uid - System UID
|
||||
# gid - System GID
|
||||
# home - Home directory
|
||||
# mail - Mail location
|
||||
#
|
||||
# There are also other special fields which can be returned, see
|
||||
# http://wiki2.dovecot.org/UserDatabase/ExtraFields
|
||||
#user_attrs = homeDirectory=home,uidNumber=uid,gidNumber=gid
|
||||
|
||||
# Filter for user lookup. Some variables can be used (see
|
||||
# http://wiki2.dovecot.org/Variables for full list):
|
||||
# %u - username
|
||||
# %n - user part in user@domain, same as %u if there's no domain
|
||||
# %d - domain part in user@domain, empty if user there's no domain
|
||||
#user_filter = (&(objectClass=posixAccount)(uid=%u))
|
||||
|
||||
# Password checking attributes:
|
||||
# user: Virtual user name (user@domain), if you wish to change the
|
||||
# user-given username to something else
|
||||
# password: Password, may optionally start with {type}, eg. {crypt}
|
||||
# There are also other special fields which can be returned, see
|
||||
# http://wiki2.dovecot.org/PasswordDatabase/ExtraFields
|
||||
#pass_attrs = uid=user,userPassword=password
|
||||
|
||||
# If you wish to avoid two LDAP lookups (passdb + userdb), you can use
|
||||
# userdb prefetch instead of userdb ldap in dovecot.conf. In that case you'll
|
||||
# also have to include user_attrs in pass_attrs field prefixed with "userdb_"
|
||||
# string. For example:
|
||||
#pass_attrs = uid=user,userPassword=password,\
|
||||
# homeDirectory=userdb_home,uidNumber=userdb_uid,gidNumber=userdb_gid
|
||||
|
||||
# Filter for password lookups
|
||||
#pass_filter = (&(objectClass=posixAccount)(uid=%u))
|
||||
|
||||
# Attributes and filter to get a list of all users
|
||||
#iterate_attrs = uid=user
|
||||
#iterate_filter = (objectClass=posixAccount)
|
||||
|
||||
# Default password scheme. "{scheme}" before password overrides this.
|
||||
# List of supported schemes is in: http://wiki2.dovecot.org/Authentication
|
||||
#default_pass_scheme = CRYPT
|
||||
|
||||
# By default all LDAP lookups are performed by the auth master process.
|
||||
# If blocking=yes, auth worker processes are used to perform the lookups.
|
||||
# Each auth worker process creates its own LDAP connection so this can
|
||||
# increase parallelism. With blocking=no the auth master process can
|
||||
# keep 8 requests pipelined for the LDAP connection, while with blocking=yes
|
||||
# each connection has a maximum of 1 request running. For small systems the
|
||||
# blocking=no is sufficient and uses less resources.
|
||||
#blocking = no
|
144
jails/config/mail/dovecot/example-config/dovecot-sql.conf.ext
Normal file
144
jails/config/mail/dovecot/example-config/dovecot-sql.conf.ext
Normal file
@ -0,0 +1,144 @@
|
||||
# This file is commonly accessed via passdb {} or userdb {} section in
|
||||
# conf.d/auth-sql.conf.ext
|
||||
|
||||
# This file is opened as root, so it should be owned by root and mode 0600.
|
||||
#
|
||||
# http://wiki2.dovecot.org/AuthDatabase/SQL
|
||||
#
|
||||
# For the sql passdb module, you'll need a database with a table that
|
||||
# contains fields for at least the username and password. If you want to
|
||||
# use the user@domain syntax, you might want to have a separate domain
|
||||
# field as well.
|
||||
#
|
||||
# If your users all have the same uig/gid, and have predictable home
|
||||
# directories, you can use the static userdb module to generate the home
|
||||
# dir based on the username and domain. In this case, you won't need fields
|
||||
# for home, uid, or gid in the database.
|
||||
#
|
||||
# If you prefer to use the sql userdb module, you'll want to add fields
|
||||
# for home, uid, and gid. Here is an example table:
|
||||
#
|
||||
# CREATE TABLE users (
|
||||
# username VARCHAR(128) NOT NULL,
|
||||
# domain VARCHAR(128) NOT NULL,
|
||||
# password VARCHAR(64) NOT NULL,
|
||||
# home VARCHAR(255) NOT NULL,
|
||||
# uid INTEGER NOT NULL,
|
||||
# gid INTEGER NOT NULL,
|
||||
# active CHAR(1) DEFAULT 'Y' NOT NULL
|
||||
# );
|
||||
|
||||
# Database driver: mysql, pgsql, sqlite
|
||||
#driver =
|
||||
|
||||
# Database connection string. This is driver-specific setting.
|
||||
#
|
||||
# HA / round-robin load-balancing is supported by giving multiple host
|
||||
# settings, like: host=sql1.host.org host=sql2.host.org
|
||||
#
|
||||
# pgsql:
|
||||
# For available options, see the PostgreSQL documentation for the
|
||||
# PQconnectdb function of libpq.
|
||||
# Use maxconns=n (default 5) to change how many connections Dovecot can
|
||||
# create to pgsql.
|
||||
#
|
||||
# mysql:
|
||||
# Basic options emulate PostgreSQL option names:
|
||||
# host, port, user, password, dbname
|
||||
#
|
||||
# But also adds some new settings:
|
||||
# client_flags - See MySQL manual
|
||||
# connect_timeout - Connect timeout in seconds (default: 5)
|
||||
# read_timeout - Read timeout in seconds (default: 30)
|
||||
# write_timeout - Write timeout in seconds (default: 30)
|
||||
# ssl_ca, ssl_ca_path - Set either one or both to enable SSL
|
||||
# ssl_cert, ssl_key - For sending client-side certificates to server
|
||||
# ssl_cipher - Set minimum allowed cipher security (default: HIGH)
|
||||
# ssl_verify_server_cert - Verify that the name in the server SSL certificate
|
||||
# matches the host (default: no)
|
||||
# option_file - Read options from the given file instead of
|
||||
# the default my.cnf location
|
||||
# option_group - Read options from the given group (default: client)
|
||||
#
|
||||
# You can connect to UNIX sockets by using host: host=/var/run/mysql.sock
|
||||
# Note that currently you can't use spaces in parameters.
|
||||
#
|
||||
# sqlite:
|
||||
# The path to the database file.
|
||||
#
|
||||
# Examples:
|
||||
# connect = host=192.168.1.1 dbname=users
|
||||
# connect = host=sql.example.com dbname=virtual user=virtual password=blarg
|
||||
# connect = /etc/dovecot/authdb.sqlite
|
||||
#
|
||||
#connect =
|
||||
|
||||
# Default password scheme.
|
||||
#
|
||||
# List of supported schemes is in
|
||||
# http://wiki2.dovecot.org/Authentication/PasswordSchemes
|
||||
#
|
||||
#default_pass_scheme = MD5
|
||||
|
||||
# passdb query to retrieve the password. It can return fields:
|
||||
# password - The user's password. This field must be returned.
|
||||
# user - user@domain from the database. Needed with case-insensitive lookups.
|
||||
# username and domain - An alternative way to represent the "user" field.
|
||||
#
|
||||
# The "user" field is often necessary with case-insensitive lookups to avoid
|
||||
# e.g. "name" and "nAme" logins creating two different mail directories. If
|
||||
# your user and domain names are in separate fields, you can return "username"
|
||||
# and "domain" fields instead of "user".
|
||||
#
|
||||
# The query can also return other fields which have a special meaning, see
|
||||
# http://wiki2.dovecot.org/PasswordDatabase/ExtraFields
|
||||
#
|
||||
# Commonly used available substitutions (see http://wiki2.dovecot.org/Variables
|
||||
# for full list):
|
||||
# %u = entire user@domain
|
||||
# %n = user part of user@domain
|
||||
# %d = domain part of user@domain
|
||||
#
|
||||
# Note that these can be used only as input to SQL query. If the query outputs
|
||||
# any of these substitutions, they're not touched. Otherwise it would be
|
||||
# difficult to have eg. usernames containing '%' characters.
|
||||
#
|
||||
# Example:
|
||||
# password_query = SELECT userid AS user, pw AS password \
|
||||
# FROM users WHERE userid = '%u' AND active = 'Y'
|
||||
#
|
||||
#password_query = \
|
||||
# SELECT username, domain, password \
|
||||
# FROM users WHERE username = '%n' AND domain = '%d'
|
||||
|
||||
# userdb query to retrieve the user information. It can return fields:
|
||||
# uid - System UID (overrides mail_uid setting)
|
||||
# gid - System GID (overrides mail_gid setting)
|
||||
# home - Home directory
|
||||
# mail - Mail location (overrides mail_location setting)
|
||||
#
|
||||
# None of these are strictly required. If you use a single UID and GID, and
|
||||
# home or mail directory fits to a template string, you could use userdb static
|
||||
# instead. For a list of all fields that can be returned, see
|
||||
# http://wiki2.dovecot.org/UserDatabase/ExtraFields
|
||||
#
|
||||
# Examples:
|
||||
# user_query = SELECT home, uid, gid FROM users WHERE userid = '%u'
|
||||
# user_query = SELECT dir AS home, user AS uid, group AS gid FROM users where userid = '%u'
|
||||
# user_query = SELECT home, 501 AS uid, 501 AS gid FROM users WHERE userid = '%u'
|
||||
#
|
||||
#user_query = \
|
||||
# SELECT home, uid, gid \
|
||||
# FROM users WHERE username = '%n' AND domain = '%d'
|
||||
|
||||
# If you wish to avoid two SQL lookups (passdb + userdb), you can use
|
||||
# userdb prefetch instead of userdb sql in dovecot.conf. In that case you'll
|
||||
# also have to return userdb fields in password_query prefixed with "userdb_"
|
||||
# string. For example:
|
||||
#password_query = \
|
||||
# SELECT userid AS user, password, \
|
||||
# home AS userdb_home, uid AS userdb_uid, gid AS userdb_gid \
|
||||
# FROM users WHERE userid = '%u'
|
||||
|
||||
# Query to get a list of all usernames.
|
||||
#iterate_query = SELECT username AS user FROM users
|
102
jails/config/mail/dovecot/example-config/dovecot.conf
Normal file
102
jails/config/mail/dovecot/example-config/dovecot.conf
Normal file
@ -0,0 +1,102 @@
|
||||
## Dovecot configuration file
|
||||
|
||||
# If you're in a hurry, see http://wiki2.dovecot.org/QuickConfiguration
|
||||
|
||||
# "doveconf -n" command gives a clean output of the changed settings. Use it
|
||||
# instead of copy&pasting files when posting to the Dovecot mailing list.
|
||||
|
||||
# '#' character and everything after it is treated as comments. Extra spaces
|
||||
# and tabs are ignored. If you want to use either of these explicitly, put the
|
||||
# value inside quotes, eg.: key = "# char and trailing whitespace "
|
||||
|
||||
# Most (but not all) settings can be overridden by different protocols and/or
|
||||
# source/destination IPs by placing the settings inside sections, for example:
|
||||
# protocol imap { }, local 127.0.0.1 { }, remote 10.0.0.0/8 { }
|
||||
|
||||
# Default values are shown for each setting, it's not required to uncomment
|
||||
# those. These are exceptions to this though: No sections (e.g. namespace {})
|
||||
# or plugin settings are added by default, they're listed only as examples.
|
||||
# Paths are also just examples with the real defaults being based on configure
|
||||
# options. The paths listed here are for configure --prefix=/usr
|
||||
# --sysconfdir=/usr/local/etc --localstatedir=/var
|
||||
|
||||
# Protocols we want to be serving.
|
||||
#protocols = imap pop3 lmtp submission
|
||||
|
||||
# A comma separated list of IPs or hosts where to listen in for connections.
|
||||
# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
|
||||
# If you want to specify non-default ports or anything more complex,
|
||||
# edit conf.d/master.conf.
|
||||
#listen = *, ::
|
||||
|
||||
# Base directory where to store runtime data.
|
||||
#base_dir = /var/run/dovecot/
|
||||
|
||||
# Name of this instance. In multi-instance setup doveadm and other commands
|
||||
# can use -i <instance_name> to select which instance is used (an alternative
|
||||
# to -c <config_path>). The instance name is also added to Dovecot processes
|
||||
# in ps output.
|
||||
#instance_name = dovecot
|
||||
|
||||
# Greeting message for clients.
|
||||
#login_greeting = Dovecot ready.
|
||||
|
||||
# Space separated list of trusted network ranges. Connections from these
|
||||
# IPs are allowed to override their IP addresses and ports (for logging and
|
||||
# for authentication checks). disable_plaintext_auth is also ignored for
|
||||
# these networks. Typically you'd specify your IMAP proxy servers here.
|
||||
#login_trusted_networks =
|
||||
|
||||
# Space separated list of login access check sockets (e.g. tcpwrap)
|
||||
#login_access_sockets =
|
||||
|
||||
# With proxy_maybe=yes if proxy destination matches any of these IPs, don't do
|
||||
# proxying. This isn't necessary normally, but may be useful if the destination
|
||||
# IP is e.g. a load balancer's IP.
|
||||
#auth_proxy_self =
|
||||
|
||||
# Show more verbose process titles (in ps). Currently shows user name and
|
||||
# IP address. Useful for seeing who are actually using the IMAP processes
|
||||
# (eg. shared mailboxes or if same uid is used for multiple accounts).
|
||||
#verbose_proctitle = no
|
||||
|
||||
# Should all processes be killed when Dovecot master process shuts down.
|
||||
# Setting this to "no" means that Dovecot can be upgraded without
|
||||
# forcing existing client connections to close (although that could also be
|
||||
# a problem if the upgrade is e.g. because of a security fix).
|
||||
#shutdown_clients = yes
|
||||
|
||||
# If non-zero, run mail commands via this many connections to doveadm server,
|
||||
# instead of running them directly in the same process.
|
||||
#doveadm_worker_count = 0
|
||||
# UNIX socket or host:port used for connecting to doveadm server
|
||||
#doveadm_socket_path = doveadm-server
|
||||
|
||||
# Space separated list of environment variables that are preserved on Dovecot
|
||||
# startup and passed down to all of its child processes. You can also give
|
||||
# key=value pairs to always set specific settings.
|
||||
#import_environment = TZ
|
||||
|
||||
##
|
||||
## Dictionary server settings
|
||||
##
|
||||
|
||||
# Dictionary can be used to store key=value lists. This is used by several
|
||||
# plugins. The dictionary can be accessed either directly or though a
|
||||
# dictionary server. The following dict block maps dictionary names to URIs
|
||||
# when the server is used. These can then be referenced using URIs in format
|
||||
# "proxy::<name>".
|
||||
|
||||
dict {
|
||||
#quota = mysql:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext
|
||||
#expire = sqlite:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext
|
||||
}
|
||||
|
||||
# Most of the actual configuration gets included below. The filenames are
|
||||
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
|
||||
# in filenames are intended to make it easier to understand the ordering.
|
||||
!include conf.d/*.conf
|
||||
|
||||
# A config file can also tried to be included without giving an error if
|
||||
# it's not found:
|
||||
!include_try local.conf
|
14
jails/config/mail/dovecot/ldap.conf.ext
Normal file
14
jails/config/mail/dovecot/ldap.conf.ext
Normal file
@ -0,0 +1,14 @@
|
||||
hosts = ldap.ahlawat.com
|
||||
auth_bind = no
|
||||
ldap_version = 3
|
||||
base = ou=people,dc=infra
|
||||
deref = never
|
||||
scope = subtree
|
||||
user_attrs = homeDirectory=cn
|
||||
user_filter = (&(objectclass=posixAccount)(cn=%n))
|
||||
pass_attrs = uid=user,userPassword=password
|
||||
pass_filter = (&(objectclass=posixAccount)(cn=%n))
|
||||
# Attributes and filter to get a list of all users
|
||||
iterate_attrs = uid=user
|
||||
iterate_filter = (objectClass=posixAccount)
|
||||
default_pass_scheme = CRYPT
|
5
jails/config/mail/dovecot/sieve-before.d/10-rspamd.sieve
Normal file
5
jails/config/mail/dovecot/sieve-before.d/10-rspamd.sieve
Normal file
@ -0,0 +1,5 @@
|
||||
require ["fileinto"];
|
||||
|
||||
if header :is "X-Spam" "Yes" {
|
||||
fileinto "Junk";
|
||||
}
|
BIN
jails/config/mail/dovecot/sieve-before.d/10-rspamd.svbin
Normal file
BIN
jails/config/mail/dovecot/sieve-before.d/10-rspamd.svbin
Normal file
Binary file not shown.
15
jails/config/mail/dovecot/sieve/report-ham.sieve
Normal file
15
jails/config/mail/dovecot/sieve/report-ham.sieve
Normal file
@ -0,0 +1,15 @@
|
||||
require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];
|
||||
|
||||
if environment :matches "imap.mailbox" "*" {
|
||||
set "mailbox" "${1}";
|
||||
}
|
||||
|
||||
if string "${mailbox}" "Trash" {
|
||||
stop;
|
||||
}
|
||||
|
||||
if environment :matches "imap.email" "*" {
|
||||
set "email" "${1}";
|
||||
}
|
||||
|
||||
pipe :copy "train-ham.sh" [ "${email}" ];
|
BIN
jails/config/mail/dovecot/sieve/report-ham.svbin
Normal file
BIN
jails/config/mail/dovecot/sieve/report-ham.svbin
Normal file
Binary file not shown.
7
jails/config/mail/dovecot/sieve/report-spam.sieve
Normal file
7
jails/config/mail/dovecot/sieve/report-spam.sieve
Normal file
@ -0,0 +1,7 @@
|
||||
require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];
|
||||
|
||||
if environment :matches "imap.email" "*" {
|
||||
set "email" "${1}";
|
||||
}
|
||||
|
||||
pipe :copy "train-spam.sh" [ "${email}" ];
|
BIN
jails/config/mail/dovecot/sieve/report-spam.svbin
Normal file
BIN
jails/config/mail/dovecot/sieve/report-spam.svbin
Normal file
Binary file not shown.
1
jails/config/mail/dovecot/sieve/train-ham.sh
Executable file
1
jails/config/mail/dovecot/sieve/train-ham.sh
Executable file
@ -0,0 +1 @@
|
||||
exec /usr/local/bin/rspamc -h /var/run/rspamd/rspamd.sock learn_ham
|
1
jails/config/mail/dovecot/sieve/train-spam.sh
Executable file
1
jails/config/mail/dovecot/sieve/train-spam.sh
Executable file
@ -0,0 +1 @@
|
||||
exec /usr/local/bin/rspamc -h /var/run/rspamd/rspamd.sock learn_spam
|
4
jails/config/mail/periodic.conf
Normal file
4
jails/config/mail/periodic.conf
Normal file
@ -0,0 +1,4 @@
|
||||
daily_clean_hoststat_enable="NO"
|
||||
daily_status_mail_rejects_enable="NO"
|
||||
daily_status_include_submit_mailq="NO"
|
||||
daily_submit_queuerun="NO"
|
20
jails/config/mail/pkgp.conf
Normal file
20
jails/config/mail/pkgp.conf
Normal file
@ -0,0 +1,20 @@
|
||||
FreeBSD: {
|
||||
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
|
||||
enabled: no
|
||||
}
|
||||
|
||||
pkgp-freebsd-pkg: {
|
||||
url: "http://pkgp-freebsd-pkg.ahlawat.com/${ABI}/latest",
|
||||
mirror_type: "http",
|
||||
enabled: yes,
|
||||
priority: 10
|
||||
}
|
||||
|
||||
pkgp121: {
|
||||
url: "http://pkgp.ahlawat.com/packages/pj121-default/",
|
||||
mirror_type: "http",
|
||||
signature_type: "pubkey",
|
||||
pubkey: "/mnt/certs/poudriere.cert",
|
||||
enabled: yes,
|
||||
priority: 100
|
||||
}
|
508
jails/config/mail/postfix/LICENSE
Normal file
508
jails/config/mail/postfix/LICENSE
Normal file
@ -0,0 +1,508 @@
|
||||
LICENSE - SECURE MAILER
|
||||
|
||||
This software is dual-licensed under both the Eclipse Public License
|
||||
version 2.0 and the IBM Public License version 1.0, for those who
|
||||
are more comfortable continuing with that license. Recipients can
|
||||
choose to take the software under the license of their choice.
|
||||
|
||||
The remainder of this text contains a copy of each license.
|
||||
|
||||
Eclipse Public License - v 2.0
|
||||
|
||||
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
|
||||
PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
|
||||
OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
|
||||
|
||||
1. DEFINITIONS
|
||||
|
||||
"Contribution" means:
|
||||
|
||||
a) in the case of the initial Contributor, the initial content
|
||||
Distributed under this Agreement, and
|
||||
|
||||
b) in the case of each subsequent Contributor:
|
||||
i) changes to the Program, and
|
||||
ii) additions to the Program;
|
||||
where such changes and/or additions to the Program originate from
|
||||
and are Distributed by that particular Contributor. A Contribution
|
||||
"originates" from a Contributor if it was added to the Program by
|
||||
such Contributor itself or anyone acting on such Contributor's behalf.
|
||||
Contributions do not include changes or additions to the Program that
|
||||
are not Modified Works.
|
||||
|
||||
"Contributor" means any person or entity that Distributes the Program.
|
||||
|
||||
"Licensed Patents" mean patent claims licensable by a Contributor which
|
||||
are necessarily infringed by the use or sale of its Contribution alone
|
||||
or when combined with the Program.
|
||||
|
||||
"Program" means the Contributions Distributed in accordance with this
|
||||
Agreement.
|
||||
|
||||
"Recipient" means anyone who receives the Program under this Agreement
|
||||
or any Secondary License (as applicable), including Contributors.
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source Code or other
|
||||
form, that is based on (or derived from) the Program and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship.
|
||||
|
||||
"Modified Works" shall mean any work in Source Code or other form that
|
||||
results from an addition to, deletion from, or modification of the
|
||||
contents of the Program, including, for purposes of clarity any new file
|
||||
in Source Code form that contains any contents of the Program. Modified
|
||||
Works shall not include works that contain only declarations,
|
||||
interfaces, types, classes, structures, or files of the Program solely
|
||||
in each case in order to link to, bind by name, or subclass the Program
|
||||
or Modified Works thereof.
|
||||
|
||||
"Distribute" means the acts of a) distributing or b) making available
|
||||
in any manner that enables the transfer of a copy.
|
||||
|
||||
"Source Code" means the form of a Program preferred for making
|
||||
modifications, including but not limited to software source code,
|
||||
documentation source, and configuration files.
|
||||
|
||||
"Secondary License" means either the GNU General Public License,
|
||||
Version 2.0, or any later versions of that license, including any
|
||||
exceptions or additional permissions as identified by the initial
|
||||
Contributor.
|
||||
|
||||
2. GRANT OF RIGHTS
|
||||
|
||||
a) Subject to the terms of this Agreement, each Contributor hereby
|
||||
grants Recipient a non-exclusive, worldwide, royalty-free copyright
|
||||
license to reproduce, prepare Derivative Works of, publicly display,
|
||||
publicly perform, Distribute and sublicense the Contribution of such
|
||||
Contributor, if any, and such Derivative Works.
|
||||
|
||||
b) Subject to the terms of this Agreement, each Contributor hereby
|
||||
grants Recipient a non-exclusive, worldwide, royalty-free patent
|
||||
license under Licensed Patents to make, use, sell, offer to sell,
|
||||
import and otherwise transfer the Contribution of such Contributor,
|
||||
if any, in Source Code or other form. This patent license shall
|
||||
apply to the combination of the Contribution and the Program if, at
|
||||
the time the Contribution is added by the Contributor, such addition
|
||||
of the Contribution causes such combination to be covered by the
|
||||
Licensed Patents. The patent license shall not apply to any other
|
||||
combinations which include the Contribution. No hardware per se is
|
||||
licensed hereunder.
|
||||
|
||||
c) Recipient understands that although each Contributor grants the
|
||||
licenses to its Contributions set forth herein, no assurances are
|
||||
provided by any Contributor that the Program does not infringe the
|
||||
patent or other intellectual property rights of any other entity.
|
||||
Each Contributor disclaims any liability to Recipient for claims
|
||||
brought by any other entity based on infringement of intellectual
|
||||
property rights or otherwise. As a condition to exercising the
|
||||
rights and licenses granted hereunder, each Recipient hereby
|
||||
assumes sole responsibility to secure any other intellectual
|
||||
property rights needed, if any. For example, if a third party
|
||||
patent license is required to allow Recipient to Distribute the
|
||||
Program, it is Recipient's responsibility to acquire that license
|
||||
before distributing the Program.
|
||||
|
||||
d) Each Contributor represents that to its knowledge it has
|
||||
sufficient copyright rights in its Contribution, if any, to grant
|
||||
the copyright license set forth in this Agreement.
|
||||
|
||||
e) Notwithstanding the terms of any Secondary License, no
|
||||
Contributor makes additional grants to any Recipient (other than
|
||||
those set forth in this Agreement) as a result of such Recipient's
|
||||
receipt of the Program under the terms of a Secondary License
|
||||
(if permitted under the terms of Section 3).
|
||||
|
||||
3. REQUIREMENTS
|
||||
|
||||
3.1 If a Contributor Distributes the Program in any form, then:
|
||||
|
||||
a) the Program must also be made available as Source Code, in
|
||||
accordance with section 3.2, and the Contributor must accompany
|
||||
the Program with a statement that the Source Code for the Program
|
||||
is available under this Agreement, and informs Recipients how to
|
||||
obtain it in a reasonable manner on or through a medium customarily
|
||||
used for software exchange; and
|
||||
|
||||
b) the Contributor may Distribute the Program under a license
|
||||
different than this Agreement, provided that such license:
|
||||
i) effectively disclaims on behalf of all other Contributors all
|
||||
warranties and conditions, express and implied, including
|
||||
warranties or conditions of title and non-infringement, and
|
||||
implied warranties or conditions of merchantability and fitness
|
||||
for a particular purpose;
|
||||
|
||||
ii) effectively excludes on behalf of all other Contributors all
|
||||
liability for damages, including direct, indirect, special,
|
||||
incidental and consequential damages, such as lost profits;
|
||||
|
||||
iii) does not attempt to limit or alter the recipients' rights
|
||||
in the Source Code under section 3.2; and
|
||||
|
||||
iv) requires any subsequent distribution of the Program by any
|
||||
party to be under a license that satisfies the requirements
|
||||
of this section 3.
|
||||
|
||||
3.2 When the Program is Distributed as Source Code:
|
||||
|
||||
a) it must be made available under this Agreement, or if the
|
||||
Program (i) is combined with other material in a separate file or
|
||||
files made available under a Secondary License, and (ii) the initial
|
||||
Contributor attached to the Source Code the notice described in
|
||||
Exhibit A of this Agreement, then the Program may be made available
|
||||
under the terms of such Secondary Licenses, and
|
||||
|
||||
b) a copy of this Agreement must be included with each copy of
|
||||
the Program.
|
||||
|
||||
3.3 Contributors may not remove or alter any copyright, patent,
|
||||
trademark, attribution notices, disclaimers of warranty, or limitations
|
||||
of liability ("notices") contained within the Program from any copy of
|
||||
the Program which they Distribute, provided that Contributors may add
|
||||
their own appropriate notices.
|
||||
|
||||
4. COMMERCIAL DISTRIBUTION
|
||||
|
||||
Commercial distributors of software may accept certain responsibilities
|
||||
with respect to end users, business partners and the like. While this
|
||||
license is intended to facilitate the commercial use of the Program,
|
||||
the Contributor who includes the Program in a commercial product
|
||||
offering should do so in a manner which does not create potential
|
||||
liability for other Contributors. Therefore, if a Contributor includes
|
||||
the Program in a commercial product offering, such Contributor
|
||||
("Commercial Contributor") hereby agrees to defend and indemnify every
|
||||
other Contributor ("Indemnified Contributor") against any losses,
|
||||
damages and costs (collectively "Losses") arising from claims, lawsuits
|
||||
and other legal actions brought by a third party against the Indemnified
|
||||
Contributor to the extent caused by the acts or omissions of such
|
||||
Commercial Contributor in connection with its distribution of the Program
|
||||
in a commercial product offering. The obligations in this section do not
|
||||
apply to any claims or Losses relating to any actual or alleged
|
||||
intellectual property infringement. In order to qualify, an Indemnified
|
||||
Contributor must: a) promptly notify the Commercial Contributor in
|
||||
writing of such claim, and b) allow the Commercial Contributor to control,
|
||||
and cooperate with the Commercial Contributor in, the defense and any
|
||||
related settlement negotiations. The Indemnified Contributor may
|
||||
participate in any such claim at its own expense.
|
||||
|
||||
For example, a Contributor might include the Program in a commercial
|
||||
product offering, Product X. That Contributor is then a Commercial
|
||||
Contributor. If that Commercial Contributor then makes performance
|
||||
claims, or offers warranties related to Product X, those performance
|
||||
claims and warranties are such Commercial Contributor's responsibility
|
||||
alone. Under this section, the Commercial Contributor would have to
|
||||
defend claims against the other Contributors related to those performance
|
||||
claims and warranties, and if a court requires any other Contributor to
|
||||
pay any damages as a result, the Commercial Contributor must pay
|
||||
those damages.
|
||||
|
||||
5. NO WARRANTY
|
||||
|
||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
|
||||
PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
|
||||
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
|
||||
IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
|
||||
TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
|
||||
PURPOSE. Each Recipient is solely responsible for determining the
|
||||
appropriateness of using and distributing the Program and assumes all
|
||||
risks associated with its exercise of rights under this Agreement,
|
||||
including but not limited to the risks and costs of program errors,
|
||||
compliance with applicable laws, damage to or loss of data, programs
|
||||
or equipment, and unavailability or interruption of operations.
|
||||
|
||||
6. DISCLAIMER OF LIABILITY
|
||||
|
||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
|
||||
PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
|
||||
SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
|
||||
PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
|
||||
EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
7. GENERAL
|
||||
|
||||
If any provision of this Agreement is invalid or unenforceable under
|
||||
applicable law, it shall not affect the validity or enforceability of
|
||||
the remainder of the terms of this Agreement, and without further
|
||||
action by the parties hereto, such provision shall be reformed to the
|
||||
minimum extent necessary to make such provision valid and enforceable.
|
||||
|
||||
If Recipient institutes patent litigation against any entity
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that the
|
||||
Program itself (excluding combinations of the Program with other software
|
||||
or hardware) infringes such Recipient's patent(s), then such Recipient's
|
||||
rights granted under Section 2(b) shall terminate as of the date such
|
||||
litigation is filed.
|
||||
|
||||
All Recipient's rights under this Agreement shall terminate if it
|
||||
fails to comply with any of the material terms or conditions of this
|
||||
Agreement and does not cure such failure in a reasonable period of
|
||||
time after becoming aware of such noncompliance. If all Recipient's
|
||||
rights under this Agreement terminate, Recipient agrees to cease use
|
||||
and distribution of the Program as soon as reasonably practicable.
|
||||
However, Recipient's obligations under this Agreement and any licenses
|
||||
granted by Recipient relating to the Program shall continue and survive.
|
||||
|
||||
Everyone is permitted to copy and distribute copies of this Agreement,
|
||||
but in order to avoid inconsistency the Agreement is copyrighted and
|
||||
may only be modified in the following manner. The Agreement Steward
|
||||
reserves the right to publish new versions (including revisions) of
|
||||
this Agreement from time to time. No one other than the Agreement
|
||||
Steward has the right to modify this Agreement. The Eclipse Foundation
|
||||
is the initial Agreement Steward. The Eclipse Foundation may assign the
|
||||
responsibility to serve as the Agreement Steward to a suitable separate
|
||||
entity. Each new version of the Agreement will be given a distinguishing
|
||||
version number. The Program (including Contributions) may always be
|
||||
Distributed subject to the version of the Agreement under which it was
|
||||
received. In addition, after a new version of the Agreement is published,
|
||||
Contributor may elect to Distribute the Program (including its
|
||||
Contributions) under the new version.
|
||||
|
||||
Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
|
||||
receives no rights or licenses to the intellectual property of any
|
||||
Contributor under this Agreement, whether expressly, by implication,
|
||||
estoppel or otherwise. All rights in the Program not expressly granted
|
||||
under this Agreement are reserved. Nothing in this Agreement is intended
|
||||
to be enforceable by any entity that is not a Contributor or Recipient.
|
||||
No third-party beneficiary rights are created under this Agreement.
|
||||
|
||||
Exhibit A - Form of Secondary Licenses Notice
|
||||
|
||||
"This Source Code may also be made available under the following
|
||||
Secondary Licenses when the conditions for such availability set forth
|
||||
in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
|
||||
version(s), and exceptions or additional permissions here}."
|
||||
|
||||
Simply including a copy of this Agreement, including this Exhibit A
|
||||
is not sufficient to license the Source Code under Secondary Licenses.
|
||||
|
||||
If it is not possible or desirable to put the notice in a particular
|
||||
file, then You may include the notice in a location (such as a LICENSE
|
||||
file in a relevant directory) where a recipient would be likely to
|
||||
look for such a notice.
|
||||
|
||||
You may add additional accurate notices of copyright ownership.
|
||||
|
||||
IBM PUBLIC LICENSE VERSION 1.0 - SECURE MAILER
|
||||
|
||||
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS IBM PUBLIC
|
||||
LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE
|
||||
PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
|
||||
|
||||
1. DEFINITIONS
|
||||
|
||||
"Contribution" means:
|
||||
a) in the case of International Business Machines Corporation ("IBM"),
|
||||
the Original Program, and
|
||||
b) in the case of each Contributor,
|
||||
i) changes to the Program, and
|
||||
ii) additions to the Program;
|
||||
where such changes and/or additions to the Program originate
|
||||
from and are distributed by that particular Contributor.
|
||||
A Contribution 'originates' from a Contributor if it was added
|
||||
to the Program by such Contributor itself or anyone acting on
|
||||
such Contributor's behalf.
|
||||
Contributions do not include additions to the Program which:
|
||||
(i) are separate modules of software distributed in conjunction
|
||||
with the Program under their own license agreement, and
|
||||
(ii) are not derivative works of the Program.
|
||||
|
||||
"Contributor" means IBM and any other entity that distributes the Program.
|
||||
|
||||
"Licensed Patents " mean patent claims licensable by a Contributor which
|
||||
are necessarily infringed by the use or sale of its Contribution alone
|
||||
or when combined with the Program.
|
||||
|
||||
"Original Program" means the original version of the software accompanying
|
||||
this Agreement as released by IBM, including source code, object code
|
||||
and documentation, if any.
|
||||
|
||||
"Program" means the Original Program and Contributions.
|
||||
|
||||
"Recipient" means anyone who receives the Program under this Agreement,
|
||||
including all Contributors.
|
||||
|
||||
2. GRANT OF RIGHTS
|
||||
|
||||
a) Subject to the terms of this Agreement, each Contributor hereby
|
||||
grants Recipient a non-exclusive, worldwide, royalty-free copyright
|
||||
license to reproduce, prepare derivative works of, publicly display,
|
||||
publicly perform, distribute and sublicense the Contribution of such
|
||||
Contributor, if any, and such derivative works, in source code and
|
||||
object code form.
|
||||
|
||||
b) Subject to the terms of this Agreement, each Contributor hereby
|
||||
grants Recipient a non-exclusive, worldwide, royalty-free patent
|
||||
license under Licensed Patents to make, use, sell, offer to sell,
|
||||
import and otherwise transfer the Contribution of such Contributor,
|
||||
if any, in source code and object code form. This patent license
|
||||
shall apply to the combination of the Contribution and the Program
|
||||
if, at the time the Contribution is added by the Contributor, such
|
||||
addition of the Contribution causes such combination to be covered
|
||||
by the Licensed Patents. The patent license shall not apply to any
|
||||
other combinations which include the Contribution. No hardware per
|
||||
se is licensed hereunder.
|
||||
|
||||
c) Recipient understands that although each Contributor grants the
|
||||
licenses to its Contributions set forth herein, no assurances are
|
||||
provided by any Contributor that the Program does not infringe the
|
||||
patent or other intellectual property rights of any other entity.
|
||||
Each Contributor disclaims any liability to Recipient for claims
|
||||
brought by any other entity based on infringement of intellectual
|
||||
property rights or otherwise. As a condition to exercising the rights
|
||||
and licenses granted hereunder, each Recipient hereby assumes sole
|
||||
responsibility to secure any other intellectual property rights
|
||||
needed, if any. For example, if a third party patent license
|
||||
is required to allow Recipient to distribute the Program, it is
|
||||
Recipient's responsibility to acquire that license before distributing
|
||||
the Program.
|
||||
|
||||
d) Each Contributor represents that to its knowledge it has sufficient
|
||||
copyright rights in its Contribution, if any, to grant the copyright
|
||||
license set forth in this Agreement.
|
||||
|
||||
3. REQUIREMENTS
|
||||
|
||||
A Contributor may choose to distribute the Program in object code form
|
||||
under its own license agreement, provided that:
|
||||
a) it complies with the terms and conditions of this Agreement; and
|
||||
b) its license agreement:
|
||||
i) effectively disclaims on behalf of all Contributors all
|
||||
warranties and conditions, express and implied, including
|
||||
warranties or conditions of title and non-infringement, and
|
||||
implied warranties or conditions of merchantability and fitness
|
||||
for a particular purpose;
|
||||
ii) effectively excludes on behalf of all Contributors all
|
||||
liability for damages, including direct, indirect, special,
|
||||
incidental and consequential damages, such as lost profits;
|
||||
iii) states that any provisions which differ from this Agreement
|
||||
are offered by that Contributor alone and not by any other
|
||||
party; and
|
||||
iv) states that source code for the Program is available from
|
||||
such Contributor, and informs licensees how to obtain it in a
|
||||
reasonable manner on or through a medium customarily used for
|
||||
software exchange.
|
||||
|
||||
When the Program is made available in source code form:
|
||||
a) it must be made available under this Agreement; and
|
||||
b) a copy of this Agreement must be included with each copy of the
|
||||
Program.
|
||||
|
||||
Each Contributor must include the following in a conspicuous location
|
||||
in the Program:
|
||||
|
||||
Copyright (c) 1997,1998,1999, International Business Machines
|
||||
Corporation and others. All Rights Reserved.
|
||||
|
||||
In addition, each Contributor must identify itself as the originator of
|
||||
its Contribution, if any, in a manner that reasonably allows subsequent
|
||||
Recipients to identify the originator of the Contribution.
|
||||
|
||||
4. COMMERCIAL DISTRIBUTION
|
||||
|
||||
Commercial distributors of software may accept certain responsibilities
|
||||
with respect to end users, business partners and the like. While this
|
||||
license is intended to facilitate the commercial use of the Program, the
|
||||
Contributor who includes the Program in a commercial product offering
|
||||
should do so in a manner which does not create potential liability for
|
||||
other Contributors. Therefore, if a Contributor includes the Program in
|
||||
a commercial product offering, such Contributor ("Commercial Contributor")
|
||||
hereby agrees to defend and indemnify every other Contributor
|
||||
("Indemnified Contributor") against any losses, damages and costs
|
||||
(collectively "Losses") arising from claims, lawsuits and other legal
|
||||
actions brought by a third party against the Indemnified Contributor to
|
||||
the extent caused by the acts or omissions of such Commercial Contributor
|
||||
in connection with its distribution of the Program in a commercial
|
||||
product offering. The obligations in this section do not apply to any
|
||||
claims or Losses relating to any actual or alleged intellectual property
|
||||
infringement. In order to qualify, an Indemnified Contributor must:
|
||||
a) promptly notify the Commercial Contributor in writing of such claim,
|
||||
and
|
||||
b) allow the Commercial Contributor to control, and cooperate with
|
||||
the Commercial Contributor in, the defense and any related
|
||||
settlement negotiations. The Indemnified Contributor may
|
||||
participate in any such claim at its own expense.
|
||||
|
||||
For example, a Contributor might include the Program in a commercial
|
||||
product offering, Product X. That Contributor is then a Commercial
|
||||
Contributor. If that Commercial Contributor then makes performance
|
||||
claims, or offers warranties related to Product X, those performance
|
||||
claims and warranties are such Commercial Contributor's responsibility
|
||||
alone. Under this section, the Commercial Contributor would have to
|
||||
defend claims against the other Contributors related to those performance
|
||||
claims and warranties, and if a court requires any other Contributor to
|
||||
pay any damages as a result, the Commercial Contributor must pay those
|
||||
damages.
|
||||
|
||||
5. NO WARRANTY
|
||||
|
||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED
|
||||
ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER
|
||||
EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR
|
||||
CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A
|
||||
PARTICULAR PURPOSE. Each Recipient is solely responsible for determining
|
||||
the appropriateness of using and distributing the Program and assumes
|
||||
all risks associated with its exercise of rights under this Agreement,
|
||||
including but not limited to the risks and costs of program errors,
|
||||
compliance with applicable laws, damage to or loss of data, programs or
|
||||
equipment, and unavailability or interruption of operations.
|
||||
|
||||
6. DISCLAIMER OF LIABILITY
|
||||
|
||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
|
||||
ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
|
||||
WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION
|
||||
OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
7. GENERAL
|
||||
|
||||
If any provision of this Agreement is invalid or unenforceable under
|
||||
applicable law, it shall not affect the validity or enforceability of
|
||||
the remainder of the terms of this Agreement, and without further action
|
||||
by the parties hereto, such provision shall be reformed to the minimum
|
||||
extent necessary to make such provision valid and enforceable.
|
||||
|
||||
If Recipient institutes patent litigation against a Contributor with
|
||||
respect to a patent applicable to software (including a cross-claim or
|
||||
counterclaim in a lawsuit), then any patent licenses granted by that
|
||||
Contributor to such Recipient under this Agreement shall terminate
|
||||
as of the date such litigation is filed. In addition, If Recipient
|
||||
institutes patent litigation against any entity (including a cross-claim
|
||||
or counterclaim in a lawsuit) alleging that the Program itself (excluding
|
||||
combinations of the Program with other software or hardware) infringes
|
||||
such Recipient's patent(s), then such Recipient's rights granted under
|
||||
Section 2(b) shall terminate as of the date such litigation is filed.
|
||||
|
||||
All Recipient's rights under this Agreement shall terminate if it fails
|
||||
to comply with any of the material terms or conditions of this Agreement
|
||||
and does not cure such failure in a reasonable period of time after
|
||||
becoming aware of such noncompliance. If all Recipient's rights under
|
||||
this Agreement terminate, Recipient agrees to cease use and distribution
|
||||
of the Program as soon as reasonably practicable. However, Recipient's
|
||||
obligations under this Agreement and any licenses granted by Recipient
|
||||
relating to the Program shall continue and survive.
|
||||
|
||||
IBM may publish new versions (including revisions) of this Agreement
|
||||
from time to time. Each new version of the Agreement will be given a
|
||||
distinguishing version number. The Program (including Contributions)
|
||||
may always be distributed subject to the version of the Agreement under
|
||||
which it was received. In addition, after a new version of the Agreement
|
||||
is published, Contributor may elect to distribute the Program (including
|
||||
its Contributions) under the new version. No one other than IBM has the
|
||||
right to modify this Agreement. Except as expressly stated in Sections
|
||||
2(a) and 2(b) above, Recipient receives no rights or licenses to the
|
||||
intellectual property of any Contributor under this Agreement, whether
|
||||
expressly, by implication, estoppel or otherwise. All rights in the
|
||||
Program not expressly granted under this Agreement are reserved.
|
||||
|
||||
This Agreement is governed by the laws of the State of New York and the
|
||||
intellectual property laws of the United States of America. No party to
|
||||
this Agreement will bring a legal action under this Agreement more than
|
||||
one year after the cause of action arose. Each party waives its rights
|
||||
to a jury trial in any resulting litigation.
|
36
jails/config/mail/postfix/TLS_LICENSE
Normal file
36
jails/config/mail/postfix/TLS_LICENSE
Normal file
@ -0,0 +1,36 @@
|
||||
Author:
|
||||
=======
|
||||
- Postfix/TLS support was originally developed by Lutz Jaenicke of
|
||||
Brandenburg University of Technology, Cottbus, Germany.
|
||||
|
||||
License:
|
||||
========
|
||||
- This software is free. You can do with it whatever you want.
|
||||
I would however kindly ask you to acknowledge the use of this
|
||||
package, if you are going use it in your software, which you might
|
||||
be going to distribute. I would also like to receive a note if
|
||||
you are a satisfied user :-)
|
||||
|
||||
Acknowledgements:
|
||||
=================
|
||||
- This package is based on the OpenSSL package as provided by the
|
||||
``OpenSSL Project''.
|
||||
|
||||
Disclaimer:
|
||||
===========
|
||||
- This software is provided ``as is''. You are using it at your own risk.
|
||||
I will take no liability in any case.
|
||||
- This software package uses strong cryptography, so even if it is created,
|
||||
maintained and distributed from liberal countries in Europe (where it is
|
||||
legal to do this), it falls under certain export/import and/or use
|
||||
restrictions in some other parts of the world.
|
||||
- PLEASE REMEMBER THAT EXPORT/IMPORT AND/OR USE OF STRONG
|
||||
CRYPTOGRAPHY SOFTWARE, PROVIDING CRYPTOGRAPHY HOOKS OR EVEN JUST
|
||||
COMMUNICATING TECHNICAL DETAILS ABOUT CRYPTOGRAPHY SOFTWARE IS
|
||||
ILLEGAL IN SOME PARTS OF THE WORLD. SO, WHEN YOU IMPORT THIS PACKAGE
|
||||
TO YOUR COUNTRY, RE-DISTRIBUTE IT FROM THERE OR EVEN JUST EMAIL
|
||||
TECHNICAL SUGGESTIONS OR EVEN SOURCE PATCHES TO THE AUTHOR OR
|
||||
OTHER PEOPLE YOU ARE STRONGLY ADVISED TO PAY CLOSE ATTENTION TO ANY
|
||||
EXPORT/IMPORT AND/OR USE LAWS WHICH APPLY TO YOU. THE AUTHOR OF
|
||||
PFIXTLS IS NOT LIABLE FOR ANY VIOLATIONS YOU MAKE HERE. SO BE
|
||||
CAREFULLY YOURSELF, IT IS YOUR RESPONSIBILITY.
|
112
jails/config/mail/postfix/bounce.cf.default
Normal file
112
jails/config/mail/postfix/bounce.cf.default
Normal file
@ -0,0 +1,112 @@
|
||||
#
|
||||
# Do not edit this file. This file shows the default delivery status
|
||||
# notification (DSN) messages that are built into Postfix.
|
||||
#
|
||||
# To change Postfix DSN messages, perhaps to add non-English text,
|
||||
# follow instructions in the bounce(5) manual page.
|
||||
#
|
||||
|
||||
#
|
||||
# The failure template is used when mail is returned to the sender;
|
||||
# either the destination rejected the message, or the destination
|
||||
# could not be reached before the message expired in the queue.
|
||||
#
|
||||
|
||||
failure_template = <<EOF
|
||||
Charset: us-ascii
|
||||
From: MAILER-DAEMON (Mail Delivery System)
|
||||
Subject: Undelivered Mail Returned to Sender
|
||||
Postmaster-Subject: Postmaster Copy: Undelivered Mail
|
||||
|
||||
This is the mail system at host $myhostname.
|
||||
|
||||
I'm sorry to have to inform you that your message could not
|
||||
be delivered to one or more recipients. It's attached below.
|
||||
|
||||
For further assistance, please send mail to postmaster.
|
||||
|
||||
If you do so, please include this problem report. You can
|
||||
delete your own text from the attached returned message.
|
||||
|
||||
The mail system
|
||||
EOF
|
||||
|
||||
|
||||
#
|
||||
# The delay template is used when mail is delayed. Note a neat trick:
|
||||
# the default template displays the delay_warning_time value as hours
|
||||
# by appending the _hours suffix to the parameter name; it displays
|
||||
# the maximal_queue_lifetime value as days by appending the _days
|
||||
# suffix.
|
||||
#
|
||||
# Other suffixes are: _seconds, _minutes, _weeks. There are no other
|
||||
# main.cf parameters that have this special behavior.
|
||||
#
|
||||
# You need to adjust these suffixes (and the surrounding text) if
|
||||
# you have very different settings for these time parameters.
|
||||
#
|
||||
|
||||
delay_template = <<EOF
|
||||
Charset: us-ascii
|
||||
From: MAILER-DAEMON (Mail Delivery System)
|
||||
Subject: Delayed Mail (still being retried)
|
||||
Postmaster-Subject: Postmaster Warning: Delayed Mail
|
||||
|
||||
This is the mail system at host $myhostname.
|
||||
|
||||
####################################################################
|
||||
# THIS IS A WARNING ONLY. YOU DO NOT NEED TO RESEND YOUR MESSAGE. #
|
||||
####################################################################
|
||||
|
||||
Your message could not be delivered for more than $delay_warning_time_hours hour(s).
|
||||
It will be retried until it is $maximal_queue_lifetime_days day(s) old.
|
||||
|
||||
For further assistance, please send mail to postmaster.
|
||||
|
||||
If you do so, please include this problem report. You can
|
||||
delete your own text from the attached returned message.
|
||||
|
||||
The mail system
|
||||
EOF
|
||||
|
||||
|
||||
#
|
||||
# The success template is used when mail is delivered to mailbox,
|
||||
# when an alias or list is expanded, or when mail is delivered to a
|
||||
# system that does not announce DSN support. It is an error to specify
|
||||
# a Postmaster-Subject: here.
|
||||
#
|
||||
|
||||
success_template = <<EOF
|
||||
Charset: us-ascii
|
||||
From: MAILER-DAEMON (Mail Delivery System)
|
||||
Subject: Successful Mail Delivery Report
|
||||
|
||||
This is the mail system at host $myhostname.
|
||||
|
||||
Your message was successfully delivered to the destination(s)
|
||||
listed below. If the message was delivered to mailbox you will
|
||||
receive no further notifications. Otherwise you may still receive
|
||||
notifications of mail delivery errors from other systems.
|
||||
|
||||
The mail system
|
||||
EOF
|
||||
|
||||
|
||||
#
|
||||
# The verify template is used for address verification (sendmail -bv
|
||||
# address...) or for verbose mail delivery (sendmail -v address...).
|
||||
# It is an error to specify a Postmaster-Subject: here.
|
||||
#
|
||||
|
||||
verify_template = <<EOF
|
||||
Charset: us-ascii
|
||||
From: MAILER-DAEMON (Mail Delivery System)
|
||||
Subject: Mail Delivery Status Report
|
||||
|
||||
This is the mail system at host $myhostname.
|
||||
|
||||
Enclosed is the mail delivery report that you requested.
|
||||
|
||||
The mail system
|
||||
EOF
|
@ -0,0 +1,6 @@
|
||||
server_host = ldaps://ldap.ahlawat.com
|
||||
search_base = ou=people,dc=infra
|
||||
version = 3
|
||||
bind = no
|
||||
query_filter = (&(objectclass=posixAccount)(mail=%s))
|
||||
result_attribute = uid
|
@ -0,0 +1,6 @@
|
||||
server_host = ldaps://ldap.ahlawat.com
|
||||
search_base = ou=group,dc=infra
|
||||
version = 3
|
||||
bind = no
|
||||
query_filter = (&(objectclass=posixGroup)(cn=%s))
|
||||
result_attribute = cn
|
6
jails/config/mail/postfix/ldap-virtual-mailbox-maps.cf
Normal file
6
jails/config/mail/postfix/ldap-virtual-mailbox-maps.cf
Normal file
@ -0,0 +1,6 @@
|
||||
server_host = ldaps://ldap.ahlawat.com
|
||||
search_base = ou=people,dc=infra
|
||||
version = 3
|
||||
bind = no
|
||||
query_filter = (&(objectclass=posixAccount)(uid=%s))
|
||||
result_attribute = cn
|
810
jails/config/mail/postfix/main.cf
Normal file
810
jails/config/mail/postfix/main.cf
Normal file
@ -0,0 +1,810 @@
|
||||
# Global Postfix configuration file. This file lists only a subset
|
||||
# of all parameters. For the syntax, and for a complete parameter
|
||||
# list, see the postconf(5) manual page (command: "man 5 postconf").
|
||||
#
|
||||
# For common configuration examples, see BASIC_CONFIGURATION_README
|
||||
# and STANDARD_CONFIGURATION_README. To find these documents, use
|
||||
# the command "postconf html_directory readme_directory", or go to
|
||||
# http://www.postfix.org/BASIC_CONFIGURATION_README.html etc.
|
||||
#
|
||||
# For best results, change no more than 2-3 parameters at a time,
|
||||
# and test if Postfix still works after every change.
|
||||
|
||||
# COMPATIBILITY
|
||||
#
|
||||
# The compatibility_level determines what default settings Postfix
|
||||
# will use for main.cf and master.cf settings. These defaults will
|
||||
# change over time.
|
||||
#
|
||||
# To avoid breaking things, Postfix will use backwards-compatible
|
||||
# default settings and log where it uses those old backwards-compatible
|
||||
# default settings, until the system administrator has determined
|
||||
# if any backwards-compatible default settings need to be made
|
||||
# permanent in main.cf or master.cf.
|
||||
#
|
||||
# When this review is complete, update the compatibility_level setting
|
||||
# below as recommended in the RELEASE_NOTES file.
|
||||
#
|
||||
# The level below is what should be used with new (not upgrade) installs.
|
||||
#
|
||||
compatibility_level = 2
|
||||
|
||||
# SOFT BOUNCE
|
||||
#
|
||||
# The soft_bounce parameter provides a limited safety net for
|
||||
# testing. When soft_bounce is enabled, mail will remain queued that
|
||||
# would otherwise bounce. This parameter disables locally-generated
|
||||
# bounces, and prevents the SMTP server from rejecting mail permanently
|
||||
# (by changing 5xx replies into 4xx replies). However, soft_bounce
|
||||
# is no cure for address rewriting mistakes or mail routing mistakes.
|
||||
#
|
||||
#soft_bounce = no
|
||||
|
||||
# LOCAL PATHNAME INFORMATION
|
||||
#
|
||||
# The queue_directory specifies the location of the Postfix queue.
|
||||
# This is also the root directory of Postfix daemons that run chrooted.
|
||||
# See the files in examples/chroot-setup for setting up Postfix chroot
|
||||
# environments on different UNIX systems.
|
||||
#
|
||||
queue_directory = /var/spool/postfix
|
||||
|
||||
# The command_directory parameter specifies the location of all
|
||||
# postXXX commands.
|
||||
#
|
||||
command_directory = /usr/local/sbin
|
||||
|
||||
# The daemon_directory parameter specifies the location of all Postfix
|
||||
# daemon programs (i.e. programs listed in the master.cf file). This
|
||||
# directory must be owned by root.
|
||||
#
|
||||
daemon_directory = /usr/local/libexec/postfix
|
||||
|
||||
# The data_directory parameter specifies the location of Postfix-writable
|
||||
# data files (caches, random numbers). This directory must be owned
|
||||
# by the mail_owner account (see below).
|
||||
#
|
||||
data_directory = /var/db/postfix
|
||||
|
||||
# QUEUE AND PROCESS OWNERSHIP
|
||||
#
|
||||
# The mail_owner parameter specifies the owner of the Postfix queue
|
||||
# and of most Postfix daemon processes. Specify the name of a user
|
||||
# account THAT DOES NOT SHARE ITS USER OR GROUP ID WITH OTHER ACCOUNTS
|
||||
# AND THAT OWNS NO OTHER FILES OR PROCESSES ON THE SYSTEM. In
|
||||
# particular, don't specify nobody or daemon. PLEASE USE A DEDICATED
|
||||
# USER.
|
||||
#
|
||||
mail_owner = postfix
|
||||
|
||||
# The default_privs parameter specifies the default rights used by
|
||||
# the local delivery agent for delivery to external file or command.
|
||||
# These rights are used in the absence of a recipient user context.
|
||||
# DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER.
|
||||
#
|
||||
#default_privs = nobody
|
||||
|
||||
# INTERNET HOST AND DOMAIN NAMES
|
||||
#
|
||||
# The myhostname parameter specifies the internet hostname of this
|
||||
# mail system. The default is to use the fully-qualified domain name
|
||||
# from gethostname(). $myhostname is used as a default value for many
|
||||
# other configuration parameters.
|
||||
#
|
||||
#myhostname = host.domain.tld
|
||||
#myhostname = virtual.domain.tld
|
||||
myhostname = mail.ahlawat.com
|
||||
|
||||
# The mydomain parameter specifies the local internet domain name.
|
||||
# The default is to use $myhostname minus the first component.
|
||||
# $mydomain is used as a default value for many other configuration
|
||||
# parameters.
|
||||
#
|
||||
#mydomain = domain.tld
|
||||
mydomain = ahlawat.com
|
||||
|
||||
# SENDING MAIL
|
||||
#
|
||||
# The myorigin parameter specifies the domain that locally-posted
|
||||
# mail appears to come from. The default is to append $myhostname,
|
||||
# which is fine for small sites. If you run a domain with multiple
|
||||
# machines, you should (1) change this to $mydomain and (2) set up
|
||||
# a domain-wide alias database that aliases each user to
|
||||
# user@that.users.mailhost.
|
||||
#
|
||||
# For the sake of consistency between sender and recipient addresses,
|
||||
# myorigin also specifies the default domain name that is appended
|
||||
# to recipient addresses that have no @domain part.
|
||||
#
|
||||
myorigin = $myhostname
|
||||
#myorigin = $mydomain
|
||||
|
||||
# RECEIVING MAIL
|
||||
|
||||
# The inet_interfaces parameter specifies the network interface
|
||||
# addresses that this mail system receives mail on. By default,
|
||||
# the software claims all active interfaces on the machine. The
|
||||
# parameter also controls delivery of mail to user@[ip.address].
|
||||
#
|
||||
# See also the proxy_interfaces parameter, for network addresses that
|
||||
# are forwarded to us via a proxy or network address translator.
|
||||
#
|
||||
# Note: you need to stop/start Postfix when this parameter changes.
|
||||
#
|
||||
#inet_interfaces = all
|
||||
#inet_interfaces = $myhostname
|
||||
#inet_interfaces = $myhostname, localhost
|
||||
|
||||
# The proxy_interfaces parameter specifies the network interface
|
||||
# addresses that this mail system receives mail on by way of a
|
||||
# proxy or network address translation unit. This setting extends
|
||||
# the address list specified with the inet_interfaces parameter.
|
||||
#
|
||||
# You must specify your proxy/NAT addresses when your system is a
|
||||
# backup MX host for other domains, otherwise mail delivery loops
|
||||
# will happen when the primary MX host is down.
|
||||
#
|
||||
#proxy_interfaces =
|
||||
#proxy_interfaces = 1.2.3.4
|
||||
|
||||
# The mydestination parameter specifies the list of domains that this
|
||||
# machine considers itself the final destination for.
|
||||
#
|
||||
# These domains are routed to the delivery agent specified with the
|
||||
# local_transport parameter setting. By default, that is the UNIX
|
||||
# compatible delivery agent that lookups all recipients in /etc/passwd
|
||||
# and /etc/aliases or their equivalent.
|
||||
#
|
||||
# The default is $myhostname + localhost.$mydomain + localhost. On
|
||||
# a mail domain gateway, you should also include $mydomain.
|
||||
#
|
||||
# Do not specify the names of virtual domains - those domains are
|
||||
# specified elsewhere (see VIRTUAL_README).
|
||||
#
|
||||
# Do not specify the names of domains that this machine is backup MX
|
||||
# host for. Specify those names via the relay_domains settings for
|
||||
# the SMTP server, or use permit_mx_backup if you are lazy (see
|
||||
# STANDARD_CONFIGURATION_README).
|
||||
#
|
||||
# The local machine is always the final destination for mail addressed
|
||||
# to user@[the.net.work.address] of an interface that the mail system
|
||||
# receives mail on (see the inet_interfaces parameter).
|
||||
#
|
||||
# Specify a list of host or domain names, /file/name or type:table
|
||||
# patterns, separated by commas and/or whitespace. A /file/name
|
||||
# pattern is replaced by its contents; a type:table is matched when
|
||||
# a name matches a lookup key (the right-hand side is ignored).
|
||||
# Continue long lines by starting the next line with whitespace.
|
||||
#
|
||||
# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
|
||||
#
|
||||
mydestination = $myhostname, localhost.$mydomain, localhost
|
||||
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
|
||||
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
|
||||
# mail.$mydomain, www.$mydomain, ftp.$mydomain
|
||||
|
||||
# REJECTING MAIL FOR UNKNOWN LOCAL USERS
|
||||
#
|
||||
# The local_recipient_maps parameter specifies optional lookup tables
|
||||
# with all names or addresses of users that are local with respect
|
||||
# to $mydestination, $inet_interfaces or $proxy_interfaces.
|
||||
#
|
||||
# If this parameter is defined, then the SMTP server will reject
|
||||
# mail for unknown local users. This parameter is defined by default.
|
||||
#
|
||||
# To turn off local recipient checking in the SMTP server, specify
|
||||
# local_recipient_maps = (i.e. empty).
|
||||
#
|
||||
# The default setting assumes that you use the default Postfix local
|
||||
# delivery agent for local delivery. You need to update the
|
||||
# local_recipient_maps setting if:
|
||||
#
|
||||
# - You define $mydestination domain recipients in files other than
|
||||
# /etc/passwd, /etc/aliases, or the $virtual_alias_maps files.
|
||||
# For example, you define $mydestination domain recipients in
|
||||
# the $virtual_mailbox_maps files.
|
||||
#
|
||||
# - You redefine the local delivery agent in master.cf.
|
||||
#
|
||||
# - You redefine the "local_transport" setting in main.cf.
|
||||
#
|
||||
# - You use the "luser_relay", "mailbox_transport", or "fallback_transport"
|
||||
# feature of the Postfix local delivery agent (see local(8)).
|
||||
#
|
||||
# Details are described in the LOCAL_RECIPIENT_README file.
|
||||
#
|
||||
# Beware: if the Postfix SMTP server runs chrooted, you probably have
|
||||
# to access the passwd file via the proxymap service, in order to
|
||||
# overcome chroot restrictions. The alternative, having a copy of
|
||||
# the system passwd file in the chroot jail is just not practical.
|
||||
#
|
||||
# The right-hand side of the lookup tables is conveniently ignored.
|
||||
# In the left-hand side, specify a bare username, an @domain.tld
|
||||
# wild-card, or specify a user@domain.tld address.
|
||||
#
|
||||
#local_recipient_maps = unix:passwd.byname $alias_maps
|
||||
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
|
||||
#local_recipient_maps =
|
||||
|
||||
# The unknown_local_recipient_reject_code specifies the SMTP server
|
||||
# response code when a recipient domain matches $mydestination or
|
||||
# ${proxy,inet}_interfaces, while $local_recipient_maps is non-empty
|
||||
# and the recipient address or address local-part is not found.
|
||||
#
|
||||
# The default setting is 550 (reject mail) but it is safer to start
|
||||
# with 450 (try again later) until you are certain that your
|
||||
# local_recipient_maps settings are OK.
|
||||
#
|
||||
unknown_local_recipient_reject_code = 550
|
||||
|
||||
# TRUST AND RELAY CONTROL
|
||||
|
||||
# The mynetworks parameter specifies the list of "trusted" SMTP
|
||||
# clients that have more privileges than "strangers".
|
||||
#
|
||||
# In particular, "trusted" SMTP clients are allowed to relay mail
|
||||
# through Postfix. See the smtpd_recipient_restrictions parameter
|
||||
# in postconf(5).
|
||||
#
|
||||
# You can specify the list of "trusted" network addresses by hand
|
||||
# or you can let Postfix do it for you (which is the default).
|
||||
#
|
||||
# By default (mynetworks_style = subnet), Postfix "trusts" SMTP
|
||||
# clients in the same IP subnetworks as the local machine.
|
||||
# On Linux, this works correctly only with interfaces specified
|
||||
# with the "ifconfig" command.
|
||||
#
|
||||
# Specify "mynetworks_style = class" when Postfix should "trust" SMTP
|
||||
# clients in the same IP class A/B/C networks as the local machine.
|
||||
# Don't do this with a dialup site - it would cause Postfix to "trust"
|
||||
# your entire provider's network. Instead, specify an explicit
|
||||
# mynetworks list by hand, as described below.
|
||||
#
|
||||
# Specify "mynetworks_style = host" when Postfix should "trust"
|
||||
# only the local machine.
|
||||
#
|
||||
#mynetworks_style = class
|
||||
#mynetworks_style = subnet
|
||||
mynetworks_style = host
|
||||
|
||||
# Alternatively, you can specify the mynetworks list by hand, in
|
||||
# which case Postfix ignores the mynetworks_style setting.
|
||||
#
|
||||
# Specify an explicit list of network/netmask patterns, where the
|
||||
# mask specifies the number of bits in the network part of a host
|
||||
# address.
|
||||
#
|
||||
# You can also specify the absolute pathname of a pattern file instead
|
||||
# of listing the patterns here. Specify type:table for table-based lookups
|
||||
# (the value on the table right-hand side is not used).
|
||||
#
|
||||
#mynetworks = 168.100.189.0/28, 127.0.0.0/8
|
||||
#mynetworks = $config_directory/mynetworks
|
||||
#mynetworks = hash:$config_directory/network_table
|
||||
|
||||
# The relay_domains parameter restricts what destinations this system will
|
||||
# relay mail to. See the smtpd_recipient_restrictions description in
|
||||
# postconf(5) for detailed information.
|
||||
#
|
||||
# By default, Postfix relays mail
|
||||
# - from "trusted" clients (IP address matches $mynetworks) to any destination,
|
||||
# - from "untrusted" clients to destinations that match $relay_domains or
|
||||
# subdomains thereof, except addresses with sender-specified routing.
|
||||
# The default relay_domains value is $mydestination.
|
||||
#
|
||||
# In addition to the above, the Postfix SMTP server by default accepts mail
|
||||
# that Postfix is final destination for:
|
||||
# - destinations that match $inet_interfaces or $proxy_interfaces,
|
||||
# - destinations that match $mydestination
|
||||
# - destinations that match $virtual_alias_domains,
|
||||
# - destinations that match $virtual_mailbox_domains.
|
||||
# These destinations do not need to be listed in $relay_domains.
|
||||
#
|
||||
# Specify a list of hosts or domains, /file/name patterns or type:name
|
||||
# lookup tables, separated by commas and/or whitespace. Continue
|
||||
# long lines by starting the next line with whitespace. A file name
|
||||
# is replaced by its contents; a type:name table is matched when a
|
||||
# (parent) domain appears as lookup key.
|
||||
#
|
||||
# NOTE: Postfix will not automatically forward mail for domains that
|
||||
# list this system as their primary or backup MX host. See the
|
||||
# permit_mx_backup restriction description in postconf(5).
|
||||
#
|
||||
#relay_domains = $mydestination
|
||||
|
||||
# INTERNET OR INTRANET
|
||||
|
||||
# The relayhost parameter specifies the default host to send mail to
|
||||
# when no entry is matched in the optional transport(5) table. When
|
||||
# no relayhost is given, mail is routed directly to the destination.
|
||||
#
|
||||
# On an intranet, specify the organizational domain name. If your
|
||||
# internal DNS uses no MX records, specify the name of the intranet
|
||||
# gateway host instead.
|
||||
#
|
||||
# In the case of SMTP, specify a domain, host, host:port, [host]:port,
|
||||
# [address] or [address]:port; the form [host] turns off MX lookups.
|
||||
#
|
||||
# If you're connected via UUCP, see also the default_transport parameter.
|
||||
#
|
||||
#relayhost = $mydomain
|
||||
#relayhost = [gateway.my.domain]
|
||||
#relayhost = [mailserver.isp.tld]
|
||||
#relayhost = uucphost
|
||||
#relayhost = [an.ip.add.ress]
|
||||
|
||||
# REJECTING UNKNOWN RELAY USERS
|
||||
#
|
||||
# The relay_recipient_maps parameter specifies optional lookup tables
|
||||
# with all addresses in the domains that match $relay_domains.
|
||||
#
|
||||
# If this parameter is defined, then the SMTP server will reject
|
||||
# mail for unknown relay users. This feature is off by default.
|
||||
#
|
||||
# The right-hand side of the lookup tables is conveniently ignored.
|
||||
# In the left-hand side, specify an @domain.tld wild-card, or specify
|
||||
# a user@domain.tld address.
|
||||
#
|
||||
#relay_recipient_maps = hash:$config_directory/relay_recipients
|
||||
|
||||
# INPUT RATE CONTROL
|
||||
#
|
||||
# The in_flow_delay configuration parameter implements mail input
|
||||
# flow control. This feature is turned on by default, although it
|
||||
# still needs further development (it's disabled on SCO UNIX due
|
||||
# to an SCO bug).
|
||||
#
|
||||
# A Postfix process will pause for $in_flow_delay seconds before
|
||||
# accepting a new message, when the message arrival rate exceeds the
|
||||
# message delivery rate. With the default 100 SMTP server process
|
||||
# limit, this limits the mail inflow to 100 messages a second more
|
||||
# than the number of messages delivered per second.
|
||||
#
|
||||
# Specify 0 to disable the feature. Valid delays are 0..10.
|
||||
#
|
||||
#in_flow_delay = 1s
|
||||
|
||||
# ADDRESS REWRITING
|
||||
#
|
||||
# The ADDRESS_REWRITING_README document gives information about
|
||||
# address masquerading or other forms of address rewriting including
|
||||
# username->Firstname.Lastname mapping.
|
||||
|
||||
# ADDRESS REDIRECTION (VIRTUAL DOMAIN)
|
||||
#
|
||||
# The VIRTUAL_README document gives information about the many forms
|
||||
# of domain hosting that Postfix supports.
|
||||
|
||||
# "USER HAS MOVED" BOUNCE MESSAGES
|
||||
#
|
||||
# See the discussion in the ADDRESS_REWRITING_README document.
|
||||
|
||||
# TRANSPORT MAP
|
||||
#
|
||||
# See the discussion in the ADDRESS_REWRITING_README document.
|
||||
|
||||
# ALIAS DATABASE
|
||||
#
|
||||
# The alias_maps parameter specifies the list of alias databases used
|
||||
# by the local delivery agent. The default list is system dependent.
|
||||
#
|
||||
# On systems with NIS, the default is to search the local alias
|
||||
# database, then the NIS alias database. See aliases(5) for syntax
|
||||
# details.
|
||||
#
|
||||
# If you change the alias database, run "postalias /etc/aliases" (or
|
||||
# wherever your system stores the mail alias file), or simply run
|
||||
# "newaliases" to build the necessary DBM or DB file.
|
||||
#
|
||||
# It will take a minute or so before changes become visible. Use
|
||||
# "postfix reload" to eliminate the delay.
|
||||
#
|
||||
#alias_maps = dbm:/etc/aliases
|
||||
#alias_maps = hash:/etc/aliases
|
||||
#alias_maps = hash:/etc/aliases, nis:mail.aliases
|
||||
#alias_maps = netinfo:/aliases
|
||||
|
||||
# The alias_database parameter specifies the alias database(s) that
|
||||
# are built with "newaliases" or "sendmail -bi". This is a separate
|
||||
# configuration parameter, because alias_maps (see above) may specify
|
||||
# tables that are not necessarily all under control by Postfix.
|
||||
#
|
||||
#alias_database = dbm:/etc/aliases
|
||||
#alias_database = hash:/etc/aliases
|
||||
#alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases
|
||||
|
||||
# ADDRESS EXTENSIONS (e.g., user+foo)
|
||||
#
|
||||
# The recipient_delimiter parameter specifies the separator between
|
||||
# user names and address extensions (user+foo). See canonical(5),
|
||||
# local(8), relocated(5) and virtual(5) for the effects this has on
|
||||
# aliases, canonical, virtual, relocated and .forward file lookups.
|
||||
# Basically, the software tries user+foo and .forward+foo before
|
||||
# trying user and .forward.
|
||||
#
|
||||
recipient_delimiter = +
|
||||
|
||||
# DELIVERY TO MAILBOX
|
||||
#
|
||||
# The home_mailbox parameter specifies the optional pathname of a
|
||||
# mailbox file relative to a user's home directory. The default
|
||||
# mailbox file is /var/spool/mail/user or /var/mail/user. Specify
|
||||
# "Maildir/" for qmail-style delivery (the / is required).
|
||||
#
|
||||
#home_mailbox = Mailbox
|
||||
#home_mailbox = Maildir/
|
||||
|
||||
# The mail_spool_directory parameter specifies the directory where
|
||||
# UNIX-style mailboxes are kept. The default setting depends on the
|
||||
# system type.
|
||||
#
|
||||
#mail_spool_directory = /var/mail
|
||||
#mail_spool_directory = /var/spool/mail
|
||||
mail_spool_directory = /data/local
|
||||
|
||||
# The mailbox_command parameter specifies the optional external
|
||||
# command to use instead of mailbox delivery. The command is run as
|
||||
# the recipient with proper HOME, SHELL and LOGNAME environment settings.
|
||||
# Exception: delivery for root is done as $default_user.
|
||||
#
|
||||
# Other environment variables of interest: USER (recipient username),
|
||||
# EXTENSION (address extension), DOMAIN (domain part of address),
|
||||
# and LOCAL (the address localpart).
|
||||
#
|
||||
# Unlike other Postfix configuration parameters, the mailbox_command
|
||||
# parameter is not subjected to $parameter substitutions. This is to
|
||||
# make it easier to specify shell syntax (see example below).
|
||||
#
|
||||
# Avoid shell meta characters because they will force Postfix to run
|
||||
# an expensive shell process. Procmail alone is expensive enough.
|
||||
#
|
||||
# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
|
||||
# ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
|
||||
#
|
||||
#mailbox_command = /some/where/procmail
|
||||
#mailbox_command = /some/where/procmail -a "$EXTENSION"
|
||||
|
||||
# The mailbox_transport specifies the optional transport in master.cf
|
||||
# to use after processing aliases and .forward files. This parameter
|
||||
# has precedence over the mailbox_command, fallback_transport and
|
||||
# luser_relay parameters.
|
||||
#
|
||||
# Specify a string of the form transport:nexthop, where transport is
|
||||
# the name of a mail delivery transport defined in master.cf. The
|
||||
# :nexthop part is optional. For more details see the sample transport
|
||||
# configuration file.
|
||||
#
|
||||
# NOTE: if you use this feature for accounts not in the UNIX password
|
||||
# file, then you must update the "local_recipient_maps" setting in
|
||||
# the main.cf file, otherwise the SMTP server will reject mail for
|
||||
# non-UNIX accounts with "User unknown in local recipient table".
|
||||
#
|
||||
# Cyrus IMAP over LMTP. Specify ``lmtpunix cmd="lmtpd"
|
||||
# listen="/var/imap/socket/lmtp" prefork=0'' in cyrus.conf.
|
||||
#mailbox_transport = lmtp:unix:/var/imap/socket/lmtp
|
||||
#
|
||||
# Cyrus IMAP via command line. Uncomment the "cyrus...pipe" and
|
||||
# subsequent line in master.cf.
|
||||
#mailbox_transport = cyrus
|
||||
|
||||
# The fallback_transport specifies the optional transport in master.cf
|
||||
# to use for recipients that are not found in the UNIX passwd database.
|
||||
# This parameter has precedence over the luser_relay parameter.
|
||||
#
|
||||
# Specify a string of the form transport:nexthop, where transport is
|
||||
# the name of a mail delivery transport defined in master.cf. The
|
||||
# :nexthop part is optional. For more details see the sample transport
|
||||
# configuration file.
|
||||
#
|
||||
# NOTE: if you use this feature for accounts not in the UNIX password
|
||||
# file, then you must update the "local_recipient_maps" setting in
|
||||
# the main.cf file, otherwise the SMTP server will reject mail for
|
||||
# non-UNIX accounts with "User unknown in local recipient table".
|
||||
#
|
||||
#fallback_transport = lmtp:unix:/file/name
|
||||
#fallback_transport = cyrus
|
||||
#fallback_transport =
|
||||
|
||||
# The luser_relay parameter specifies an optional destination address
|
||||
# for unknown recipients. By default, mail for unknown@$mydestination,
|
||||
# unknown@[$inet_interfaces] or unknown@[$proxy_interfaces] is returned
|
||||
# as undeliverable.
|
||||
#
|
||||
# The following expansions are done on luser_relay: $user (recipient
|
||||
# username), $shell (recipient shell), $home (recipient home directory),
|
||||
# $recipient (full recipient address), $extension (recipient address
|
||||
# extension), $domain (recipient domain), $local (entire recipient
|
||||
# localpart), $recipient_delimiter. Specify ${name?value} or
|
||||
# ${name:value} to expand value only when $name does (does not) exist.
|
||||
#
|
||||
# luser_relay works only for the default Postfix local delivery agent.
|
||||
#
|
||||
# NOTE: if you use this feature for accounts not in the UNIX password
|
||||
# file, then you must specify "local_recipient_maps =" (i.e. empty) in
|
||||
# the main.cf file, otherwise the SMTP server will reject mail for
|
||||
# non-UNIX accounts with "User unknown in local recipient table".
|
||||
#
|
||||
#luser_relay = $user@other.host
|
||||
#luser_relay = $local@other.host
|
||||
#luser_relay = admin+$local
|
||||
|
||||
# JUNK MAIL CONTROLS
|
||||
#
|
||||
# The controls listed here are only a very small subset. The file
|
||||
# SMTPD_ACCESS_README provides an overview.
|
||||
|
||||
# The header_checks parameter specifies an optional table with patterns
|
||||
# that each logical message header is matched against, including
|
||||
# headers that span multiple physical lines.
|
||||
#
|
||||
# By default, these patterns also apply to MIME headers and to the
|
||||
# headers of attached messages. With older Postfix versions, MIME and
|
||||
# attached message headers were treated as body text.
|
||||
#
|
||||
# For details, see "man header_checks".
|
||||
#
|
||||
#header_checks = regexp:$config_directory/header_checks
|
||||
|
||||
# FAST ETRN SERVICE
|
||||
#
|
||||
# Postfix maintains per-destination logfiles with information about
|
||||
# deferred mail, so that mail can be flushed quickly with the SMTP
|
||||
# "ETRN domain.tld" command, or by executing "sendmail -qRdomain.tld".
|
||||
# See the ETRN_README document for a detailed description.
|
||||
#
|
||||
# The fast_flush_domains parameter controls what destinations are
|
||||
# eligible for this service. By default, they are all domains that
|
||||
# this server is willing to relay mail to.
|
||||
#
|
||||
#fast_flush_domains = $relay_domains
|
||||
|
||||
# SHOW SOFTWARE VERSION OR NOT
|
||||
#
|
||||
# The smtpd_banner parameter specifies the text that follows the 220
|
||||
# code in the SMTP server's greeting banner. Some people like to see
|
||||
# the mail version advertised. By default, Postfix shows no version.
|
||||
#
|
||||
# You MUST specify $myhostname at the start of the text. That is an
|
||||
# RFC requirement. Postfix itself does not care.
|
||||
#
|
||||
#smtpd_banner = $myhostname ESMTP $mail_name
|
||||
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
|
||||
|
||||
# PARALLEL DELIVERY TO THE SAME DESTINATION
|
||||
#
|
||||
# How many parallel deliveries to the same user or domain? With local
|
||||
# delivery, it does not make sense to do massively parallel delivery
|
||||
# to the same user, because mailbox updates must happen sequentially,
|
||||
# and expensive pipelines in .forward files can cause disasters when
|
||||
# too many are run at the same time. With SMTP deliveries, 10
|
||||
# simultaneous connections to the same domain could be sufficient to
|
||||
# raise eyebrows.
|
||||
#
|
||||
# Each message delivery transport has its XXX_destination_concurrency_limit
|
||||
# parameter. The default is $default_destination_concurrency_limit for
|
||||
# most delivery transports. For the local delivery agent the default is 2.
|
||||
|
||||
#local_destination_concurrency_limit = 2
|
||||
#default_destination_concurrency_limit = 20
|
||||
|
||||
# DEBUGGING CONTROL
|
||||
#
|
||||
# The debug_peer_level parameter specifies the increment in verbose
|
||||
# logging level when an SMTP client or server host name or address
|
||||
# matches a pattern in the debug_peer_list parameter.
|
||||
#
|
||||
debug_peer_level = 2
|
||||
|
||||
# The debug_peer_list parameter specifies an optional list of domain
|
||||
# or network patterns, /file/name patterns or type:name tables. When
|
||||
# an SMTP client or server host name or address matches a pattern,
|
||||
# increase the verbose logging level by the amount specified in the
|
||||
# debug_peer_level parameter.
|
||||
#
|
||||
#debug_peer_list = 127.0.0.1
|
||||
#debug_peer_list = some.domain
|
||||
|
||||
# The debugger_command specifies the external command that is executed
|
||||
# when a Postfix daemon program is run with the -D option.
|
||||
#
|
||||
# Use "command .. & sleep 5" so that the debugger can attach before
|
||||
# the process marches on. If you use an X-based debugger, be sure to
|
||||
# set up your XAUTHORITY environment variable before starting Postfix.
|
||||
#
|
||||
debugger_command =
|
||||
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
|
||||
ddd $daemon_directory/$process_name $process_id & sleep 5
|
||||
|
||||
# If you can't use X, use this to capture the call stack when a
|
||||
# daemon crashes. The result is in a file in the configuration
|
||||
# directory, and is named after the process name and the process ID.
|
||||
#
|
||||
# debugger_command =
|
||||
# PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
|
||||
# echo where) | gdb $daemon_directory/$process_name $process_id 2>&1
|
||||
# >$config_directory/$process_name.$process_id.log & sleep 5
|
||||
#
|
||||
# Another possibility is to run gdb under a detached screen session.
|
||||
# To attach to the screen session, su root and run "screen -r
|
||||
# <id_string>" where <id_string> uniquely matches one of the detached
|
||||
# sessions (from "screen -list").
|
||||
#
|
||||
# debugger_command =
|
||||
# PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH; screen
|
||||
# -dmS $process_name gdb $daemon_directory/$process_name
|
||||
# $process_id & sleep 1
|
||||
|
||||
# INSTALL-TIME CONFIGURATION INFORMATION
|
||||
#
|
||||
# The following parameters are used when installing a new Postfix version.
|
||||
#
|
||||
# sendmail_path: The full pathname of the Postfix sendmail command.
|
||||
# This is the Sendmail-compatible mail posting interface.
|
||||
#
|
||||
sendmail_path = /usr/local/sbin/sendmail
|
||||
|
||||
# newaliases_path: The full pathname of the Postfix newaliases command.
|
||||
# This is the Sendmail-compatible command to build alias databases.
|
||||
#
|
||||
newaliases_path = /usr/local/bin/newaliases
|
||||
|
||||
# mailq_path: The full pathname of the Postfix mailq command. This
|
||||
# is the Sendmail-compatible mail queue listing command.
|
||||
#
|
||||
mailq_path = /usr/local/bin/mailq
|
||||
|
||||
# setgid_group: The group for mail submission and queue management
|
||||
# commands. This must be a group name with a numerical group ID that
|
||||
# is not shared with other accounts, not even with the Postfix account.
|
||||
#
|
||||
setgid_group = maildrop
|
||||
|
||||
# html_directory: The location of the Postfix HTML documentation.
|
||||
#
|
||||
html_directory = /usr/local/share/doc/postfix
|
||||
|
||||
# manpage_directory: The location of the Postfix on-line manual pages.
|
||||
#
|
||||
manpage_directory = /usr/local/man
|
||||
|
||||
# sample_directory: The location of the Postfix sample configuration files.
|
||||
# This parameter is obsolete as of Postfix 2.1.
|
||||
#
|
||||
sample_directory = /usr/local/etc/postfix
|
||||
|
||||
# readme_directory: The location of the Postfix README files.
|
||||
#
|
||||
readme_directory = /usr/local/share/doc/postfix
|
||||
inet_protocols = ipv4
|
||||
meta_directory = /usr/local/libexec/postfix
|
||||
shlib_directory = /usr/local/lib/postfix
|
||||
|
||||
|
||||
#additions below:
|
||||
|
||||
# disable "new mail" notifications for local unix users
|
||||
biff = no
|
||||
|
||||
# prevent spammers from searching for valid users
|
||||
disable_vrfy_command = yes
|
||||
|
||||
# require properly formatted email addresses - prevents a lot of spam
|
||||
strict_rfc821_envelopes = yes
|
||||
|
||||
# don't give any helpful info when a mailbox doesn't exist
|
||||
show_user_unknown_table_name = no
|
||||
|
||||
# limit maximum e-mail size to 50MB. mailbox size must be at least as big as
|
||||
# the message size for the mail to be accepted, but has no meaning after
|
||||
# that since we are using Dovecot for delivery.
|
||||
message_size_limit = 51200000
|
||||
mailbox_size_limit = 51200000
|
||||
|
||||
# require addresses of the form "user@domain.tld"
|
||||
allow_percent_hack = no
|
||||
swap_bangpath = no
|
||||
|
||||
# path to the SSL certificate for the mail server
|
||||
smtpd_tls_cert_file = /mnt/certs/fullchain.pem
|
||||
smtpd_tls_key_file = /mnt/certs/privkeyr.pem
|
||||
|
||||
# These two lines define how postfix will connect to other mail servers.
|
||||
# DANE is a stronger form of opportunistic TLS. You can read about it here:
|
||||
# http://www.postfix.org/TLS_README.html#client_tls_dane
|
||||
smtp_tls_security_level = dane
|
||||
smtp_dns_support_level = dnssec
|
||||
# DANE requires a DNSSEC capable resolver. If your DNS resolver doesn't
|
||||
# support DNSSEC, remove the above two lines and uncomment the below:
|
||||
# smtp_tls_security_level = may
|
||||
|
||||
# Here we define the options for "mandatory" TLS. In our setup, TLS is only
|
||||
# "mandatory" for authenticating users. I got these settings from Mozilla's
|
||||
# SSL reccomentations page.
|
||||
#
|
||||
# NOTE: do not attempt to make TLS mandatory for all incoming/outgoing
|
||||
# connections. Do not attempt to change the default cipherlist for non-
|
||||
# mandatory connections either. There are still a lot of mail servers out
|
||||
# there that do not use TLS, and many that do only support old ciphers.
|
||||
# Forcing TLS for everyone *will* cause you to lose mail.
|
||||
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1, TLSv1.2
|
||||
smtpd_tls_mandatory_ciphers = high
|
||||
tls_high_cipherlist = ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
|
||||
|
||||
# allow other mail servers to connect using TLS, but don't require it
|
||||
smtpd_tls_security_level = may
|
||||
|
||||
# tickets and compression have known vulnerabilities
|
||||
tls_ssl_options = no_ticket, no_compression
|
||||
|
||||
# it's more secure to generate your own DH params
|
||||
smtpd_tls_dh512_param_file = /mnt/certs/dhparam512.pem
|
||||
smtpd_tls_dh1024_param_file = /mnt/certs/dhparam2048.pem
|
||||
|
||||
# cache incoming and outgoing TLS sessions
|
||||
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_tlscache
|
||||
smtp_tls_session_cache_database = btree:${data_directory}/smtp_tlscache
|
||||
|
||||
# enable SMTPD auth. Dovecot will place an `auth` socket in postfix's
|
||||
# runtime directory that we will use for authentication.
|
||||
smtpd_sasl_auth_enable = yes
|
||||
smtpd_sasl_path = private/auth
|
||||
smtpd_sasl_type = dovecot
|
||||
|
||||
# only allow authentication over TLS
|
||||
smtpd_tls_auth_only = yes
|
||||
|
||||
# don't allow plaintext auth methods on unencrypted connections
|
||||
smtpd_sasl_security_options = noanonymous, noplaintext
|
||||
# but plaintext auth is fine when using TLS
|
||||
smtpd_sasl_tls_security_options = noanonymous
|
||||
|
||||
# add a message header when email was recieved over TLS
|
||||
smtpd_tls_received_header = yes
|
||||
|
||||
# require that connecting mail servers identify themselves - this greatly
|
||||
# reduces spam
|
||||
smtpd_helo_required = yes
|
||||
|
||||
# The following block specifies some security restrictions for incoming
|
||||
# mail. The gist of it is, authenticated users and connections from
|
||||
# localhost can do anything they want. Random people connecting over the
|
||||
# internet are treated with more suspicion: they must have a reverse DNS
|
||||
# entry and present a valid, FQDN HELO hostname. In addition, they can only
|
||||
# send mail to valid mailboxes on the server, and the sender's domain must
|
||||
# actually exist.
|
||||
smtpd_client_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unknown_reverse_client_hostname,reject_unauth_pipelining
|
||||
# you might want to consider:
|
||||
# reject_unknown_client_hostname,
|
||||
# here. This will reject all incoming connections without a reverse DNS
|
||||
# entry that resolves back to the client's IP address. This is a very
|
||||
# restrictive check and may reject legitimate mail.
|
||||
smtpd_helo_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_invalid_helo_hostname,reject_non_fqdn_helo_hostname,reject_unauth_pipelining
|
||||
# you might want to consider:
|
||||
# reject_unknown_helo_hostname,
|
||||
# here. This will reject all incoming mail without a HELO hostname that
|
||||
# properly resolves in DNS. This is a somewhat restrictive check and may
|
||||
# reject legitimate mail.
|
||||
smtpd_sender_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_non_fqdn_sender,reject_unknown_sender_domain,reject_unauth_pipelining
|
||||
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated,reject_unauth_destination
|
||||
# !!! THIS SETTING PREVENTS YOU FROM BEING AN OPEN RELAY !!!
|
||||
# !!! DO NOT REMOVE IT UNDER ANY CIRCUMSTANCES !!!
|
||||
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unverified_recipient
|
||||
smtpd_data_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_multi_recipient_bounce,reject_unauth_pipelining
|
||||
|
||||
# deliver mail for virtual users to Dovecot's LMTP socket
|
||||
virtual_transport = lmtp:unix:private/dovecot-lmtp
|
||||
|
||||
# LDAP query to find which domains we accept mail for
|
||||
virtual_mailbox_domains = ldap:/usr/local/etc/postfix/ldap-virtual-mailbox-domains.cf
|
||||
# LDAP query to find which email addresses we accept mail for
|
||||
virtual_mailbox_maps = ldap:/usr/local/etc/postfix/ldap-virtual-mailbox-maps.cf
|
||||
#, hash:/usr/local/etc/postfix/system-virtual-mailboxes
|
||||
# LDAP query to find a user's email aliases
|
||||
virtual_alias_maps = ldap:/usr/local/etc/postfix/ldap-virtual-mailbox-alias-maps.cf, hash:/usr/local/etc/postfix/virtual-maillist-alias-maps
|
||||
|
||||
# We'll uncomment these when we set up rspamd later:
|
||||
milter_protocol = 6
|
||||
# if rspamd is down, don't reject mail
|
||||
milter_default_action = accept
|
||||
smtpd_milters = unix:/var/run/rspamd/milter.sock
|
||||
milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}
|
918
jails/config/mail/postfix/main.cf.default
Normal file
918
jails/config/mail/postfix/main.cf.default
Normal file
@ -0,0 +1,918 @@
|
||||
# DO NOT EDIT THIS FILE. EDIT THE MAIN.CF FILE INSTEAD. THE
|
||||
# TEXT HERE JUST SHOWS DEFAULT SETTINGS BUILT INTO POSTFIX.
|
||||
#
|
||||
2bounce_notice_recipient = postmaster
|
||||
access_map_defer_code = 450
|
||||
access_map_reject_code = 554
|
||||
address_verify_cache_cleanup_interval = 12h
|
||||
address_verify_default_transport = $default_transport
|
||||
address_verify_local_transport = $local_transport
|
||||
address_verify_map = btree:$data_directory/verify_cache
|
||||
address_verify_negative_cache = yes
|
||||
address_verify_negative_expire_time = 3d
|
||||
address_verify_negative_refresh_time = 3h
|
||||
address_verify_pending_request_limit = 5000
|
||||
address_verify_poll_count = ${stress?{1}:{3}}
|
||||
address_verify_poll_delay = 3s
|
||||
address_verify_positive_expire_time = 31d
|
||||
address_verify_positive_refresh_time = 7d
|
||||
address_verify_relay_transport = $relay_transport
|
||||
address_verify_relayhost = $relayhost
|
||||
address_verify_sender = $double_bounce_sender
|
||||
address_verify_sender_dependent_default_transport_maps = $sender_dependent_default_transport_maps
|
||||
address_verify_sender_dependent_relayhost_maps = $sender_dependent_relayhost_maps
|
||||
address_verify_sender_ttl = 0s
|
||||
address_verify_service_name = verify
|
||||
address_verify_transport_maps = $transport_maps
|
||||
address_verify_virtual_transport = $virtual_transport
|
||||
alias_database = hash:/etc/aliases
|
||||
alias_maps = hash:/etc/aliases
|
||||
allow_mail_to_commands = alias, forward
|
||||
allow_mail_to_files = alias, forward
|
||||
allow_min_user = no
|
||||
allow_percent_hack = yes
|
||||
allow_untrusted_routing = no
|
||||
alternate_config_directories =
|
||||
always_add_missing_headers = no
|
||||
always_bcc =
|
||||
anvil_rate_time_unit = 60s
|
||||
anvil_status_update_time = 600s
|
||||
append_at_myorigin = yes
|
||||
append_dot_mydomain = ${{$compatibility_level} < {1} ? {yes} : {no}}
|
||||
application_event_drain_time = 100s
|
||||
authorized_flush_users = static:anyone
|
||||
authorized_mailq_users = static:anyone
|
||||
authorized_submit_users = static:anyone
|
||||
backwards_bounce_logfile_compatibility = yes
|
||||
berkeley_db_create_buffer_size = 16777216
|
||||
berkeley_db_read_buffer_size = 131072
|
||||
best_mx_transport =
|
||||
biff = yes
|
||||
body_checks =
|
||||
body_checks_size_limit = 51200
|
||||
bounce_notice_recipient = postmaster
|
||||
bounce_queue_lifetime = 5d
|
||||
bounce_service_name = bounce
|
||||
bounce_size_limit = 50000
|
||||
bounce_template_file =
|
||||
broken_sasl_auth_clients = no
|
||||
canonical_classes = envelope_sender, envelope_recipient, header_sender, header_recipient
|
||||
canonical_maps =
|
||||
cleanup_service_name = cleanup
|
||||
command_directory = /usr/local/sbin
|
||||
command_execution_directory =
|
||||
command_expansion_filter = 1234567890!@%-_=+:,./abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||
command_time_limit = 1000s
|
||||
compatibility_level = 0
|
||||
config_directory = /usr/local/etc/postfix
|
||||
confirm_delay_cleared = no
|
||||
connection_cache_protocol_timeout = 5s
|
||||
connection_cache_service_name = scache
|
||||
connection_cache_status_update_time = 600s
|
||||
connection_cache_ttl_limit = 2s
|
||||
content_filter =
|
||||
cyrus_sasl_config_path =
|
||||
daemon_directory = /usr/local/libexec/postfix
|
||||
daemon_table_open_error_is_fatal = no
|
||||
daemon_timeout = 18000s
|
||||
data_directory = /var/db/postfix
|
||||
debug_peer_level = 2
|
||||
debug_peer_list =
|
||||
debugger_command =
|
||||
default_database_type = hash
|
||||
default_delivery_slot_cost = 5
|
||||
default_delivery_slot_discount = 50
|
||||
default_delivery_slot_loan = 3
|
||||
default_delivery_status_filter =
|
||||
default_destination_concurrency_failed_cohort_limit = 1
|
||||
default_destination_concurrency_limit = 20
|
||||
default_destination_concurrency_negative_feedback = 1
|
||||
default_destination_concurrency_positive_feedback = 1
|
||||
default_destination_rate_delay = 0s
|
||||
default_destination_recipient_limit = 50
|
||||
default_extra_recipient_limit = 1000
|
||||
default_filter_nexthop =
|
||||
default_minimum_delivery_slots = 3
|
||||
default_privs = nobody
|
||||
default_process_limit = 100
|
||||
default_rbl_reply = $rbl_code Service unavailable; $rbl_class [$rbl_what] blocked using $rbl_domain${rbl_reason?; $rbl_reason}
|
||||
default_recipient_limit = 20000
|
||||
default_recipient_refill_delay = 5s
|
||||
default_recipient_refill_limit = 100
|
||||
default_transport = smtp
|
||||
default_transport_rate_delay = 0s
|
||||
default_verp_delimiters = +=
|
||||
defer_code = 450
|
||||
defer_service_name = defer
|
||||
defer_transports =
|
||||
delay_logging_resolution_limit = 2
|
||||
delay_notice_recipient = postmaster
|
||||
delay_warning_time = 0h
|
||||
deliver_lock_attempts = 20
|
||||
deliver_lock_delay = 1s
|
||||
destination_concurrency_feedback_debug = no
|
||||
detect_8bit_encoding_header = yes
|
||||
disable_dns_lookups = no
|
||||
disable_mime_input_processing = no
|
||||
disable_mime_output_conversion = no
|
||||
disable_verp_bounces = no
|
||||
disable_vrfy_command = no
|
||||
dns_ncache_ttl_fix_enable = no
|
||||
dnsblog_reply_delay = 0s
|
||||
dnsblog_service_name = dnsblog
|
||||
dont_remove = 0
|
||||
double_bounce_sender = double-bounce
|
||||
duplicate_filter_limit = 1000
|
||||
empty_address_default_transport_maps_lookup_key = <>
|
||||
empty_address_recipient = MAILER-DAEMON
|
||||
empty_address_relayhost_maps_lookup_key = <>
|
||||
enable_idna2003_compatibility = no
|
||||
enable_long_queue_ids = no
|
||||
enable_original_recipient = yes
|
||||
error_delivery_slot_cost = $default_delivery_slot_cost
|
||||
error_delivery_slot_discount = $default_delivery_slot_discount
|
||||
error_delivery_slot_loan = $default_delivery_slot_loan
|
||||
error_destination_concurrency_failed_cohort_limit = $default_destination_concurrency_failed_cohort_limit
|
||||
error_destination_concurrency_limit = $default_destination_concurrency_limit
|
||||
error_destination_concurrency_negative_feedback = $default_destination_concurrency_negative_feedback
|
||||
error_destination_concurrency_positive_feedback = $default_destination_concurrency_positive_feedback
|
||||
error_destination_rate_delay = $default_destination_rate_delay
|
||||
error_destination_recipient_limit = $default_destination_recipient_limit
|
||||
error_extra_recipient_limit = $default_extra_recipient_limit
|
||||
error_initial_destination_concurrency = $initial_destination_concurrency
|
||||
error_minimum_delivery_slots = $default_minimum_delivery_slots
|
||||
error_notice_recipient = postmaster
|
||||
error_recipient_limit = $default_recipient_limit
|
||||
error_recipient_refill_delay = $default_recipient_refill_delay
|
||||
error_recipient_refill_limit = $default_recipient_refill_limit
|
||||
error_service_name = error
|
||||
error_transport_rate_delay = $default_transport_rate_delay
|
||||
execution_directory_expansion_filter = 1234567890!@%-_=+:,./abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||
expand_owner_alias = no
|
||||
export_environment = TZ MAIL_CONFIG LANG
|
||||
fallback_transport =
|
||||
fallback_transport_maps =
|
||||
fast_flush_domains = $relay_domains
|
||||
fast_flush_purge_time = 7d
|
||||
fast_flush_refresh_time = 12h
|
||||
fault_injection_code = 0
|
||||
flush_service_name = flush
|
||||
fork_attempts = 5
|
||||
fork_delay = 1s
|
||||
forward_expansion_filter = 1234567890!@%-_=+:,./abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||
forward_path = $home/.forward${recipient_delimiter}${extension}, $home/.forward
|
||||
frozen_delivered_to = yes
|
||||
hash_queue_depth = 1
|
||||
hash_queue_names = deferred, defer
|
||||
header_address_token_limit = 10240
|
||||
header_checks =
|
||||
header_from_format = standard
|
||||
header_size_limit = 102400
|
||||
helpful_warnings = yes
|
||||
home_mailbox =
|
||||
hopcount_limit = 50
|
||||
html_directory = /usr/local/share/doc/postfix
|
||||
ignore_mx_lookup_error = no
|
||||
import_environment = MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ XAUTHORITY DISPLAY LANG=C POSTLOG_SERVICE POSTLOG_HOSTNAME
|
||||
in_flow_delay = 1s
|
||||
inet_interfaces = all
|
||||
inet_protocols = all
|
||||
initial_destination_concurrency = 5
|
||||
internal_mail_filter_classes =
|
||||
invalid_hostname_reject_code = 501
|
||||
ipc_idle = 5s
|
||||
ipc_timeout = 3600s
|
||||
ipc_ttl = 1000s
|
||||
line_length_limit = 2048
|
||||
lmdb_map_size = 16777216
|
||||
lmtp_address_preference = any
|
||||
lmtp_address_verify_target = rcpt
|
||||
lmtp_assume_final = no
|
||||
lmtp_balance_inet_protocols = yes
|
||||
lmtp_bind_address =
|
||||
lmtp_bind_address6 =
|
||||
lmtp_body_checks =
|
||||
lmtp_cname_overrides_servername = no
|
||||
lmtp_connect_timeout = 0s
|
||||
lmtp_connection_cache_destinations =
|
||||
lmtp_connection_cache_on_demand = yes
|
||||
lmtp_connection_cache_time_limit = 2s
|
||||
lmtp_connection_reuse_count_limit = 0
|
||||
lmtp_connection_reuse_time_limit = 300s
|
||||
lmtp_data_done_timeout = 600s
|
||||
lmtp_data_init_timeout = 120s
|
||||
lmtp_data_xfer_timeout = 180s
|
||||
lmtp_defer_if_no_mx_address_found = no
|
||||
lmtp_delivery_slot_cost = $default_delivery_slot_cost
|
||||
lmtp_delivery_slot_discount = $default_delivery_slot_discount
|
||||
lmtp_delivery_slot_loan = $default_delivery_slot_loan
|
||||
lmtp_delivery_status_filter = $default_delivery_status_filter
|
||||
lmtp_destination_concurrency_failed_cohort_limit = $default_destination_concurrency_failed_cohort_limit
|
||||
lmtp_destination_concurrency_limit = $default_destination_concurrency_limit
|
||||
lmtp_destination_concurrency_negative_feedback = $default_destination_concurrency_negative_feedback
|
||||
lmtp_destination_concurrency_positive_feedback = $default_destination_concurrency_positive_feedback
|
||||
lmtp_destination_rate_delay = $default_destination_rate_delay
|
||||
lmtp_destination_recipient_limit = $default_destination_recipient_limit
|
||||
lmtp_discard_lhlo_keyword_address_maps =
|
||||
lmtp_discard_lhlo_keywords =
|
||||
lmtp_dns_reply_filter =
|
||||
lmtp_dns_resolver_options =
|
||||
lmtp_dns_support_level =
|
||||
lmtp_enforce_tls = no
|
||||
lmtp_extra_recipient_limit = $default_extra_recipient_limit
|
||||
lmtp_fallback_relay =
|
||||
lmtp_generic_maps =
|
||||
lmtp_header_checks =
|
||||
lmtp_host_lookup = dns
|
||||
lmtp_initial_destination_concurrency = $initial_destination_concurrency
|
||||
lmtp_lhlo_name = $myhostname
|
||||
lmtp_lhlo_timeout = 300s
|
||||
lmtp_line_length_limit = 998
|
||||
lmtp_mail_timeout = 300s
|
||||
lmtp_mime_header_checks =
|
||||
lmtp_minimum_delivery_slots = $default_minimum_delivery_slots
|
||||
lmtp_mx_address_limit = 5
|
||||
lmtp_mx_session_limit = 2
|
||||
lmtp_nested_header_checks =
|
||||
lmtp_per_record_deadline = no
|
||||
lmtp_pix_workaround_delay_time = 10s
|
||||
lmtp_pix_workaround_maps =
|
||||
lmtp_pix_workaround_threshold_time = 500s
|
||||
lmtp_pix_workarounds = disable_esmtp,delay_dotcrlf
|
||||
lmtp_quit_timeout = 300s
|
||||
lmtp_quote_rfc821_envelope = yes
|
||||
lmtp_randomize_addresses = yes
|
||||
lmtp_rcpt_timeout = 300s
|
||||
lmtp_recipient_limit = $default_recipient_limit
|
||||
lmtp_recipient_refill_delay = $default_recipient_refill_delay
|
||||
lmtp_recipient_refill_limit = $default_recipient_refill_limit
|
||||
lmtp_reply_filter =
|
||||
lmtp_rset_timeout = 20s
|
||||
lmtp_sasl_auth_cache_name =
|
||||
lmtp_sasl_auth_cache_time = 90d
|
||||
lmtp_sasl_auth_enable = no
|
||||
lmtp_sasl_auth_soft_bounce = yes
|
||||
lmtp_sasl_mechanism_filter =
|
||||
lmtp_sasl_password_maps =
|
||||
lmtp_sasl_path =
|
||||
lmtp_sasl_security_options = noplaintext, noanonymous
|
||||
lmtp_sasl_tls_security_options = $lmtp_sasl_security_options
|
||||
lmtp_sasl_tls_verified_security_options = $lmtp_sasl_tls_security_options
|
||||
lmtp_sasl_type = cyrus
|
||||
lmtp_send_dummy_mail_auth = no
|
||||
lmtp_send_xforward_command = no
|
||||
lmtp_sender_dependent_authentication = no
|
||||
lmtp_skip_5xx_greeting = yes
|
||||
lmtp_skip_quit_response = no
|
||||
lmtp_starttls_timeout = 300s
|
||||
lmtp_tcp_port = 24
|
||||
lmtp_tls_CAfile =
|
||||
lmtp_tls_CApath =
|
||||
lmtp_tls_block_early_mail_reply = no
|
||||
lmtp_tls_cert_file =
|
||||
lmtp_tls_chain_files =
|
||||
lmtp_tls_ciphers = medium
|
||||
lmtp_tls_connection_reuse = no
|
||||
lmtp_tls_dcert_file =
|
||||
lmtp_tls_dkey_file = $lmtp_tls_dcert_file
|
||||
lmtp_tls_eccert_file =
|
||||
lmtp_tls_eckey_file = $lmtp_tls_eccert_file
|
||||
lmtp_tls_enforce_peername = yes
|
||||
lmtp_tls_exclude_ciphers =
|
||||
lmtp_tls_fingerprint_cert_match =
|
||||
lmtp_tls_fingerprint_digest = md5
|
||||
lmtp_tls_force_insecure_host_tlsa_lookup = no
|
||||
lmtp_tls_key_file = $lmtp_tls_cert_file
|
||||
lmtp_tls_loglevel = 0
|
||||
lmtp_tls_mandatory_ciphers = medium
|
||||
lmtp_tls_mandatory_exclude_ciphers =
|
||||
lmtp_tls_mandatory_protocols = !SSLv2, !SSLv3
|
||||
lmtp_tls_note_starttls_offer = no
|
||||
lmtp_tls_per_site =
|
||||
lmtp_tls_policy_maps =
|
||||
lmtp_tls_protocols = !SSLv2, !SSLv3
|
||||
lmtp_tls_scert_verifydepth = 9
|
||||
lmtp_tls_secure_cert_match = nexthop
|
||||
lmtp_tls_security_level =
|
||||
lmtp_tls_servername =
|
||||
lmtp_tls_session_cache_database =
|
||||
lmtp_tls_session_cache_timeout = 3600s
|
||||
lmtp_tls_trust_anchor_file =
|
||||
lmtp_tls_verify_cert_match = hostname
|
||||
lmtp_tls_wrappermode = no
|
||||
lmtp_transport_rate_delay = $default_transport_rate_delay
|
||||
lmtp_use_tls = no
|
||||
lmtp_xforward_timeout = 300s
|
||||
local_command_shell =
|
||||
local_delivery_slot_cost = $default_delivery_slot_cost
|
||||
local_delivery_slot_discount = $default_delivery_slot_discount
|
||||
local_delivery_slot_loan = $default_delivery_slot_loan
|
||||
local_delivery_status_filter = $default_delivery_status_filter
|
||||
local_destination_concurrency_failed_cohort_limit = $default_destination_concurrency_failed_cohort_limit
|
||||
local_destination_concurrency_limit = 2
|
||||
local_destination_concurrency_negative_feedback = $default_destination_concurrency_negative_feedback
|
||||
local_destination_concurrency_positive_feedback = $default_destination_concurrency_positive_feedback
|
||||
local_destination_rate_delay = $default_destination_rate_delay
|
||||
local_destination_recipient_limit = 1
|
||||
local_extra_recipient_limit = $default_extra_recipient_limit
|
||||
local_header_rewrite_clients = permit_inet_interfaces
|
||||
local_initial_destination_concurrency = $initial_destination_concurrency
|
||||
local_minimum_delivery_slots = $default_minimum_delivery_slots
|
||||
local_recipient_limit = $default_recipient_limit
|
||||
local_recipient_maps = proxy:unix:passwd.byname $alias_maps
|
||||
local_recipient_refill_delay = $default_recipient_refill_delay
|
||||
local_recipient_refill_limit = $default_recipient_refill_limit
|
||||
local_transport = local:$myhostname
|
||||
local_transport_rate_delay = $default_transport_rate_delay
|
||||
luser_relay =
|
||||
mail_name = Postfix
|
||||
mail_owner = postfix
|
||||
mail_release_date = 20190921
|
||||
mail_spool_directory = /var/mail
|
||||
mail_version = 3.4.7
|
||||
mailbox_command =
|
||||
mailbox_command_maps =
|
||||
mailbox_delivery_lock = flock, dotlock
|
||||
mailbox_size_limit = 51200000
|
||||
mailbox_transport =
|
||||
mailbox_transport_maps =
|
||||
maillog_file =
|
||||
maillog_file_compressor = gzip
|
||||
maillog_file_prefixes = /var, /dev/stdout
|
||||
maillog_file_rotate_suffix = %Y%M%d-%H%M%S
|
||||
mailq_path = /usr/local/bin/mailq
|
||||
manpage_directory = /usr/local/man
|
||||
maps_rbl_domains =
|
||||
maps_rbl_reject_code = 554
|
||||
masquerade_classes = envelope_sender, header_sender, header_recipient
|
||||
masquerade_domains =
|
||||
masquerade_exceptions =
|
||||
master_service_disable =
|
||||
max_idle = 100s
|
||||
max_use = 100
|
||||
maximal_backoff_time = 4000s
|
||||
maximal_queue_lifetime = 5d
|
||||
message_drop_headers = bcc, content-length, resent-bcc, return-path
|
||||
message_reject_characters =
|
||||
message_size_limit = 10240000
|
||||
message_strip_characters =
|
||||
meta_directory = /usr/local/libexec/postfix
|
||||
milter_command_timeout = 30s
|
||||
milter_connect_macros = j {daemon_name} {daemon_addr} v
|
||||
milter_connect_timeout = 30s
|
||||
milter_content_timeout = 300s
|
||||
milter_data_macros = i
|
||||
milter_default_action = tempfail
|
||||
milter_end_of_data_macros = i
|
||||
milter_end_of_header_macros = i
|
||||
milter_header_checks =
|
||||
milter_helo_macros = {tls_version} {cipher} {cipher_bits} {cert_subject} {cert_issuer}
|
||||
milter_macro_daemon_name = $myhostname
|
||||
milter_macro_defaults =
|
||||
milter_macro_v = $mail_name $mail_version
|
||||
milter_mail_macros = i {auth_type} {auth_authen} {auth_author} {mail_addr} {mail_host} {mail_mailer}
|
||||
milter_protocol = 6
|
||||
milter_rcpt_macros = i {rcpt_addr} {rcpt_host} {rcpt_mailer}
|
||||
milter_unknown_command_macros =
|
||||
mime_boundary_length_limit = 2048
|
||||
mime_header_checks = $header_checks
|
||||
mime_nesting_limit = 100
|
||||
minimal_backoff_time = 300s
|
||||
multi_instance_directories =
|
||||
multi_instance_enable = no
|
||||
multi_instance_group =
|
||||
multi_instance_name =
|
||||
multi_instance_wrapper =
|
||||
multi_recipient_bounce_reject_code = 550
|
||||
mydestination = $myhostname, localhost.$mydomain, localhost
|
||||
mynetworks_style = ${{$compatibility_level} < {2} ? {subnet} : {host}}
|
||||
myorigin = $myhostname
|
||||
nested_header_checks = $header_checks
|
||||
newaliases_path = /usr/local/bin/newaliases
|
||||
non_fqdn_reject_code = 504
|
||||
non_smtpd_milters =
|
||||
notify_classes = resource, software
|
||||
openssl_path = openssl
|
||||
owner_request_special = yes
|
||||
parent_domain_matches_subdomains = debug_peer_list,fast_flush_domains,mynetworks,permit_mx_backup_networks,qmqpd_authorized_clients,relay_domains,smtpd_access_maps
|
||||
permit_mx_backup_networks =
|
||||
pickup_service_name = pickup
|
||||
pipe_delivery_status_filter = $default_delivery_status_filter
|
||||
plaintext_reject_code = 450
|
||||
postlog_service_name = postlog
|
||||
postlogd_watchdog_timeout = 10s
|
||||
postmulti_control_commands = reload flush
|
||||
postmulti_start_commands = start
|
||||
postmulti_stop_commands = stop abort drain quick-stop
|
||||
postscreen_access_list = permit_mynetworks
|
||||
postscreen_bare_newline_action = ignore
|
||||
postscreen_bare_newline_enable = no
|
||||
postscreen_bare_newline_ttl = 30d
|
||||
postscreen_blacklist_action = ignore
|
||||
postscreen_cache_cleanup_interval = 12h
|
||||
postscreen_cache_map = btree:$data_directory/postscreen_cache
|
||||
postscreen_cache_retention_time = 7d
|
||||
postscreen_client_connection_count_limit = $smtpd_client_connection_count_limit
|
||||
postscreen_command_count_limit = 20
|
||||
postscreen_command_filter =
|
||||
postscreen_command_time_limit = ${stress?{10}:{300}}s
|
||||
postscreen_disable_vrfy_command = $disable_vrfy_command
|
||||
postscreen_discard_ehlo_keyword_address_maps = $smtpd_discard_ehlo_keyword_address_maps
|
||||
postscreen_discard_ehlo_keywords = $smtpd_discard_ehlo_keywords
|
||||
postscreen_dnsbl_action = ignore
|
||||
postscreen_dnsbl_max_ttl = ${postscreen_dnsbl_ttl?{$postscreen_dnsbl_ttl}:{1}}h
|
||||
postscreen_dnsbl_min_ttl = 60s
|
||||
postscreen_dnsbl_reply_map =
|
||||
postscreen_dnsbl_sites =
|
||||
postscreen_dnsbl_threshold = 1
|
||||
postscreen_dnsbl_timeout = 10s
|
||||
postscreen_dnsbl_whitelist_threshold = 0
|
||||
postscreen_enforce_tls = $smtpd_enforce_tls
|
||||
postscreen_expansion_filter = $smtpd_expansion_filter
|
||||
postscreen_forbidden_commands = $smtpd_forbidden_commands
|
||||
postscreen_greet_action = ignore
|
||||
postscreen_greet_banner = $smtpd_banner
|
||||
postscreen_greet_ttl = 1d
|
||||
postscreen_greet_wait = ${stress?{2}:{6}}s
|
||||
postscreen_helo_required = $smtpd_helo_required
|
||||
postscreen_non_smtp_command_action = drop
|
||||
postscreen_non_smtp_command_enable = no
|
||||
postscreen_non_smtp_command_ttl = 30d
|
||||
postscreen_pipelining_action = enforce
|
||||
postscreen_pipelining_enable = no
|
||||
postscreen_pipelining_ttl = 30d
|
||||
postscreen_post_queue_limit = $default_process_limit
|
||||
postscreen_pre_queue_limit = $default_process_limit
|
||||
postscreen_reject_footer = $smtpd_reject_footer
|
||||
postscreen_reject_footer_maps = $smtpd_reject_footer_maps
|
||||
postscreen_tls_security_level = $smtpd_tls_security_level
|
||||
postscreen_upstream_proxy_protocol =
|
||||
postscreen_upstream_proxy_timeout = 5s
|
||||
postscreen_use_tls = $smtpd_use_tls
|
||||
postscreen_watchdog_timeout = 10s
|
||||
postscreen_whitelist_interfaces = static:all
|
||||
prepend_delivered_header = command, file, forward
|
||||
process_id_directory = pid
|
||||
propagate_unmatched_extensions = canonical, virtual
|
||||
proxy_interfaces =
|
||||
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $sender_bcc_maps $recipient_bcc_maps $smtp_generic_maps $lmtp_generic_maps $alias_maps $smtpd_client_restrictions $smtpd_helo_restrictions $smtpd_sender_restrictions $smtpd_relay_restrictions $smtpd_recipient_restrictions $address_verify_sender_dependent_default_transport_maps $address_verify_sender_dependent_relayhost_maps $address_verify_transport_maps $fallback_transport_maps $lmtp_discard_lhlo_keyword_address_maps $lmtp_pix_workaround_maps $lmtp_sasl_password_maps $lmtp_tls_policy_maps $mailbox_command_maps $mailbox_transport_maps $postscreen_discard_ehlo_keyword_address_maps $rbl_reply_maps $sender_dependent_default_transport_maps $sender_dependent_relayhost_maps $smtp_discard_ehlo_keyword_address_maps $smtp_pix_workaround_maps $smtp_sasl_password_maps $smtp_tls_policy_maps $smtpd_discard_ehlo_keyword_address_maps $smtpd_milter_maps $virtual_gid_maps $virtual_uid_maps
|
||||
proxy_write_maps = $smtp_sasl_auth_cache_name $lmtp_sasl_auth_cache_name $address_verify_map $postscreen_cache_map
|
||||
proxymap_service_name = proxymap
|
||||
proxywrite_service_name = proxywrite
|
||||
qmgr_clog_warn_time = 300s
|
||||
qmgr_daemon_timeout = 1000s
|
||||
qmgr_fudge_factor = 100
|
||||
qmgr_ipc_timeout = 60s
|
||||
qmgr_message_active_limit = 20000
|
||||
qmgr_message_recipient_limit = 20000
|
||||
qmgr_message_recipient_minimum = 10
|
||||
qmqpd_authorized_clients =
|
||||
qmqpd_client_port_logging = no
|
||||
qmqpd_error_delay = 1s
|
||||
qmqpd_timeout = 300s
|
||||
queue_directory = /var/spool/postfix
|
||||
queue_file_attribute_count_limit = 100
|
||||
queue_minfree = 0
|
||||
queue_run_delay = 300s
|
||||
queue_service_name = qmgr
|
||||
rbl_reply_maps =
|
||||
readme_directory = /usr/local/share/doc/postfix
|
||||
receive_override_options =
|
||||
recipient_bcc_maps =
|
||||
recipient_canonical_classes = envelope_recipient, header_recipient
|
||||
recipient_canonical_maps =
|
||||
recipient_delimiter =
|
||||
reject_code = 554
|
||||
reject_tempfail_action = defer_if_permit
|
||||
relay_clientcerts =
|
||||
relay_delivery_slot_cost = $default_delivery_slot_cost
|
||||
relay_delivery_slot_discount = $default_delivery_slot_discount
|
||||
relay_delivery_slot_loan = $default_delivery_slot_loan
|
||||
relay_destination_concurrency_failed_cohort_limit = $default_destination_concurrency_failed_cohort_limit
|
||||
relay_destination_concurrency_limit = $default_destination_concurrency_limit
|
||||
relay_destination_concurrency_negative_feedback = $default_destination_concurrency_negative_feedback
|
||||
relay_destination_concurrency_positive_feedback = $default_destination_concurrency_positive_feedback
|
||||
relay_destination_rate_delay = $default_destination_rate_delay
|
||||
relay_destination_recipient_limit = $default_destination_recipient_limit
|
||||
relay_domains = ${{$compatibility_level} < {2} ? {$mydestination} : {}}
|
||||
relay_domains_reject_code = 554
|
||||
relay_extra_recipient_limit = $default_extra_recipient_limit
|
||||
relay_initial_destination_concurrency = $initial_destination_concurrency
|
||||
relay_minimum_delivery_slots = $default_minimum_delivery_slots
|
||||
relay_recipient_limit = $default_recipient_limit
|
||||
relay_recipient_maps =
|
||||
relay_recipient_refill_delay = $default_recipient_refill_delay
|
||||
relay_recipient_refill_limit = $default_recipient_refill_limit
|
||||
relay_transport = relay
|
||||
relay_transport_rate_delay = $default_transport_rate_delay
|
||||
relayhost =
|
||||
relocated_maps =
|
||||
remote_header_rewrite_domain =
|
||||
require_home_directory = no
|
||||
reset_owner_alias = no
|
||||
resolve_dequoted_address = yes
|
||||
resolve_null_domain = no
|
||||
resolve_numeric_domain = no
|
||||
retry_delivery_slot_cost = $default_delivery_slot_cost
|
||||
retry_delivery_slot_discount = $default_delivery_slot_discount
|
||||
retry_delivery_slot_loan = $default_delivery_slot_loan
|
||||
retry_destination_concurrency_failed_cohort_limit = $default_destination_concurrency_failed_cohort_limit
|
||||
retry_destination_concurrency_limit = $default_destination_concurrency_limit
|
||||
retry_destination_concurrency_negative_feedback = $default_destination_concurrency_negative_feedback
|
||||
retry_destination_concurrency_positive_feedback = $default_destination_concurrency_positive_feedback
|
||||
retry_destination_rate_delay = $default_destination_rate_delay
|
||||
retry_destination_recipient_limit = $default_destination_recipient_limit
|
||||
retry_extra_recipient_limit = $default_extra_recipient_limit
|
||||
retry_initial_destination_concurrency = $initial_destination_concurrency
|
||||
retry_minimum_delivery_slots = $default_minimum_delivery_slots
|
||||
retry_recipient_limit = $default_recipient_limit
|
||||
retry_recipient_refill_delay = $default_recipient_refill_delay
|
||||
retry_recipient_refill_limit = $default_recipient_refill_limit
|
||||
retry_transport_rate_delay = $default_transport_rate_delay
|
||||
rewrite_service_name = rewrite
|
||||
sample_directory = /usr/local/etc/postfix
|
||||
send_cyrus_sasl_authzid = no
|
||||
sender_bcc_maps =
|
||||
sender_canonical_classes = envelope_sender, header_sender
|
||||
sender_canonical_maps =
|
||||
sender_dependent_default_transport_maps =
|
||||
sender_dependent_relayhost_maps =
|
||||
sendmail_fix_line_endings = always
|
||||
sendmail_path = /usr/local/sbin/sendmail
|
||||
service_name =
|
||||
service_throttle_time = 60s
|
||||
setgid_group = maildrop
|
||||
shlib_directory = /usr/local/lib/postfix
|
||||
show_user_unknown_table_name = yes
|
||||
showq_service_name = showq
|
||||
smtp_address_preference = any
|
||||
smtp_address_verify_target = rcpt
|
||||
smtp_always_send_ehlo = yes
|
||||
smtp_balance_inet_protocols = yes
|
||||
smtp_bind_address =
|
||||
smtp_bind_address6 =
|
||||
smtp_body_checks =
|
||||
smtp_cname_overrides_servername = no
|
||||
smtp_connect_timeout = 30s
|
||||
smtp_connection_cache_destinations =
|
||||
smtp_connection_cache_on_demand = yes
|
||||
smtp_connection_cache_time_limit = 2s
|
||||
smtp_connection_reuse_count_limit = 0
|
||||
smtp_connection_reuse_time_limit = 300s
|
||||
smtp_data_done_timeout = 600s
|
||||
smtp_data_init_timeout = 120s
|
||||
smtp_data_xfer_timeout = 180s
|
||||
smtp_defer_if_no_mx_address_found = no
|
||||
smtp_delivery_slot_cost = $default_delivery_slot_cost
|
||||
smtp_delivery_slot_discount = $default_delivery_slot_discount
|
||||
smtp_delivery_slot_loan = $default_delivery_slot_loan
|
||||
smtp_delivery_status_filter = $default_delivery_status_filter
|
||||
smtp_destination_concurrency_failed_cohort_limit = $default_destination_concurrency_failed_cohort_limit
|
||||
smtp_destination_concurrency_limit = $default_destination_concurrency_limit
|
||||
smtp_destination_concurrency_negative_feedback = $default_destination_concurrency_negative_feedback
|
||||
smtp_destination_concurrency_positive_feedback = $default_destination_concurrency_positive_feedback
|
||||
smtp_destination_rate_delay = $default_destination_rate_delay
|
||||
smtp_destination_recipient_limit = $default_destination_recipient_limit
|
||||
smtp_discard_ehlo_keyword_address_maps =
|
||||
smtp_discard_ehlo_keywords =
|
||||
smtp_dns_reply_filter =
|
||||
smtp_dns_resolver_options =
|
||||
smtp_dns_support_level =
|
||||
smtp_enforce_tls = no
|
||||
smtp_extra_recipient_limit = $default_extra_recipient_limit
|
||||
smtp_fallback_relay = $fallback_relay
|
||||
smtp_generic_maps =
|
||||
smtp_header_checks =
|
||||
smtp_helo_name = $myhostname
|
||||
smtp_helo_timeout = 300s
|
||||
smtp_host_lookup = dns
|
||||
smtp_initial_destination_concurrency = $initial_destination_concurrency
|
||||
smtp_line_length_limit = 998
|
||||
smtp_mail_timeout = 300s
|
||||
smtp_mime_header_checks =
|
||||
smtp_minimum_delivery_slots = $default_minimum_delivery_slots
|
||||
smtp_mx_address_limit = 5
|
||||
smtp_mx_session_limit = 2
|
||||
smtp_nested_header_checks =
|
||||
smtp_never_send_ehlo = no
|
||||
smtp_per_record_deadline = no
|
||||
smtp_pix_workaround_delay_time = 10s
|
||||
smtp_pix_workaround_maps =
|
||||
smtp_pix_workaround_threshold_time = 500s
|
||||
smtp_pix_workarounds = disable_esmtp,delay_dotcrlf
|
||||
smtp_quit_timeout = 300s
|
||||
smtp_quote_rfc821_envelope = yes
|
||||
smtp_randomize_addresses = yes
|
||||
smtp_rcpt_timeout = 300s
|
||||
smtp_recipient_limit = $default_recipient_limit
|
||||
smtp_recipient_refill_delay = $default_recipient_refill_delay
|
||||
smtp_recipient_refill_limit = $default_recipient_refill_limit
|
||||
smtp_reply_filter =
|
||||
smtp_rset_timeout = 20s
|
||||
smtp_sasl_auth_cache_name =
|
||||
smtp_sasl_auth_cache_time = 90d
|
||||
smtp_sasl_auth_enable = no
|
||||
smtp_sasl_auth_soft_bounce = yes
|
||||
smtp_sasl_mechanism_filter =
|
||||
smtp_sasl_password_maps =
|
||||
smtp_sasl_path =
|
||||
smtp_sasl_security_options = noplaintext, noanonymous
|
||||
smtp_sasl_tls_security_options = $smtp_sasl_security_options
|
||||
smtp_sasl_tls_verified_security_options = $smtp_sasl_tls_security_options
|
||||
smtp_sasl_type = cyrus
|
||||
smtp_send_dummy_mail_auth = no
|
||||
smtp_send_xforward_command = no
|
||||
smtp_sender_dependent_authentication = no
|
||||
smtp_skip_5xx_greeting = yes
|
||||
smtp_skip_quit_response = yes
|
||||
smtp_starttls_timeout = 300s
|
||||
smtp_tcp_port = smtp
|
||||
smtp_tls_CAfile =
|
||||
smtp_tls_CApath =
|
||||
smtp_tls_block_early_mail_reply = no
|
||||
smtp_tls_cert_file =
|
||||
smtp_tls_chain_files =
|
||||
smtp_tls_ciphers = medium
|
||||
smtp_tls_connection_reuse = no
|
||||
smtp_tls_dane_insecure_mx_policy = dane
|
||||
smtp_tls_dcert_file =
|
||||
smtp_tls_dkey_file = $smtp_tls_dcert_file
|
||||
smtp_tls_eccert_file =
|
||||
smtp_tls_eckey_file = $smtp_tls_eccert_file
|
||||
smtp_tls_enforce_peername = yes
|
||||
smtp_tls_exclude_ciphers =
|
||||
smtp_tls_fingerprint_cert_match =
|
||||
smtp_tls_fingerprint_digest = md5
|
||||
smtp_tls_force_insecure_host_tlsa_lookup = no
|
||||
smtp_tls_key_file = $smtp_tls_cert_file
|
||||
smtp_tls_loglevel = 0
|
||||
smtp_tls_mandatory_ciphers = medium
|
||||
smtp_tls_mandatory_exclude_ciphers =
|
||||
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
|
||||
smtp_tls_note_starttls_offer = no
|
||||
smtp_tls_per_site =
|
||||
smtp_tls_policy_maps =
|
||||
smtp_tls_protocols = !SSLv2, !SSLv3
|
||||
smtp_tls_scert_verifydepth = 9
|
||||
smtp_tls_secure_cert_match = nexthop, dot-nexthop
|
||||
smtp_tls_security_level =
|
||||
smtp_tls_servername =
|
||||
smtp_tls_session_cache_database =
|
||||
smtp_tls_session_cache_timeout = 3600s
|
||||
smtp_tls_trust_anchor_file =
|
||||
smtp_tls_verify_cert_match = hostname
|
||||
smtp_tls_wrappermode = no
|
||||
smtp_transport_rate_delay = $default_transport_rate_delay
|
||||
smtp_use_tls = no
|
||||
smtp_xforward_timeout = 300s
|
||||
smtpd_authorized_verp_clients = $authorized_verp_clients
|
||||
smtpd_authorized_xclient_hosts =
|
||||
smtpd_authorized_xforward_hosts =
|
||||
smtpd_banner = $myhostname ESMTP $mail_name
|
||||
smtpd_client_auth_rate_limit = 0
|
||||
smtpd_client_connection_count_limit = 50
|
||||
smtpd_client_connection_rate_limit = 0
|
||||
smtpd_client_event_limit_exceptions = ${smtpd_client_connection_limit_exceptions:$mynetworks}
|
||||
smtpd_client_message_rate_limit = 0
|
||||
smtpd_client_new_tls_session_rate_limit = 0
|
||||
smtpd_client_port_logging = no
|
||||
smtpd_client_recipient_rate_limit = 0
|
||||
smtpd_client_restrictions =
|
||||
smtpd_command_filter =
|
||||
smtpd_data_restrictions =
|
||||
smtpd_delay_open_until_valid_rcpt = yes
|
||||
smtpd_delay_reject = yes
|
||||
smtpd_discard_ehlo_keyword_address_maps =
|
||||
smtpd_discard_ehlo_keywords =
|
||||
smtpd_dns_reply_filter =
|
||||
smtpd_end_of_data_restrictions =
|
||||
smtpd_enforce_tls = no
|
||||
smtpd_error_sleep_time = 1s
|
||||
smtpd_etrn_restrictions =
|
||||
smtpd_expansion_filter = \t\40!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
|
||||
smtpd_forbidden_commands = CONNECT GET POST
|
||||
smtpd_hard_error_limit = ${stress?{1}:{20}}
|
||||
smtpd_helo_required = no
|
||||
smtpd_helo_restrictions =
|
||||
smtpd_history_flush_threshold = 100
|
||||
smtpd_junk_command_limit = ${stress?{1}:{100}}
|
||||
smtpd_log_access_permit_actions =
|
||||
smtpd_milter_maps =
|
||||
smtpd_milters =
|
||||
smtpd_noop_commands =
|
||||
smtpd_null_access_lookup_key = <>
|
||||
smtpd_peername_lookup = yes
|
||||
smtpd_per_record_deadline = ${stress?{yes}:{no}}
|
||||
smtpd_policy_service_default_action = 451 4.3.5 Server configuration problem
|
||||
smtpd_policy_service_max_idle = 300s
|
||||
smtpd_policy_service_max_ttl = 1000s
|
||||
smtpd_policy_service_policy_context =
|
||||
smtpd_policy_service_request_limit = 0
|
||||
smtpd_policy_service_retry_delay = 1s
|
||||
smtpd_policy_service_timeout = 100s
|
||||
smtpd_policy_service_try_limit = 2
|
||||
smtpd_proxy_ehlo = $myhostname
|
||||
smtpd_proxy_filter =
|
||||
smtpd_proxy_options =
|
||||
smtpd_proxy_timeout = 100s
|
||||
smtpd_recipient_limit = 1000
|
||||
smtpd_recipient_overshoot_limit = 1000
|
||||
smtpd_recipient_restrictions =
|
||||
smtpd_reject_footer =
|
||||
smtpd_reject_footer_maps =
|
||||
smtpd_reject_unlisted_recipient = yes
|
||||
smtpd_reject_unlisted_sender = no
|
||||
smtpd_relay_restrictions = ${{$compatibility_level} < {1} ? {} : {permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination}}
|
||||
smtpd_restriction_classes =
|
||||
smtpd_sasl_auth_enable = no
|
||||
smtpd_sasl_authenticated_header = no
|
||||
smtpd_sasl_exceptions_networks =
|
||||
smtpd_sasl_local_domain =
|
||||
smtpd_sasl_path = smtpd
|
||||
smtpd_sasl_response_limit = 12288
|
||||
smtpd_sasl_security_options = noanonymous
|
||||
smtpd_sasl_service = smtp
|
||||
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
|
||||
smtpd_sasl_type = dovecot
|
||||
smtpd_sender_login_maps =
|
||||
smtpd_sender_restrictions =
|
||||
smtpd_service_name = smtpd
|
||||
smtpd_soft_error_limit = 10
|
||||
smtpd_starttls_timeout = ${stress?{10}:{300}}s
|
||||
smtpd_timeout = ${stress?{10}:{300}}s
|
||||
smtpd_tls_CAfile =
|
||||
smtpd_tls_CApath =
|
||||
smtpd_tls_always_issue_session_ids = yes
|
||||
smtpd_tls_ask_ccert = no
|
||||
smtpd_tls_auth_only = no
|
||||
smtpd_tls_ccert_verifydepth = 9
|
||||
smtpd_tls_cert_file =
|
||||
smtpd_tls_chain_files =
|
||||
smtpd_tls_ciphers = medium
|
||||
smtpd_tls_dcert_file =
|
||||
smtpd_tls_dh1024_param_file =
|
||||
smtpd_tls_dh512_param_file =
|
||||
smtpd_tls_dkey_file = $smtpd_tls_dcert_file
|
||||
smtpd_tls_eccert_file =
|
||||
smtpd_tls_eckey_file = $smtpd_tls_eccert_file
|
||||
smtpd_tls_eecdh_grade = auto
|
||||
smtpd_tls_exclude_ciphers =
|
||||
smtpd_tls_fingerprint_digest = md5
|
||||
smtpd_tls_key_file = $smtpd_tls_cert_file
|
||||
smtpd_tls_loglevel = 0
|
||||
smtpd_tls_mandatory_ciphers = medium
|
||||
smtpd_tls_mandatory_exclude_ciphers =
|
||||
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
|
||||
smtpd_tls_protocols = !SSLv2, !SSLv3
|
||||
smtpd_tls_received_header = no
|
||||
smtpd_tls_req_ccert = no
|
||||
smtpd_tls_security_level =
|
||||
smtpd_tls_session_cache_database =
|
||||
smtpd_tls_session_cache_timeout = 3600s
|
||||
smtpd_tls_wrappermode = no
|
||||
smtpd_upstream_proxy_protocol =
|
||||
smtpd_upstream_proxy_timeout = 5s
|
||||
smtpd_use_tls = no
|
||||
smtputf8_autodetect_classes = sendmail, verify
|
||||
smtputf8_enable = ${{$compatibility_level} < {1} ? {no} : {yes}}
|
||||
soft_bounce = no
|
||||
stale_lock_time = 500s
|
||||
stress =
|
||||
strict_7bit_headers = no
|
||||
strict_8bitmime = no
|
||||
strict_8bitmime_body = no
|
||||
strict_mailbox_ownership = yes
|
||||
strict_mime_encoding_domain = no
|
||||
strict_rfc821_envelopes = no
|
||||
strict_smtputf8 = no
|
||||
sun_mailtool_compatibility = no
|
||||
swap_bangpath = yes
|
||||
syslog_facility = mail
|
||||
syslog_name = ${multi_instance_name?{$multi_instance_name}:{postfix}}
|
||||
tcp_windowsize = 0
|
||||
tls_append_default_CA = no
|
||||
tls_daemon_random_bytes = 32
|
||||
tls_dane_digests = sha512 sha256
|
||||
tls_disable_workarounds =
|
||||
tls_eecdh_auto_curves = X25519 X448 prime256v1 secp521r1 secp384r1
|
||||
tls_eecdh_strong_curve = prime256v1
|
||||
tls_eecdh_ultra_curve = secp384r1
|
||||
tls_export_cipherlist = aNULL:-aNULL:HIGH:MEDIUM:LOW:EXPORT:+RC4:@STRENGTH
|
||||
tls_fast_shutdown_enable = yes
|
||||
tls_high_cipherlist = aNULL:-aNULL:HIGH:@STRENGTH
|
||||
tls_legacy_public_key_fingerprints = no
|
||||
tls_low_cipherlist = aNULL:-aNULL:HIGH:MEDIUM:LOW:+RC4:@STRENGTH
|
||||
tls_medium_cipherlist = aNULL:-aNULL:HIGH:MEDIUM:+RC4:@STRENGTH
|
||||
tls_null_cipherlist = eNULL:!aNULL
|
||||
tls_preempt_cipherlist = no
|
||||
tls_random_bytes = 32
|
||||
tls_random_exchange_name = ${data_directory}/prng_exch
|
||||
tls_random_prng_update_period = 3600s
|
||||
tls_random_reseed_period = 3600s
|
||||
tls_random_source = dev:/dev/urandom
|
||||
tls_server_sni_maps =
|
||||
tls_session_ticket_cipher = aes-256-cbc
|
||||
tls_ssl_options =
|
||||
tls_wildcard_matches_multiple_labels = yes
|
||||
tlsmgr_service_name = tlsmgr
|
||||
tlsproxy_client_CAfile = $smtp_tls_CAfile
|
||||
tlsproxy_client_CApath = $smtp_tls_CApath
|
||||
tlsproxy_client_cert_file = $smtp_tls_cert_file
|
||||
tlsproxy_client_chain_files = $smtp_tls_chain_files
|
||||
tlsproxy_client_dcert_file = $smtp_tls_dcert_file
|
||||
tlsproxy_client_dkey_file = $smtp_tls_dkey_file
|
||||
tlsproxy_client_eccert_file = $smtp_tls_eccert_file
|
||||
tlsproxy_client_eckey_file = $smtp_tls_eckey_file
|
||||
tlsproxy_client_enforce_tls = $smtp_enforce_tls
|
||||
tlsproxy_client_fingerprint_digest = $smtp_tls_fingerprint_digest
|
||||
tlsproxy_client_key_file = $smtp_tls_key_file
|
||||
tlsproxy_client_level = $smtp_tls_security_level
|
||||
tlsproxy_client_loglevel = $smtp_tls_loglevel
|
||||
tlsproxy_client_loglevel_parameter = smtp_tls_loglevel
|
||||
tlsproxy_client_per_site = $smtp_tls_per_site
|
||||
tlsproxy_client_policy = $smtp_tls_policy_maps
|
||||
tlsproxy_client_scert_verifydepth = $smtp_tls_scert_verifydepth
|
||||
tlsproxy_client_use_tls = $smtp_use_tls
|
||||
tlsproxy_enforce_tls = $smtpd_enforce_tls
|
||||
tlsproxy_service_name = tlsproxy
|
||||
tlsproxy_tls_CAfile = $smtpd_tls_CAfile
|
||||
tlsproxy_tls_CApath = $smtpd_tls_CApath
|
||||
tlsproxy_tls_always_issue_session_ids = $smtpd_tls_always_issue_session_ids
|
||||
tlsproxy_tls_ask_ccert = $smtpd_tls_ask_ccert
|
||||
tlsproxy_tls_ccert_verifydepth = $smtpd_tls_ccert_verifydepth
|
||||
tlsproxy_tls_cert_file = $smtpd_tls_cert_file
|
||||
tlsproxy_tls_chain_files = $smtpd_tls_chain_files
|
||||
tlsproxy_tls_ciphers = $smtpd_tls_ciphers
|
||||
tlsproxy_tls_dcert_file = $smtpd_tls_dcert_file
|
||||
tlsproxy_tls_dh1024_param_file = $smtpd_tls_dh1024_param_file
|
||||
tlsproxy_tls_dh512_param_file = $smtpd_tls_dh512_param_file
|
||||
tlsproxy_tls_dkey_file = $smtpd_tls_dkey_file
|
||||
tlsproxy_tls_eccert_file = $smtpd_tls_eccert_file
|
||||
tlsproxy_tls_eckey_file = $smtpd_tls_eckey_file
|
||||
tlsproxy_tls_eecdh_grade = $smtpd_tls_eecdh_grade
|
||||
tlsproxy_tls_exclude_ciphers = $smtpd_tls_exclude_ciphers
|
||||
tlsproxy_tls_fingerprint_digest = $smtpd_tls_fingerprint_digest
|
||||
tlsproxy_tls_key_file = $smtpd_tls_key_file
|
||||
tlsproxy_tls_loglevel = $smtpd_tls_loglevel
|
||||
tlsproxy_tls_mandatory_ciphers = $smtpd_tls_mandatory_ciphers
|
||||
tlsproxy_tls_mandatory_exclude_ciphers = $smtpd_tls_mandatory_exclude_ciphers
|
||||
tlsproxy_tls_mandatory_protocols = $smtpd_tls_mandatory_protocols
|
||||
tlsproxy_tls_protocols = $smtpd_tls_protocols
|
||||
tlsproxy_tls_req_ccert = $smtpd_tls_req_ccert
|
||||
tlsproxy_tls_security_level = $smtpd_tls_security_level
|
||||
tlsproxy_use_tls = $smtpd_use_tls
|
||||
tlsproxy_watchdog_timeout = 10s
|
||||
trace_service_name = trace
|
||||
transport_maps =
|
||||
transport_retry_time = 60s
|
||||
trigger_timeout = 10s
|
||||
undisclosed_recipients_header =
|
||||
unknown_address_reject_code = 450
|
||||
unknown_address_tempfail_action = $reject_tempfail_action
|
||||
unknown_client_reject_code = 450
|
||||
unknown_helo_hostname_tempfail_action = $reject_tempfail_action
|
||||
unknown_hostname_reject_code = 450
|
||||
unknown_local_recipient_reject_code = 550
|
||||
unknown_relay_recipient_reject_code = 550
|
||||
unknown_virtual_alias_reject_code = 550
|
||||
unknown_virtual_mailbox_reject_code = 550
|
||||
unverified_recipient_defer_code = 450
|
||||
unverified_recipient_reject_code = 450
|
||||
unverified_recipient_reject_reason =
|
||||
unverified_recipient_tempfail_action = $reject_tempfail_action
|
||||
unverified_sender_defer_code = 450
|
||||
unverified_sender_reject_code = 450
|
||||
unverified_sender_reject_reason =
|
||||
unverified_sender_tempfail_action = $reject_tempfail_action
|
||||
verp_delimiter_filter = -=+
|
||||
virtual_alias_address_length_limit = 1000
|
||||
virtual_alias_domains = $virtual_alias_maps
|
||||
virtual_alias_expansion_limit = 1000
|
||||
virtual_alias_maps = $virtual_maps
|
||||
virtual_alias_recursion_limit = 1000
|
||||
virtual_delivery_slot_cost = $default_delivery_slot_cost
|
||||
virtual_delivery_slot_discount = $default_delivery_slot_discount
|
||||
virtual_delivery_slot_loan = $default_delivery_slot_loan
|
||||
virtual_delivery_status_filter = $default_delivery_status_filter
|
||||
virtual_destination_concurrency_failed_cohort_limit = $default_destination_concurrency_failed_cohort_limit
|
||||
virtual_destination_concurrency_limit = $default_destination_concurrency_limit
|
||||
virtual_destination_concurrency_negative_feedback = $default_destination_concurrency_negative_feedback
|
||||
virtual_destination_concurrency_positive_feedback = $default_destination_concurrency_positive_feedback
|
||||
virtual_destination_rate_delay = $default_destination_rate_delay
|
||||
virtual_destination_recipient_limit = $default_destination_recipient_limit
|
||||
virtual_extra_recipient_limit = $default_extra_recipient_limit
|
||||
virtual_gid_maps =
|
||||
virtual_initial_destination_concurrency = $initial_destination_concurrency
|
||||
virtual_mailbox_base =
|
||||
virtual_mailbox_domains = $virtual_mailbox_maps
|
||||
virtual_mailbox_limit = 51200000
|
||||
virtual_mailbox_lock = fcntl, dotlock
|
||||
virtual_mailbox_maps =
|
||||
virtual_minimum_delivery_slots = $default_minimum_delivery_slots
|
||||
virtual_minimum_uid = 100
|
||||
virtual_recipient_limit = $default_recipient_limit
|
||||
virtual_recipient_refill_delay = $default_recipient_refill_delay
|
||||
virtual_recipient_refill_limit = $default_recipient_refill_limit
|
||||
virtual_transport = virtual
|
||||
virtual_transport_rate_delay = $default_transport_rate_delay
|
||||
virtual_uid_maps =
|
677
jails/config/mail/postfix/main.cf.sample
Normal file
677
jails/config/mail/postfix/main.cf.sample
Normal file
@ -0,0 +1,677 @@
|
||||
# Global Postfix configuration file. This file lists only a subset
|
||||
# of all parameters. For the syntax, and for a complete parameter
|
||||
# list, see the postconf(5) manual page (command: "man 5 postconf").
|
||||
#
|
||||
# For common configuration examples, see BASIC_CONFIGURATION_README
|
||||
# and STANDARD_CONFIGURATION_README. To find these documents, use
|
||||
# the command "postconf html_directory readme_directory", or go to
|
||||
# http://www.postfix.org/BASIC_CONFIGURATION_README.html etc.
|
||||
#
|
||||
# For best results, change no more than 2-3 parameters at a time,
|
||||
# and test if Postfix still works after every change.
|
||||
|
||||
# COMPATIBILITY
|
||||
#
|
||||
# The compatibility_level determines what default settings Postfix
|
||||
# will use for main.cf and master.cf settings. These defaults will
|
||||
# change over time.
|
||||
#
|
||||
# To avoid breaking things, Postfix will use backwards-compatible
|
||||
# default settings and log where it uses those old backwards-compatible
|
||||
# default settings, until the system administrator has determined
|
||||
# if any backwards-compatible default settings need to be made
|
||||
# permanent in main.cf or master.cf.
|
||||
#
|
||||
# When this review is complete, update the compatibility_level setting
|
||||
# below as recommended in the RELEASE_NOTES file.
|
||||
#
|
||||
# The level below is what should be used with new (not upgrade) installs.
|
||||
#
|
||||
compatibility_level = 2
|
||||
|
||||
# SOFT BOUNCE
|
||||
#
|
||||
# The soft_bounce parameter provides a limited safety net for
|
||||
# testing. When soft_bounce is enabled, mail will remain queued that
|
||||
# would otherwise bounce. This parameter disables locally-generated
|
||||
# bounces, and prevents the SMTP server from rejecting mail permanently
|
||||
# (by changing 5xx replies into 4xx replies). However, soft_bounce
|
||||
# is no cure for address rewriting mistakes or mail routing mistakes.
|
||||
#
|
||||
#soft_bounce = no
|
||||
|
||||
# LOCAL PATHNAME INFORMATION
|
||||
#
|
||||
# The queue_directory specifies the location of the Postfix queue.
|
||||
# This is also the root directory of Postfix daemons that run chrooted.
|
||||
# See the files in examples/chroot-setup for setting up Postfix chroot
|
||||
# environments on different UNIX systems.
|
||||
#
|
||||
queue_directory = /var/spool/postfix
|
||||
|
||||
# The command_directory parameter specifies the location of all
|
||||
# postXXX commands.
|
||||
#
|
||||
command_directory = /usr/local/sbin
|
||||
|
||||
# The daemon_directory parameter specifies the location of all Postfix
|
||||
# daemon programs (i.e. programs listed in the master.cf file). This
|
||||
# directory must be owned by root.
|
||||
#
|
||||
daemon_directory = /usr/local/libexec/postfix
|
||||
|
||||
# The data_directory parameter specifies the location of Postfix-writable
|
||||
# data files (caches, random numbers). This directory must be owned
|
||||
# by the mail_owner account (see below).
|
||||
#
|
||||
data_directory = /var/db/postfix
|
||||
|
||||
# QUEUE AND PROCESS OWNERSHIP
|
||||
#
|
||||
# The mail_owner parameter specifies the owner of the Postfix queue
|
||||
# and of most Postfix daemon processes. Specify the name of a user
|
||||
# account THAT DOES NOT SHARE ITS USER OR GROUP ID WITH OTHER ACCOUNTS
|
||||
# AND THAT OWNS NO OTHER FILES OR PROCESSES ON THE SYSTEM. In
|
||||
# particular, don't specify nobody or daemon. PLEASE USE A DEDICATED
|
||||
# USER.
|
||||
#
|
||||
mail_owner = postfix
|
||||
|
||||
# The default_privs parameter specifies the default rights used by
|
||||
# the local delivery agent for delivery to external file or command.
|
||||
# These rights are used in the absence of a recipient user context.
|
||||
# DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER.
|
||||
#
|
||||
#default_privs = nobody
|
||||
|
||||
# INTERNET HOST AND DOMAIN NAMES
|
||||
#
|
||||
# The myhostname parameter specifies the internet hostname of this
|
||||
# mail system. The default is to use the fully-qualified domain name
|
||||
# from gethostname(). $myhostname is used as a default value for many
|
||||
# other configuration parameters.
|
||||
#
|
||||
#myhostname = host.domain.tld
|
||||
#myhostname = virtual.domain.tld
|
||||
|
||||
# The mydomain parameter specifies the local internet domain name.
|
||||
# The default is to use $myhostname minus the first component.
|
||||
# $mydomain is used as a default value for many other configuration
|
||||
# parameters.
|
||||
#
|
||||
#mydomain = domain.tld
|
||||
|
||||
# SENDING MAIL
|
||||
#
|
||||
# The myorigin parameter specifies the domain that locally-posted
|
||||
# mail appears to come from. The default is to append $myhostname,
|
||||
# which is fine for small sites. If you run a domain with multiple
|
||||
# machines, you should (1) change this to $mydomain and (2) set up
|
||||
# a domain-wide alias database that aliases each user to
|
||||
# user@that.users.mailhost.
|
||||
#
|
||||
# For the sake of consistency between sender and recipient addresses,
|
||||
# myorigin also specifies the default domain name that is appended
|
||||
# to recipient addresses that have no @domain part.
|
||||
#
|
||||
#myorigin = $myhostname
|
||||
#myorigin = $mydomain
|
||||
|
||||
# RECEIVING MAIL
|
||||
|
||||
# The inet_interfaces parameter specifies the network interface
|
||||
# addresses that this mail system receives mail on. By default,
|
||||
# the software claims all active interfaces on the machine. The
|
||||
# parameter also controls delivery of mail to user@[ip.address].
|
||||
#
|
||||
# See also the proxy_interfaces parameter, for network addresses that
|
||||
# are forwarded to us via a proxy or network address translator.
|
||||
#
|
||||
# Note: you need to stop/start Postfix when this parameter changes.
|
||||
#
|
||||
#inet_interfaces = all
|
||||
#inet_interfaces = $myhostname
|
||||
#inet_interfaces = $myhostname, localhost
|
||||
|
||||
# The proxy_interfaces parameter specifies the network interface
|
||||
# addresses that this mail system receives mail on by way of a
|
||||
# proxy or network address translation unit. This setting extends
|
||||
# the address list specified with the inet_interfaces parameter.
|
||||
#
|
||||
# You must specify your proxy/NAT addresses when your system is a
|
||||
# backup MX host for other domains, otherwise mail delivery loops
|
||||
# will happen when the primary MX host is down.
|
||||
#
|
||||
#proxy_interfaces =
|
||||
#proxy_interfaces = 1.2.3.4
|
||||
|
||||
# The mydestination parameter specifies the list of domains that this
|
||||
# machine considers itself the final destination for.
|
||||
#
|
||||
# These domains are routed to the delivery agent specified with the
|
||||
# local_transport parameter setting. By default, that is the UNIX
|
||||
# compatible delivery agent that lookups all recipients in /etc/passwd
|
||||
# and /etc/aliases or their equivalent.
|
||||
#
|
||||
# The default is $myhostname + localhost.$mydomain + localhost. On
|
||||
# a mail domain gateway, you should also include $mydomain.
|
||||
#
|
||||
# Do not specify the names of virtual domains - those domains are
|
||||
# specified elsewhere (see VIRTUAL_README).
|
||||
#
|
||||
# Do not specify the names of domains that this machine is backup MX
|
||||
# host for. Specify those names via the relay_domains settings for
|
||||
# the SMTP server, or use permit_mx_backup if you are lazy (see
|
||||
# STANDARD_CONFIGURATION_README).
|
||||
#
|
||||
# The local machine is always the final destination for mail addressed
|
||||
# to user@[the.net.work.address] of an interface that the mail system
|
||||
# receives mail on (see the inet_interfaces parameter).
|
||||
#
|
||||
# Specify a list of host or domain names, /file/name or type:table
|
||||
# patterns, separated by commas and/or whitespace. A /file/name
|
||||
# pattern is replaced by its contents; a type:table is matched when
|
||||
# a name matches a lookup key (the right-hand side is ignored).
|
||||
# Continue long lines by starting the next line with whitespace.
|
||||
#
|
||||
# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
|
||||
#
|
||||
#mydestination = $myhostname, localhost.$mydomain, localhost
|
||||
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
|
||||
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
|
||||
# mail.$mydomain, www.$mydomain, ftp.$mydomain
|
||||
|
||||
# REJECTING MAIL FOR UNKNOWN LOCAL USERS
|
||||
#
|
||||
# The local_recipient_maps parameter specifies optional lookup tables
|
||||
# with all names or addresses of users that are local with respect
|
||||
# to $mydestination, $inet_interfaces or $proxy_interfaces.
|
||||
#
|
||||
# If this parameter is defined, then the SMTP server will reject
|
||||
# mail for unknown local users. This parameter is defined by default.
|
||||
#
|
||||
# To turn off local recipient checking in the SMTP server, specify
|
||||
# local_recipient_maps = (i.e. empty).
|
||||
#
|
||||
# The default setting assumes that you use the default Postfix local
|
||||
# delivery agent for local delivery. You need to update the
|
||||
# local_recipient_maps setting if:
|
||||
#
|
||||
# - You define $mydestination domain recipients in files other than
|
||||
# /etc/passwd, /etc/aliases, or the $virtual_alias_maps files.
|
||||
# For example, you define $mydestination domain recipients in
|
||||
# the $virtual_mailbox_maps files.
|
||||
#
|
||||
# - You redefine the local delivery agent in master.cf.
|
||||
#
|
||||
# - You redefine the "local_transport" setting in main.cf.
|
||||
#
|
||||
# - You use the "luser_relay", "mailbox_transport", or "fallback_transport"
|
||||
# feature of the Postfix local delivery agent (see local(8)).
|
||||
#
|
||||
# Details are described in the LOCAL_RECIPIENT_README file.
|
||||
#
|
||||
# Beware: if the Postfix SMTP server runs chrooted, you probably have
|
||||
# to access the passwd file via the proxymap service, in order to
|
||||
# overcome chroot restrictions. The alternative, having a copy of
|
||||
# the system passwd file in the chroot jail is just not practical.
|
||||
#
|
||||
# The right-hand side of the lookup tables is conveniently ignored.
|
||||
# In the left-hand side, specify a bare username, an @domain.tld
|
||||
# wild-card, or specify a user@domain.tld address.
|
||||
#
|
||||
#local_recipient_maps = unix:passwd.byname $alias_maps
|
||||
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
|
||||
#local_recipient_maps =
|
||||
|
||||
# The unknown_local_recipient_reject_code specifies the SMTP server
|
||||
# response code when a recipient domain matches $mydestination or
|
||||
# ${proxy,inet}_interfaces, while $local_recipient_maps is non-empty
|
||||
# and the recipient address or address local-part is not found.
|
||||
#
|
||||
# The default setting is 550 (reject mail) but it is safer to start
|
||||
# with 450 (try again later) until you are certain that your
|
||||
# local_recipient_maps settings are OK.
|
||||
#
|
||||
unknown_local_recipient_reject_code = 550
|
||||
|
||||
# TRUST AND RELAY CONTROL
|
||||
|
||||
# The mynetworks parameter specifies the list of "trusted" SMTP
|
||||
# clients that have more privileges than "strangers".
|
||||
#
|
||||
# In particular, "trusted" SMTP clients are allowed to relay mail
|
||||
# through Postfix. See the smtpd_recipient_restrictions parameter
|
||||
# in postconf(5).
|
||||
#
|
||||
# You can specify the list of "trusted" network addresses by hand
|
||||
# or you can let Postfix do it for you (which is the default).
|
||||
#
|
||||
# By default (mynetworks_style = subnet), Postfix "trusts" SMTP
|
||||
# clients in the same IP subnetworks as the local machine.
|
||||
# On Linux, this works correctly only with interfaces specified
|
||||
# with the "ifconfig" command.
|
||||
#
|
||||
# Specify "mynetworks_style = class" when Postfix should "trust" SMTP
|
||||
# clients in the same IP class A/B/C networks as the local machine.
|
||||
# Don't do this with a dialup site - it would cause Postfix to "trust"
|
||||
# your entire provider's network. Instead, specify an explicit
|
||||
# mynetworks list by hand, as described below.
|
||||
#
|
||||
# Specify "mynetworks_style = host" when Postfix should "trust"
|
||||
# only the local machine.
|
||||
#
|
||||
#mynetworks_style = class
|
||||
#mynetworks_style = subnet
|
||||
mynetworks_style = host
|
||||
|
||||
# Alternatively, you can specify the mynetworks list by hand, in
|
||||
# which case Postfix ignores the mynetworks_style setting.
|
||||
#
|
||||
# Specify an explicit list of network/netmask patterns, where the
|
||||
# mask specifies the number of bits in the network part of a host
|
||||
# address.
|
||||
#
|
||||
# You can also specify the absolute pathname of a pattern file instead
|
||||
# of listing the patterns here. Specify type:table for table-based lookups
|
||||
# (the value on the table right-hand side is not used).
|
||||
#
|
||||
#mynetworks = 168.100.189.0/28, 127.0.0.0/8
|
||||
#mynetworks = $config_directory/mynetworks
|
||||
#mynetworks = hash:$config_directory/network_table
|
||||
|
||||
# The relay_domains parameter restricts what destinations this system will
|
||||
# relay mail to. See the smtpd_recipient_restrictions description in
|
||||
# postconf(5) for detailed information.
|
||||
#
|
||||
# By default, Postfix relays mail
|
||||
# - from "trusted" clients (IP address matches $mynetworks) to any destination,
|
||||
# - from "untrusted" clients to destinations that match $relay_domains or
|
||||
# subdomains thereof, except addresses with sender-specified routing.
|
||||
# The default relay_domains value is $mydestination.
|
||||
#
|
||||
# In addition to the above, the Postfix SMTP server by default accepts mail
|
||||
# that Postfix is final destination for:
|
||||
# - destinations that match $inet_interfaces or $proxy_interfaces,
|
||||
# - destinations that match $mydestination
|
||||
# - destinations that match $virtual_alias_domains,
|
||||
# - destinations that match $virtual_mailbox_domains.
|
||||
# These destinations do not need to be listed in $relay_domains.
|
||||
#
|
||||
# Specify a list of hosts or domains, /file/name patterns or type:name
|
||||
# lookup tables, separated by commas and/or whitespace. Continue
|
||||
# long lines by starting the next line with whitespace. A file name
|
||||
# is replaced by its contents; a type:name table is matched when a
|
||||
# (parent) domain appears as lookup key.
|
||||
#
|
||||
# NOTE: Postfix will not automatically forward mail for domains that
|
||||
# list this system as their primary or backup MX host. See the
|
||||
# permit_mx_backup restriction description in postconf(5).
|
||||
#
|
||||
#relay_domains = $mydestination
|
||||
|
||||
# INTERNET OR INTRANET
|
||||
|
||||
# The relayhost parameter specifies the default host to send mail to
|
||||
# when no entry is matched in the optional transport(5) table. When
|
||||
# no relayhost is given, mail is routed directly to the destination.
|
||||
#
|
||||
# On an intranet, specify the organizational domain name. If your
|
||||
# internal DNS uses no MX records, specify the name of the intranet
|
||||
# gateway host instead.
|
||||
#
|
||||
# In the case of SMTP, specify a domain, host, host:port, [host]:port,
|
||||
# [address] or [address]:port; the form [host] turns off MX lookups.
|
||||
#
|
||||
# If you're connected via UUCP, see also the default_transport parameter.
|
||||
#
|
||||
#relayhost = $mydomain
|
||||
#relayhost = [gateway.my.domain]
|
||||
#relayhost = [mailserver.isp.tld]
|
||||
#relayhost = uucphost
|
||||
#relayhost = [an.ip.add.ress]
|
||||
|
||||
# REJECTING UNKNOWN RELAY USERS
|
||||
#
|
||||
# The relay_recipient_maps parameter specifies optional lookup tables
|
||||
# with all addresses in the domains that match $relay_domains.
|
||||
#
|
||||
# If this parameter is defined, then the SMTP server will reject
|
||||
# mail for unknown relay users. This feature is off by default.
|
||||
#
|
||||
# The right-hand side of the lookup tables is conveniently ignored.
|
||||
# In the left-hand side, specify an @domain.tld wild-card, or specify
|
||||
# a user@domain.tld address.
|
||||
#
|
||||
#relay_recipient_maps = hash:$config_directory/relay_recipients
|
||||
|
||||
# INPUT RATE CONTROL
|
||||
#
|
||||
# The in_flow_delay configuration parameter implements mail input
|
||||
# flow control. This feature is turned on by default, although it
|
||||
# still needs further development (it's disabled on SCO UNIX due
|
||||
# to an SCO bug).
|
||||
#
|
||||
# A Postfix process will pause for $in_flow_delay seconds before
|
||||
# accepting a new message, when the message arrival rate exceeds the
|
||||
# message delivery rate. With the default 100 SMTP server process
|
||||
# limit, this limits the mail inflow to 100 messages a second more
|
||||
# than the number of messages delivered per second.
|
||||
#
|
||||
# Specify 0 to disable the feature. Valid delays are 0..10.
|
||||
#
|
||||
#in_flow_delay = 1s
|
||||
|
||||
# ADDRESS REWRITING
|
||||
#
|
||||
# The ADDRESS_REWRITING_README document gives information about
|
||||
# address masquerading or other forms of address rewriting including
|
||||
# username->Firstname.Lastname mapping.
|
||||
|
||||
# ADDRESS REDIRECTION (VIRTUAL DOMAIN)
|
||||
#
|
||||
# The VIRTUAL_README document gives information about the many forms
|
||||
# of domain hosting that Postfix supports.
|
||||
|
||||
# "USER HAS MOVED" BOUNCE MESSAGES
|
||||
#
|
||||
# See the discussion in the ADDRESS_REWRITING_README document.
|
||||
|
||||
# TRANSPORT MAP
|
||||
#
|
||||
# See the discussion in the ADDRESS_REWRITING_README document.
|
||||
|
||||
# ALIAS DATABASE
|
||||
#
|
||||
# The alias_maps parameter specifies the list of alias databases used
|
||||
# by the local delivery agent. The default list is system dependent.
|
||||
#
|
||||
# On systems with NIS, the default is to search the local alias
|
||||
# database, then the NIS alias database. See aliases(5) for syntax
|
||||
# details.
|
||||
#
|
||||
# If you change the alias database, run "postalias /etc/aliases" (or
|
||||
# wherever your system stores the mail alias file), or simply run
|
||||
# "newaliases" to build the necessary DBM or DB file.
|
||||
#
|
||||
# It will take a minute or so before changes become visible. Use
|
||||
# "postfix reload" to eliminate the delay.
|
||||
#
|
||||
#alias_maps = dbm:/etc/aliases
|
||||
#alias_maps = hash:/etc/aliases
|
||||
#alias_maps = hash:/etc/aliases, nis:mail.aliases
|
||||
#alias_maps = netinfo:/aliases
|
||||
|
||||
# The alias_database parameter specifies the alias database(s) that
|
||||
# are built with "newaliases" or "sendmail -bi". This is a separate
|
||||
# configuration parameter, because alias_maps (see above) may specify
|
||||
# tables that are not necessarily all under control by Postfix.
|
||||
#
|
||||
#alias_database = dbm:/etc/aliases
|
||||
#alias_database = hash:/etc/aliases
|
||||
#alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases
|
||||
|
||||
# ADDRESS EXTENSIONS (e.g., user+foo)
|
||||
#
|
||||
# The recipient_delimiter parameter specifies the separator between
|
||||
# user names and address extensions (user+foo). See canonical(5),
|
||||
# local(8), relocated(5) and virtual(5) for the effects this has on
|
||||
# aliases, canonical, virtual, relocated and .forward file lookups.
|
||||
# Basically, the software tries user+foo and .forward+foo before
|
||||
# trying user and .forward.
|
||||
#
|
||||
#recipient_delimiter = +
|
||||
|
||||
# DELIVERY TO MAILBOX
|
||||
#
|
||||
# The home_mailbox parameter specifies the optional pathname of a
|
||||
# mailbox file relative to a user's home directory. The default
|
||||
# mailbox file is /var/spool/mail/user or /var/mail/user. Specify
|
||||
# "Maildir/" for qmail-style delivery (the / is required).
|
||||
#
|
||||
#home_mailbox = Mailbox
|
||||
#home_mailbox = Maildir/
|
||||
|
||||
# The mail_spool_directory parameter specifies the directory where
|
||||
# UNIX-style mailboxes are kept. The default setting depends on the
|
||||
# system type.
|
||||
#
|
||||
#mail_spool_directory = /var/mail
|
||||
#mail_spool_directory = /var/spool/mail
|
||||
|
||||
# The mailbox_command parameter specifies the optional external
|
||||
# command to use instead of mailbox delivery. The command is run as
|
||||
# the recipient with proper HOME, SHELL and LOGNAME environment settings.
|
||||
# Exception: delivery for root is done as $default_user.
|
||||
#
|
||||
# Other environment variables of interest: USER (recipient username),
|
||||
# EXTENSION (address extension), DOMAIN (domain part of address),
|
||||
# and LOCAL (the address localpart).
|
||||
#
|
||||
# Unlike other Postfix configuration parameters, the mailbox_command
|
||||
# parameter is not subjected to $parameter substitutions. This is to
|
||||
# make it easier to specify shell syntax (see example below).
|
||||
#
|
||||
# Avoid shell meta characters because they will force Postfix to run
|
||||
# an expensive shell process. Procmail alone is expensive enough.
|
||||
#
|
||||
# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
|
||||
# ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
|
||||
#
|
||||
#mailbox_command = /some/where/procmail
|
||||
#mailbox_command = /some/where/procmail -a "$EXTENSION"
|
||||
|
||||
# The mailbox_transport specifies the optional transport in master.cf
|
||||
# to use after processing aliases and .forward files. This parameter
|
||||
# has precedence over the mailbox_command, fallback_transport and
|
||||
# luser_relay parameters.
|
||||
#
|
||||
# Specify a string of the form transport:nexthop, where transport is
|
||||
# the name of a mail delivery transport defined in master.cf. The
|
||||
# :nexthop part is optional. For more details see the sample transport
|
||||
# configuration file.
|
||||
#
|
||||
# NOTE: if you use this feature for accounts not in the UNIX password
|
||||
# file, then you must update the "local_recipient_maps" setting in
|
||||
# the main.cf file, otherwise the SMTP server will reject mail for
|
||||
# non-UNIX accounts with "User unknown in local recipient table".
|
||||
#
|
||||
# Cyrus IMAP over LMTP. Specify ``lmtpunix cmd="lmtpd"
|
||||
# listen="/var/imap/socket/lmtp" prefork=0'' in cyrus.conf.
|
||||
#mailbox_transport = lmtp:unix:/var/imap/socket/lmtp
|
||||
#
|
||||
# Cyrus IMAP via command line. Uncomment the "cyrus...pipe" and
|
||||
# subsequent line in master.cf.
|
||||
#mailbox_transport = cyrus
|
||||
|
||||
# The fallback_transport specifies the optional transport in master.cf
|
||||
# to use for recipients that are not found in the UNIX passwd database.
|
||||
# This parameter has precedence over the luser_relay parameter.
|
||||
#
|
||||
# Specify a string of the form transport:nexthop, where transport is
|
||||
# the name of a mail delivery transport defined in master.cf. The
|
||||
# :nexthop part is optional. For more details see the sample transport
|
||||
# configuration file.
|
||||
#
|
||||
# NOTE: if you use this feature for accounts not in the UNIX password
|
||||
# file, then you must update the "local_recipient_maps" setting in
|
||||
# the main.cf file, otherwise the SMTP server will reject mail for
|
||||
# non-UNIX accounts with "User unknown in local recipient table".
|
||||
#
|
||||
#fallback_transport = lmtp:unix:/file/name
|
||||
#fallback_transport = cyrus
|
||||
#fallback_transport =
|
||||
|
||||
# The luser_relay parameter specifies an optional destination address
|
||||
# for unknown recipients. By default, mail for unknown@$mydestination,
|
||||
# unknown@[$inet_interfaces] or unknown@[$proxy_interfaces] is returned
|
||||
# as undeliverable.
|
||||
#
|
||||
# The following expansions are done on luser_relay: $user (recipient
|
||||
# username), $shell (recipient shell), $home (recipient home directory),
|
||||
# $recipient (full recipient address), $extension (recipient address
|
||||
# extension), $domain (recipient domain), $local (entire recipient
|
||||
# localpart), $recipient_delimiter. Specify ${name?value} or
|
||||
# ${name:value} to expand value only when $name does (does not) exist.
|
||||
#
|
||||
# luser_relay works only for the default Postfix local delivery agent.
|
||||
#
|
||||
# NOTE: if you use this feature for accounts not in the UNIX password
|
||||
# file, then you must specify "local_recipient_maps =" (i.e. empty) in
|
||||
# the main.cf file, otherwise the SMTP server will reject mail for
|
||||
# non-UNIX accounts with "User unknown in local recipient table".
|
||||
#
|
||||
#luser_relay = $user@other.host
|
||||
#luser_relay = $local@other.host
|
||||
#luser_relay = admin+$local
|
||||
|
||||
# JUNK MAIL CONTROLS
|
||||
#
|
||||
# The controls listed here are only a very small subset. The file
|
||||
# SMTPD_ACCESS_README provides an overview.
|
||||
|
||||
# The header_checks parameter specifies an optional table with patterns
|
||||
# that each logical message header is matched against, including
|
||||
# headers that span multiple physical lines.
|
||||
#
|
||||
# By default, these patterns also apply to MIME headers and to the
|
||||
# headers of attached messages. With older Postfix versions, MIME and
|
||||
# attached message headers were treated as body text.
|
||||
#
|
||||
# For details, see "man header_checks".
|
||||
#
|
||||
#header_checks = regexp:$config_directory/header_checks
|
||||
|
||||
# FAST ETRN SERVICE
|
||||
#
|
||||
# Postfix maintains per-destination logfiles with information about
|
||||
# deferred mail, so that mail can be flushed quickly with the SMTP
|
||||
# "ETRN domain.tld" command, or by executing "sendmail -qRdomain.tld".
|
||||
# See the ETRN_README document for a detailed description.
|
||||
#
|
||||
# The fast_flush_domains parameter controls what destinations are
|
||||
# eligible for this service. By default, they are all domains that
|
||||
# this server is willing to relay mail to.
|
||||
#
|
||||
#fast_flush_domains = $relay_domains
|
||||
|
||||
# SHOW SOFTWARE VERSION OR NOT
|
||||
#
|
||||
# The smtpd_banner parameter specifies the text that follows the 220
|
||||
# code in the SMTP server's greeting banner. Some people like to see
|
||||
# the mail version advertised. By default, Postfix shows no version.
|
||||
#
|
||||
# You MUST specify $myhostname at the start of the text. That is an
|
||||
# RFC requirement. Postfix itself does not care.
|
||||
#
|
||||
#smtpd_banner = $myhostname ESMTP $mail_name
|
||||
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
|
||||
|
||||
# PARALLEL DELIVERY TO THE SAME DESTINATION
|
||||
#
|
||||
# How many parallel deliveries to the same user or domain? With local
|
||||
# delivery, it does not make sense to do massively parallel delivery
|
||||
# to the same user, because mailbox updates must happen sequentially,
|
||||
# and expensive pipelines in .forward files can cause disasters when
|
||||
# too many are run at the same time. With SMTP deliveries, 10
|
||||
# simultaneous connections to the same domain could be sufficient to
|
||||
# raise eyebrows.
|
||||
#
|
||||
# Each message delivery transport has its XXX_destination_concurrency_limit
|
||||
# parameter. The default is $default_destination_concurrency_limit for
|
||||
# most delivery transports. For the local delivery agent the default is 2.
|
||||
|
||||
#local_destination_concurrency_limit = 2
|
||||
#default_destination_concurrency_limit = 20
|
||||
|
||||
# DEBUGGING CONTROL
|
||||
#
|
||||
# The debug_peer_level parameter specifies the increment in verbose
|
||||
# logging level when an SMTP client or server host name or address
|
||||
# matches a pattern in the debug_peer_list parameter.
|
||||
#
|
||||
debug_peer_level = 2
|
||||
|
||||
# The debug_peer_list parameter specifies an optional list of domain
|
||||
# or network patterns, /file/name patterns or type:name tables. When
|
||||
# an SMTP client or server host name or address matches a pattern,
|
||||
# increase the verbose logging level by the amount specified in the
|
||||
# debug_peer_level parameter.
|
||||
#
|
||||
#debug_peer_list = 127.0.0.1
|
||||
#debug_peer_list = some.domain
|
||||
|
||||
# The debugger_command specifies the external command that is executed
|
||||
# when a Postfix daemon program is run with the -D option.
|
||||
#
|
||||
# Use "command .. & sleep 5" so that the debugger can attach before
|
||||
# the process marches on. If you use an X-based debugger, be sure to
|
||||
# set up your XAUTHORITY environment variable before starting Postfix.
|
||||
#
|
||||
debugger_command =
|
||||
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
|
||||
ddd $daemon_directory/$process_name $process_id & sleep 5
|
||||
|
||||
# If you can't use X, use this to capture the call stack when a
|
||||
# daemon crashes. The result is in a file in the configuration
|
||||
# directory, and is named after the process name and the process ID.
|
||||
#
|
||||
# debugger_command =
|
||||
# PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
|
||||
# echo where) | gdb $daemon_directory/$process_name $process_id 2>&1
|
||||
# >$config_directory/$process_name.$process_id.log & sleep 5
|
||||
#
|
||||
# Another possibility is to run gdb under a detached screen session.
|
||||
# To attach to the screen session, su root and run "screen -r
|
||||
# <id_string>" where <id_string> uniquely matches one of the detached
|
||||
# sessions (from "screen -list").
|
||||
#
|
||||
# debugger_command =
|
||||
# PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH; screen
|
||||
# -dmS $process_name gdb $daemon_directory/$process_name
|
||||
# $process_id & sleep 1
|
||||
|
||||
# INSTALL-TIME CONFIGURATION INFORMATION
|
||||
#
|
||||
# The following parameters are used when installing a new Postfix version.
|
||||
#
|
||||
# sendmail_path: The full pathname of the Postfix sendmail command.
|
||||
# This is the Sendmail-compatible mail posting interface.
|
||||
#
|
||||
sendmail_path = /usr/local/sbin/sendmail
|
||||
|
||||
# newaliases_path: The full pathname of the Postfix newaliases command.
|
||||
# This is the Sendmail-compatible command to build alias databases.
|
||||
#
|
||||
newaliases_path = /usr/local/bin/newaliases
|
||||
|
||||
# mailq_path: The full pathname of the Postfix mailq command. This
|
||||
# is the Sendmail-compatible mail queue listing command.
|
||||
#
|
||||
mailq_path = /usr/local/bin/mailq
|
||||
|
||||
# setgid_group: The group for mail submission and queue management
|
||||
# commands. This must be a group name with a numerical group ID that
|
||||
# is not shared with other accounts, not even with the Postfix account.
|
||||
#
|
||||
setgid_group = maildrop
|
||||
|
||||
# html_directory: The location of the Postfix HTML documentation.
|
||||
#
|
||||
html_directory = /usr/local/share/doc/postfix
|
||||
|
||||
# manpage_directory: The location of the Postfix on-line manual pages.
|
||||
#
|
||||
manpage_directory = /usr/local/man
|
||||
|
||||
# sample_directory: The location of the Postfix sample configuration files.
|
||||
# This parameter is obsolete as of Postfix 2.1.
|
||||
#
|
||||
sample_directory = /usr/local/etc/postfix
|
||||
|
||||
# readme_directory: The location of the Postfix README files.
|
||||
#
|
||||
readme_directory = /usr/local/share/doc/postfix
|
||||
inet_protocols = ipv4
|
||||
meta_directory = /usr/local/libexec/postfix
|
||||
shlib_directory = /usr/local/lib/postfix
|
135
jails/config/mail/postfix/master.cf
Normal file
135
jails/config/mail/postfix/master.cf
Normal file
@ -0,0 +1,135 @@
|
||||
#
|
||||
# Postfix master process configuration file. For details on the format
|
||||
# of the file, see the master(5) manual page (command: "man 5 master" or
|
||||
# on-line: http://www.postfix.org/master.5.html).
|
||||
#
|
||||
# Do not forget to execute "postfix reload" after editing this file.
|
||||
#
|
||||
# ==========================================================================
|
||||
# service type private unpriv chroot wakeup maxproc command + args
|
||||
# (yes) (yes) (no) (never) (100)
|
||||
# ==========================================================================
|
||||
smtp inet n - n - - smtpd
|
||||
-o smtpd_sasl_auth_enable=no
|
||||
#smtp inet n - n - 1 postscreen
|
||||
#smtpd pass - - n - - smtpd
|
||||
#dnsblog unix - - n - 0 dnsblog
|
||||
#tlsproxy unix - - n - 0 tlsproxy
|
||||
submission inet n - n - - smtpd
|
||||
# -o syslog_name=postfix/submission
|
||||
-o smtpd_tls_security_level=encrypt
|
||||
-o tls_preempt_cipherlist=yes
|
||||
# -o smtpd_sasl_auth_enable=yes
|
||||
# -o smtpd_tls_auth_only=yes
|
||||
# -o smtpd_reject_unlisted_recipient=no
|
||||
# -o smtpd_client_restrictions=$mua_client_restrictions
|
||||
# -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 - n - - 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=$mua_client_restrictions
|
||||
# -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
|
||||
#628 inet n - n - - qmqpd
|
||||
pickup unix n - n 60 1 pickup
|
||||
cleanup unix n - n - 0 cleanup
|
||||
qmgr unix n - n 300 1 qmgr
|
||||
#qmgr unix n - n 300 1 oqmgr
|
||||
tlsmgr unix - - n 1000? 1 tlsmgr
|
||||
rewrite unix - - n - - trivial-rewrite
|
||||
bounce unix - - n - 0 bounce
|
||||
defer unix - - n - 0 bounce
|
||||
trace unix - - n - 0 bounce
|
||||
verify unix - - n - 1 verify
|
||||
flush unix n - n 1000? 0 flush
|
||||
proxymap unix - - n - - proxymap
|
||||
proxywrite unix - - n - 1 proxymap
|
||||
smtp unix - - n - - smtp
|
||||
relay unix - - n - - smtp
|
||||
-o syslog_name=postfix/$service_name
|
||||
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
|
||||
showq unix n - n - - showq
|
||||
error unix - - n - - error
|
||||
retry unix - - n - - error
|
||||
discard unix - - n - - discard
|
||||
local unix - n n - - local
|
||||
virtual unix - n n - - virtual
|
||||
lmtp unix - - n - - lmtp
|
||||
anvil unix - - n - 1 anvil
|
||||
scache unix - - n - 1 scache
|
||||
postlog unix-dgram n - n - 1 postlogd
|
||||
#
|
||||
# ====================================================================
|
||||
# Interfaces to non-Postfix software. Be sure to examine the manual
|
||||
# pages of the non-Postfix software to find out what options it wants.
|
||||
#
|
||||
# Many of the following services use the Postfix pipe(8) delivery
|
||||
# agent. See the pipe(8) man page for information about ${recipient}
|
||||
# and other message envelope options.
|
||||
# ====================================================================
|
||||
#
|
||||
# maildrop. See the Postfix MAILDROP_README file for details.
|
||||
# Also specify in main.cf: maildrop_destination_recipient_limit=1
|
||||
#
|
||||
#maildrop unix - n n - - pipe
|
||||
# flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
|
||||
#
|
||||
# Specify in cyrus.conf:
|
||||
# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
|
||||
#
|
||||
# Specify in main.cf one or more of the following:
|
||||
# mailbox_transport = lmtp:inet:localhost
|
||||
# virtual_transport = lmtp:inet:localhost
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
# Cyrus 2.1.5 (Amos Gouaux)
|
||||
# Also specify in main.cf: cyrus_destination_recipient_limit=1
|
||||
#
|
||||
#cyrus unix - n n - - pipe
|
||||
# user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
# Old example of delivery via Cyrus.
|
||||
#
|
||||
#old-cyrus unix - n n - - pipe
|
||||
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
# See the Postfix UUCP_README file for configuration details.
|
||||
#
|
||||
#uucp unix - n n - - pipe
|
||||
# flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
# Other external delivery methods.
|
||||
#
|
||||
#ifmail unix - n n - - pipe
|
||||
# flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
|
||||
#
|
||||
#bsmtp unix - n n - - pipe
|
||||
# flags=Fq. user=bsmtp argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
|
||||
#
|
||||
#scalemail-backend unix - n n - 2 pipe
|
||||
# flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store
|
||||
# ${nexthop} ${user} ${extension}
|
||||
#
|
||||
#mailman unix - n n - - pipe
|
||||
# flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
|
||||
# ${nexthop} ${user}
|
133
jails/config/mail/postfix/master.cf.sample
Normal file
133
jails/config/mail/postfix/master.cf.sample
Normal file
@ -0,0 +1,133 @@
|
||||
#
|
||||
# Postfix master process configuration file. For details on the format
|
||||
# of the file, see the master(5) manual page (command: "man 5 master" or
|
||||
# on-line: http://www.postfix.org/master.5.html).
|
||||
#
|
||||
# Do not forget to execute "postfix reload" after editing this file.
|
||||
#
|
||||
# ==========================================================================
|
||||
# service type private unpriv chroot wakeup maxproc command + args
|
||||
# (yes) (yes) (no) (never) (100)
|
||||
# ==========================================================================
|
||||
smtp inet n - n - - smtpd
|
||||
#smtp inet n - n - 1 postscreen
|
||||
#smtpd pass - - n - - smtpd
|
||||
#dnsblog unix - - n - 0 dnsblog
|
||||
#tlsproxy unix - - n - 0 tlsproxy
|
||||
#submission inet n - n - - smtpd
|
||||
# -o syslog_name=postfix/submission
|
||||
# -o smtpd_tls_security_level=encrypt
|
||||
# -o smtpd_sasl_auth_enable=yes
|
||||
# -o smtpd_tls_auth_only=yes
|
||||
# -o smtpd_reject_unlisted_recipient=no
|
||||
# -o smtpd_client_restrictions=$mua_client_restrictions
|
||||
# -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 - n - - 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=$mua_client_restrictions
|
||||
# -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
|
||||
#628 inet n - n - - qmqpd
|
||||
pickup unix n - n 60 1 pickup
|
||||
cleanup unix n - n - 0 cleanup
|
||||
qmgr unix n - n 300 1 qmgr
|
||||
#qmgr unix n - n 300 1 oqmgr
|
||||
tlsmgr unix - - n 1000? 1 tlsmgr
|
||||
rewrite unix - - n - - trivial-rewrite
|
||||
bounce unix - - n - 0 bounce
|
||||
defer unix - - n - 0 bounce
|
||||
trace unix - - n - 0 bounce
|
||||
verify unix - - n - 1 verify
|
||||
flush unix n - n 1000? 0 flush
|
||||
proxymap unix - - n - - proxymap
|
||||
proxywrite unix - - n - 1 proxymap
|
||||
smtp unix - - n - - smtp
|
||||
relay unix - - n - - smtp
|
||||
-o syslog_name=postfix/$service_name
|
||||
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
|
||||
showq unix n - n - - showq
|
||||
error unix - - n - - error
|
||||
retry unix - - n - - error
|
||||
discard unix - - n - - discard
|
||||
local unix - n n - - local
|
||||
virtual unix - n n - - virtual
|
||||
lmtp unix - - n - - lmtp
|
||||
anvil unix - - n - 1 anvil
|
||||
scache unix - - n - 1 scache
|
||||
postlog unix-dgram n - n - 1 postlogd
|
||||
#
|
||||
# ====================================================================
|
||||
# Interfaces to non-Postfix software. Be sure to examine the manual
|
||||
# pages of the non-Postfix software to find out what options it wants.
|
||||
#
|
||||
# Many of the following services use the Postfix pipe(8) delivery
|
||||
# agent. See the pipe(8) man page for information about ${recipient}
|
||||
# and other message envelope options.
|
||||
# ====================================================================
|
||||
#
|
||||
# maildrop. See the Postfix MAILDROP_README file for details.
|
||||
# Also specify in main.cf: maildrop_destination_recipient_limit=1
|
||||
#
|
||||
#maildrop unix - n n - - pipe
|
||||
# flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
|
||||
#
|
||||
# Specify in cyrus.conf:
|
||||
# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
|
||||
#
|
||||
# Specify in main.cf one or more of the following:
|
||||
# mailbox_transport = lmtp:inet:localhost
|
||||
# virtual_transport = lmtp:inet:localhost
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
# Cyrus 2.1.5 (Amos Gouaux)
|
||||
# Also specify in main.cf: cyrus_destination_recipient_limit=1
|
||||
#
|
||||
#cyrus unix - n n - - pipe
|
||||
# user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
# Old example of delivery via Cyrus.
|
||||
#
|
||||
#old-cyrus unix - n n - - pipe
|
||||
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
# See the Postfix UUCP_README file for configuration details.
|
||||
#
|
||||
#uucp unix - n n - - pipe
|
||||
# flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
|
||||
#
|
||||
# ====================================================================
|
||||
#
|
||||
# Other external delivery methods.
|
||||
#
|
||||
#ifmail unix - n n - - pipe
|
||||
# flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
|
||||
#
|
||||
#bsmtp unix - n n - - pipe
|
||||
# flags=Fq. user=bsmtp argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
|
||||
#
|
||||
#scalemail-backend unix - n n - 2 pipe
|
||||
# flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store
|
||||
# ${nexthop} ${user} ${extension}
|
||||
#
|
||||
#mailman unix - n n - - pipe
|
||||
# flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
|
||||
# ${nexthop} ${user}
|
10
jails/config/mail/postfix/reinit.sac
Executable file
10
jails/config/mail/postfix/reinit.sac
Executable file
@ -0,0 +1,10 @@
|
||||
# update aliases.db
|
||||
newaliases
|
||||
|
||||
#rm /usr/local/etc/postfix/system-virtual-mailboxes.db
|
||||
#postmap /usr/local/etc/postfix/system-virtual-mailboxes
|
||||
|
||||
rm /usr/local/etc/postfix/virtual-maillist-alias-maps.db
|
||||
postmap /usr/local/etc/postfix/virtual-maillist-alias-maps
|
||||
|
||||
service postfix reload
|
3
jails/config/mail/postfix/virtual-maillist-alias-maps
Normal file
3
jails/config/mail/postfix/virtual-maillist-alias-maps
Normal file
@ -0,0 +1,3 @@
|
||||
family@ahlawat.com sharad@ahlawat.com
|
||||
# Uncomment entry below to implement a catch-all address
|
||||
#@ahlawat.com ahlawat@ahlawat.com
|
BIN
jails/config/mail/postfix/virtual-maillist-alias-maps.db
Normal file
BIN
jails/config/mail/postfix/virtual-maillist-alias-maps.db
Normal file
Binary file not shown.
1318
jails/config/mail/redis.conf
Normal file
1318
jails/config/mail/redis.conf
Normal file
File diff suppressed because it is too large
Load Diff
29
jails/config/mail/rspamd/actions.conf
Normal file
29
jails/config/mail/rspamd/actions.conf
Normal file
@ -0,0 +1,29 @@
|
||||
# Actions settings
|
||||
# Please don't modify this file as your changes might be overwritten with
|
||||
# the next update.
|
||||
#
|
||||
# You can modify 'local.d/actions.conf' to add and merge
|
||||
# parameters defined inside this section
|
||||
#
|
||||
# You can modify 'override.d/actions.conf' to strictly override all
|
||||
# parameters defined inside this section
|
||||
#
|
||||
# See https://rspamd.com/doc/faq.html#what-are-the-locald-and-overrided-directories
|
||||
# for details
|
||||
#
|
||||
# See also https://rspamd.com/doc/faq.html#what-are-rspamd-actions for actions definition
|
||||
|
||||
actions {
|
||||
reject = 15; # Reject when reaching this score
|
||||
add_header = 6; # Add header when reaching this score
|
||||
greylist = 4; # Apply greylisting when reaching this score (will emit `soft reject action`)
|
||||
|
||||
#unknown_weight = 1.0; # Enable if need to set score for all symbols implicitly
|
||||
# Each new symbol is added multiplied by gf^N, where N is the number of spammy symbols
|
||||
#grow_factor = 1.1;
|
||||
# Set rewrite subject to this value (%s is replaced by the original subject)
|
||||
#subject = "***SPAM*** %s"
|
||||
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/actions.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/actions.conf"
|
||||
}
|
17
jails/config/mail/rspamd/cgp.inc
Normal file
17
jails/config/mail/rspamd/cgp.inc
Normal file
@ -0,0 +1,17 @@
|
||||
# Please don't modify this file as your changes might be overwritten with
|
||||
# the next update.
|
||||
#
|
||||
# This file defines some specific settings that are applicable merely when using
|
||||
# CommuniGate Pro MTA and it's specific integration
|
||||
|
||||
arc {
|
||||
sign_networks = [127.2.4.7];
|
||||
}
|
||||
|
||||
dkim_signing {
|
||||
sign_networks = [127.2.4.7];
|
||||
}
|
||||
|
||||
options {
|
||||
local_addrs = [127.2.4.7];
|
||||
}
|
40
jails/config/mail/rspamd/common.conf
Normal file
40
jails/config/mail/rspamd/common.conf
Normal file
@ -0,0 +1,40 @@
|
||||
# A common rspamd configuration file (should never ever be changed)
|
||||
# Please don't modify this file as your changes might be overwritten with
|
||||
# the next update.
|
||||
#
|
||||
# You can modify '$LOCAL_CONFDIR/rspamd.conf.local.override' to redefine
|
||||
# parameters defined on the top level
|
||||
#
|
||||
# You can modify '$LOCAL_CONFDIR/rspamd.conf.local' to add
|
||||
# parameters defined on the top level
|
||||
#
|
||||
# For specific modules or configuration you can also modify
|
||||
# '$LOCAL_CONFDIR/local.d/file.conf' - to add your options or rewrite defaults
|
||||
# '$LOCAL_CONFDIR/override.d/file.conf' - to override the defaults
|
||||
#
|
||||
# See https://rspamd.com/doc/tutorials/writing_rules.html for details
|
||||
|
||||
lua = "$RULESDIR/rspamd.lua"
|
||||
|
||||
.include "$CONFDIR/metrics.conf"
|
||||
.include "$CONFDIR/actions.conf"
|
||||
.include "$CONFDIR/groups.conf"
|
||||
.include "$CONFDIR/composites.conf"
|
||||
|
||||
.include "$CONFDIR/statistic.conf"
|
||||
|
||||
.include "$CONFDIR/modules.conf"
|
||||
|
||||
# Include users settings
|
||||
.include "$CONFDIR/settings.conf"
|
||||
|
||||
# User local settings
|
||||
.include(try=true) "$LOCAL_CONFDIR/rspamd.conf.local"
|
||||
.include(try=true,priority=10) "$LOCAL_CONFDIR/rspamd.conf.local.override"
|
||||
.include(try=true,priority=10) "$LOCAL_CONFDIR/rspamd.conf.override"
|
||||
|
||||
modules {
|
||||
path = "${PLUGINSDIR}";
|
||||
fallback_path = "${SHAREDIR}/lua"; # Legacy path
|
||||
try_path = "${LOCAL_CONFDIR}/plugins.d/"; # User plugins
|
||||
}
|
160
jails/config/mail/rspamd/composites.conf
Normal file
160
jails/config/mail/rspamd/composites.conf
Normal file
@ -0,0 +1,160 @@
|
||||
# Composites setup
|
||||
# Please don't modify this file as your changes might be overwritten with
|
||||
# the next update.
|
||||
#
|
||||
# You can modify 'local.d/composites.conf' to add and merge
|
||||
# parameters defined inside this section
|
||||
#
|
||||
# You can modify 'override.d/composites.conf' to strictly override all
|
||||
# parameters defined inside this section
|
||||
#
|
||||
# See https://rspamd.com/doc/faq.html#what-are-the-locald-and-overrided-directories
|
||||
# for details
|
||||
#
|
||||
# See https://rspamd.com/doc/tutorials/writing_rules.html and
|
||||
# https://rspamd.com/doc/configuration/composites.html for details
|
||||
|
||||
composites {
|
||||
|
||||
FORGED_RECIPIENTS_MAILLIST {
|
||||
expression = "FORGED_RECIPIENTS & -MAILLIST";
|
||||
}
|
||||
FORGED_SENDER_MAILLIST {
|
||||
expression = "FORGED_SENDER & -MAILLIST";
|
||||
}
|
||||
FORGED_SENDER_FORWARDING {
|
||||
expression = "FORGED_SENDER & g:forwarding";
|
||||
description = "Forged sender, but message is forwarded";
|
||||
policy = "remove_weight";
|
||||
}
|
||||
SPF_FAIL_FORWARDING {
|
||||
expression = "g:forwarding & (R_SPF_SOFTFAIL | R_SPF_FAIL)";
|
||||
policy = "remove_weight";
|
||||
}
|
||||
DMARC_POLICY_ALLOW_WITH_FAILURES {
|
||||
expression = "DMARC_POLICY_ALLOW & (R_SPF_SOFTFAIL | R_SPF_FAIL | R_DKIM_REJECT)";
|
||||
policy = "remove_weight";
|
||||
}
|
||||
FORGED_RECIPIENTS_FORWARDING {
|
||||
expression = "FORGED_RECIPIENTS & g:forwarding";
|
||||
policy = "remove_weight";
|
||||
}
|
||||
FORGED_SENDER_VERP_SRS {
|
||||
expression = "FORGED_SENDER & (ENVFROM_PRVS | ENVFROM_VERP)";
|
||||
}
|
||||
FORGED_MUA_MAILLIST {
|
||||
expression = "g:mua & -MAILLIST";
|
||||
}
|
||||
RBL_SPAMHAUS_XBL_ANY {
|
||||
expression = "RBL_SPAMHAUS_XBL & RECEIVED_SPAMHAUS_XBL";
|
||||
description = "From and Received address are listed in Spamhaus XBL";
|
||||
}
|
||||
AUTH_NA {
|
||||
expression = "R_DKIM_NA & R_SPF_NA & DMARC_NA & ARC_NA";
|
||||
score = 1.0;
|
||||
policy = "remove_weight";
|
||||
description = "Authenticating message via SPF/DKIM/DMARC/ARC not possible";
|
||||
}
|
||||
DKIM_MIXED {
|
||||
expression = "-R_DKIM_ALLOW & (R_DKIM_DNSFAIL | R_DKIM_PERMFAIL | R_DKIM_REJECT)"
|
||||
policy = "remove_weight";
|
||||
}
|
||||
MAIL_RU_MAILER_BASE64 {
|
||||
expression = "MAIL_RU_MAILER & (FROM_EXCESS_BASE64 | MIME_BASE64_TEXT | REPLYTO_EXCESS_BASE64 | SUBJ_EXCESS_BASE64 | TO_EXCESS_BASE64)";
|
||||
}
|
||||
YANDEX_RU_MAILER_CTYPE_MIXED_BOGUS {
|
||||
expression = "YANDEX_RU_MAILER & -HAS_ATTACHMENT & CTYPE_MIXED_BOGUS";
|
||||
}
|
||||
MAILER_1C_8_BASE64 {
|
||||
expression = "MAILER_1C_8 & (FROM_EXCESS_BASE64 | MIME_BASE64_TEXT | SUBJ_EXCESS_BASE64 | TO_EXCESS_BASE64)";
|
||||
description = "Message was sent by '1C:Enterprise 8' and uses base64 encoded data";
|
||||
}
|
||||
HACKED_WP_PHISHING {
|
||||
expression = "(HAS_X_POS | HAS_PHPMAILER_SIG) & HAS_WP_URI & (PHISHING | DBL_PHISH | PHISHED_OPENPHISH | PHISHED_PHISHTANK)";
|
||||
description = "Phish message sent by hacked Wordpress instance";
|
||||
policy = "leave";
|
||||
}
|
||||
COMPROMISED_ACCT_BULK {
|
||||
expression = "(HAS_XOIP | RCVD_FROM_SMTP_AUTH) & DCC_BULK";
|
||||
description = "Likely to be from a compromised account";
|
||||
score = 3.0;
|
||||
policy = "leave";
|
||||
}
|
||||
UNDISC_RCPTS_BULK {
|
||||
expression = "DCC_BULK & (MISSING_TO | R_UNDISC_RCPT)";
|
||||
description = "Missing or undisclosed recipients with a bulk signature";
|
||||
score = 3.0;
|
||||
policy = "leave";
|
||||
}
|
||||
RCVD_UNAUTH_PBL {
|
||||
expression = "RECEIVED_PBL & !RCVD_VIA_SMTP_AUTH";
|
||||
description = "Relayed through ZEN PBL IP without sufficient authentication (possible indicating an open relay)";
|
||||
score = 2.0;
|
||||
policy = "leave";
|
||||
}
|
||||
RCVD_DKIM_ARC_DNSWL_MED {
|
||||
expression = "(R_DKIM_ALLOW | ARC_ALLOW) & RCVD_IN_DNSWL_MED";
|
||||
description = "Sufficiently DKIM/ARC signed and received from IP with medium trust at DNSWL";
|
||||
score = -0.5;
|
||||
policy = "leave";
|
||||
}
|
||||
RCVD_DKIM_ARC_DNSWL_HI {
|
||||
expression = "(R_DKIM_ALLOW | ARC_ALLOW) & RCVD_IN_DNSWL_HI";
|
||||
description = "Sufficiently DKIM/ARC signed and received from IP with high trust at DNSWL";
|
||||
score = -1.0;
|
||||
policy = "leave";
|
||||
}
|
||||
AUTOGEN_PHP_SPAMMY {
|
||||
expression = "(HAS_X_POS | HAS_PHPMAILER_SIG | HAS_X_PHP_SCRIPT) & (SUBJECT_ENDS_QUESTION | SUBJECT_ENDS_EXCLAIM | MANY_INVISIBLE_PARTS)";
|
||||
description = "Message was generated by PHP script and contains some spam indicators";
|
||||
score = 1.0;
|
||||
policy = "leave";
|
||||
}
|
||||
PHISH_EMOTION {
|
||||
expression = "(PHISHING | DBL_PHISH | PHISHED_OPENPHISH | PHISHED_PHISHTANK) & (SUBJECT_ENDS_QUESTION | SUBJECT_ENDS_EXCLAIM)";
|
||||
description = "Phish message with subject trying to address users emotion";
|
||||
score = 1.0;
|
||||
policy = "leave";
|
||||
}
|
||||
HAS_ANON_DOMAIN {
|
||||
expression = "HAS_GUC_PROXY_URI | URIBL_RED | DBL_ABUSE_REDIR | HAS_ONION_URI";
|
||||
description = "Contains one or more domains trying to disguise owner/destination";
|
||||
score = 0.1;
|
||||
policy = "leave";
|
||||
}
|
||||
BAD_REP_POLICIES {
|
||||
description = "Contains valid policies but are also marked by fuzzy/bayes/surbl/rbl";
|
||||
expression = "(~g-:policies) & (-g+:fuzzy | -g+:bayes | -g+:surbl | -g+:rbl)";
|
||||
score = 0.1;
|
||||
}
|
||||
|
||||
VIOLATED_DIRECT_SPF {
|
||||
description = "Has no Received (or no trusted received relays) and SPF policy fails or soft fails";
|
||||
expression = "(R_SPF_FAIL | R_SPF_SOFTFAIL) & (RCVD_COUNT_ZERO | RCVD_NO_TLS_LAST)";
|
||||
policy = "leave";
|
||||
score = 3.5;
|
||||
}
|
||||
|
||||
IP_SCORE_FREEMAIL {
|
||||
description = "Negate IP_SCORE when message comes from FreeMail";
|
||||
expression = "FREEMAIL_FROM & SENDER_REP_SPAM";
|
||||
score = 0.0;
|
||||
policy = "remove_weight";
|
||||
}
|
||||
BROKEN_HEADERS_MAILLIST {
|
||||
description = "Negate BROKEN_HEADERS when message comes via some mailing list";
|
||||
expression = "BROKEN_HEADERS & -MAILLIST";
|
||||
score = 0.0;
|
||||
policy = "remove_weight";
|
||||
}
|
||||
LEAKED_PASSWORD_SCAM {
|
||||
description = "Contains BTC wallet address and scam patterns";
|
||||
expression = "BITCOIN_ADDR & (LEAKED_PASSWORD_SCAM_RE | R_MIXED_CHARSET | R_EMPTY_IMAGE)";
|
||||
policy = "leave";
|
||||
score = 7.0;
|
||||
group = "scams";
|
||||
}
|
||||
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/composites.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/composites.conf"
|
||||
}
|
120
jails/config/mail/rspamd/groups.conf
Normal file
120
jails/config/mail/rspamd/groups.conf
Normal file
@ -0,0 +1,120 @@
|
||||
# Symbols groups setup
|
||||
# Each individual group lives in scores.d/<GROUPNAME>
|
||||
#
|
||||
# Please don't modify this file as your changes might be overwritten with
|
||||
# the next update.
|
||||
#
|
||||
# You can modify 'local.d/groups.conf' to add and merge
|
||||
# parameters defined inside this section
|
||||
#
|
||||
# You can modify 'override.d/groups.conf' to strictly override all
|
||||
# parameters defined inside this section
|
||||
#
|
||||
# See https://rspamd.com/doc/faq.html#what-are-the-locald-and-overrided-directories
|
||||
# for details
|
||||
#
|
||||
# See also: https://rspamd.com/doc/faq.html#how-to-change-score-for-some-symbol
|
||||
|
||||
group "headers" {
|
||||
.include "$CONFDIR/scores.d/headers_group.conf"
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/headers_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/headers_group.conf"
|
||||
}
|
||||
|
||||
group "subject" {
|
||||
.include "$CONFDIR/scores.d/subject_group.conf"
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/subject_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/subject_group.conf"
|
||||
}
|
||||
|
||||
group "mua" {
|
||||
.include "$CONFDIR/scores.d/mua_group.conf"
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/mua_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/mua_group.conf"
|
||||
}
|
||||
|
||||
group "rbl" {
|
||||
.include "$CONFDIR/scores.d/rbl_group.conf"
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/rbl_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/rbl_group.conf"
|
||||
}
|
||||
|
||||
group "statistics" {
|
||||
.include "$CONFDIR/scores.d/statistics_group.conf"
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/statistics_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/statistics_group.conf"
|
||||
}
|
||||
|
||||
group "fuzzy" {
|
||||
.include "$CONFDIR/scores.d/fuzzy_group.conf"
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/fuzzy_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/fuzzy_group.conf"
|
||||
}
|
||||
|
||||
# SPF + DKIM + DMARC + ARC
|
||||
group "policies" {
|
||||
.include "$CONFDIR/scores.d/policies_group.conf"
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/policies_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/policies_group.conf"
|
||||
}
|
||||
|
||||
group "whitelist" {
|
||||
.include "$CONFDIR/scores.d/whitelist_group.conf"
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/whitelist_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/whitelist_group.conf"
|
||||
}
|
||||
|
||||
group "surbl" {
|
||||
.include "$CONFDIR/scores.d/surbl_group.conf"
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/surbl_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/surbl_group.conf"
|
||||
}
|
||||
|
||||
group "phishing" {
|
||||
.include "$CONFDIR/scores.d/phishing_group.conf"
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/phishing_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/phishing_group.conf"
|
||||
}
|
||||
|
||||
group "hfilter" {
|
||||
.include "$CONFDIR/scores.d/hfilter_group.conf"
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/hfilter_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/hfilter_group.conf"
|
||||
}
|
||||
|
||||
group "mime_types" {
|
||||
.include "$CONFDIR/scores.d/mime_types_group.conf"
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/mime_types_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/mime_types_group.conf"
|
||||
}
|
||||
|
||||
# Used to limit maximium score
|
||||
group "excessqp" {
|
||||
max_score = 2.4;
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/excessqp_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/excessqp_group.conf"
|
||||
}
|
||||
group "excessb64" {
|
||||
max_score = 3.0;
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/excessb64_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/excessb64_group.conf"
|
||||
}
|
||||
|
||||
# Not defined by default
|
||||
group "neural" {
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/neural_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/neural_group.conf"
|
||||
}
|
||||
|
||||
group "antivirus" {
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/antivirus_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/antivirus_group.conf"
|
||||
}
|
||||
|
||||
group "external_services" {
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/external_services_group.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/external_services_group.conf"
|
||||
}
|
||||
|
||||
.include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/groups.conf"
|
||||
.include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/groups.conf"
|
2
jails/config/mail/rspamd/local.d/classifier-bayes.conf
Normal file
2
jails/config/mail/rspamd/local.d/classifier-bayes.conf
Normal file
@ -0,0 +1,2 @@
|
||||
autolearn = true;
|
||||
backend = "redis";
|
3
jails/config/mail/rspamd/local.d/dcc.conf
Normal file
3
jails/config/mail/rspamd/local.d/dcc.conf
Normal file
@ -0,0 +1,3 @@
|
||||
# path to dcc socket
|
||||
host = "/usr/local/dcc/dccifd";
|
||||
timeout = 5.0;
|
3
jails/config/mail/rspamd/local.d/dkim_signing.conf
Normal file
3
jails/config/mail/rspamd/local.d/dkim_signing.conf
Normal file
@ -0,0 +1,3 @@
|
||||
# enable dkim signing - we will set this up in the DKIM section later
|
||||
path = "/var/db/rspamd/dkim/$domain.$selector.key";
|
||||
selector = "dkim";
|
2
jails/config/mail/rspamd/local.d/mx_check.conf
Normal file
2
jails/config/mail/rspamd/local.d/mx_check.conf
Normal file
@ -0,0 +1,2 @@
|
||||
# checks if sender's domain has at least one connectable MX record
|
||||
enabled = true;
|
3
jails/config/mail/rspamd/local.d/phishing.conf
Normal file
3
jails/config/mail/rspamd/local.d/phishing.conf
Normal file
@ -0,0 +1,3 @@
|
||||
# check messages against some anti-phishing databases
|
||||
openphish_enabled = true;
|
||||
phishtank_enabled = true;
|
2
jails/config/mail/rspamd/local.d/redis.conf
Normal file
2
jails/config/mail/rspamd/local.d/redis.conf
Normal file
@ -0,0 +1,2 @@
|
||||
# just specifying a server enables redis for all modules that can use it
|
||||
servers = "127.0.0.1";
|
2
jails/config/mail/rspamd/local.d/replies.conf
Normal file
2
jails/config/mail/rspamd/local.d/replies.conf
Normal file
@ -0,0 +1,2 @@
|
||||
# whitelist messages from threads that have been replied to
|
||||
action = "no action";
|
2
jails/config/mail/rspamd/local.d/surbl.conf
Normal file
2
jails/config/mail/rspamd/local.d/surbl.conf
Normal file
@ -0,0 +1,2 @@
|
||||
# follow redirects when checking URLs in emails for spaminess
|
||||
redirector_hosts_map = "/usr/local/etc/rspamd/redirectors.inc";
|
2
jails/config/mail/rspamd/local.d/url_reputation.conf
Normal file
2
jails/config/mail/rspamd/local.d/url_reputation.conf
Normal file
@ -0,0 +1,2 @@
|
||||
# check URLs within messages for spaminess
|
||||
enabled = true;
|
2
jails/config/mail/rspamd/local.d/url_tags.conf
Normal file
2
jails/config/mail/rspamd/local.d/url_tags.conf
Normal file
@ -0,0 +1,2 @@
|
||||
# cache some URL tags in redis
|
||||
enabled = true;
|
10
jails/config/mail/rspamd/local.d/worker-controller.inc
Normal file
10
jails/config/mail/rspamd/local.d/worker-controller.inc
Normal file
@ -0,0 +1,10 @@
|
||||
# generate a password hash using the `rspamadm pw` command and put it here
|
||||
# this one is the hash for 'hunter2'
|
||||
password = "$2$or9n9ffj4qsogh7i8d9qi5u1hxt53q6o$ntp4kj...";
|
||||
|
||||
# dovecot will use this socket to communicate with rspamd
|
||||
# note to self - tighten up these permissions
|
||||
bind_socket = "/var/run/rspamd/rspamd.sock mode=0666 owner=nobody";
|
||||
|
||||
# you can comment this out if you don't need the web interface
|
||||
bind_socket = "127.0.0.1:11334";
|
3
jails/config/mail/rspamd/local.d/worker-normal.inc
Normal file
3
jails/config/mail/rspamd/local.d/worker-normal.inc
Normal file
@ -0,0 +1,3 @@
|
||||
# we're not running rspamd in a distributed setup, so this can be disabled
|
||||
# the proxy worker will handle all the spam filtering
|
||||
enabled = false;
|
13
jails/config/mail/rspamd/local.d/worker-proxy.inc
Normal file
13
jails/config/mail/rspamd/local.d/worker-proxy.inc
Normal file
@ -0,0 +1,13 @@
|
||||
# this worker will be used as postfix milter
|
||||
milter = yes;
|
||||
|
||||
# note to self - tighten up these permissions
|
||||
bind_socket = "/var/run/rspamd/milter.sock mode=0666 owner=nobody";
|
||||
|
||||
# the following specifies self-scan mode, for when rspamd is on the same
|
||||
# machine as postfix
|
||||
timeout = 120s;
|
||||
upstream "local" {
|
||||
default = yes;
|
||||
self_scan = yes;
|
||||
}
|
35
jails/config/mail/rspamd/logging.inc
Normal file
35
jails/config/mail/rspamd/logging.inc
Normal file
@ -0,0 +1,35 @@
|
||||
# Logging configuration
|
||||
# Please don't modify this file as your changes might be overwritten with
|
||||
# the next update.
|
||||
#
|
||||
# You can modify 'local.d/logging.inc' to add and merge
|
||||
# parameters defined inside this section
|
||||
#
|
||||
# You can modify 'override.d/logging.inc' to strictly override all
|
||||
# parameters defined inside this section
|
||||
#
|
||||
# See https://rspamd.com/doc/faq.html#what-are-the-locald-and-overrided-directories
|
||||
# for details
|
||||
#
|
||||
# Relevant documentation: https://rspamd.com/doc/configuration/logging.html
|
||||
|
||||
level = "info";
|
||||
log_format =<<EOD
|
||||
id: <$mid>,$if_qid{ qid: <$>,}$if_ip{ ip: $,}$if_user{ user: $,}$if_smtp_from{ from: <$>,}
|
||||
(default: $is_spam ($action): [$scores] [$symbols_scores_params]),
|
||||
len: $len, time: $time_real, dns req: $dns_req,
|
||||
digest: <$digest>$if_smtp_rcpts{, rcpts: <$>}$if_mime_rcpts{, mime_rcpts: <$>}$if_filename{, file: $}$if_forced_action{, forced: $}$if_settings_id{, settings_id: $}
|
||||
EOD
|
||||
|
||||
|
||||
# Show statistics for regular expressions
|
||||
log_re_cache = true;
|
||||
|
||||
# Can be used for console logging
|
||||
color = false;
|
||||
|
||||
# Log with microseconds resolution
|
||||
log_usec = false;
|
||||
|
||||
# Enable debug for specific modules (e.g. `debug_modules = ["dkim", "re_cache"];`)
|
||||
debug_modules = []
|
70
jails/config/mail/rspamd/maps.d/dmarc_whitelist.inc
Normal file
70
jails/config/mail/rspamd/maps.d/dmarc_whitelist.inc
Normal file
@ -0,0 +1,70 @@
|
||||
# Domains with valid DMARC and DKIM
|
||||
# These domains come from some top visited sites that have restrictive dmarc policy
|
||||
|
||||
4chan.org
|
||||
adp.com
|
||||
advice.hmrc.gov.uk
|
||||
airbnb.com
|
||||
airtel.in
|
||||
alibaba.com
|
||||
aliexpress.com
|
||||
alipay.com
|
||||
americanexpress.com
|
||||
avg.com
|
||||
avito.ru
|
||||
badoo.com
|
||||
battle.net
|
||||
beeline.ru
|
||||
booking.com
|
||||
box.com
|
||||
chase.com
|
||||
consultant.ru
|
||||
dhl.com
|
||||
emarsys.com
|
||||
esetnod32.ru
|
||||
evernote.com
|
||||
facebook.com
|
||||
facebookmail.com
|
||||
fedex.com
|
||||
force.com
|
||||
garant.ru
|
||||
gosuslugi.ru
|
||||
hh.ru
|
||||
hmrc.gov.uk
|
||||
instagram.com
|
||||
linkedin.com
|
||||
livejournal.com
|
||||
lufthansa-group.com
|
||||
mackeeper.com
|
||||
megafon.ru
|
||||
mercadolibre.com.ar
|
||||
mercadolivre.com.br
|
||||
messenger.com
|
||||
mvideo.ru
|
||||
neobux.com
|
||||
netflix.com
|
||||
newegg.com
|
||||
nic.ru
|
||||
paypal.com
|
||||
pch.com
|
||||
pinterest.com
|
||||
rostelecom.ru
|
||||
rt.ru
|
||||
sberbank.ru
|
||||
sportmaster.ru
|
||||
squarespace.com
|
||||
subscribe.ru
|
||||
superjob.ru
|
||||
twitter.com
|
||||
uber.com
|
||||
ulmart.ru
|
||||
ups.com
|
||||
usps.com
|
||||
utair.ru
|
||||
verizonwireless.com
|
||||
vk.com
|
||||
vkrugudruzei.ru
|
||||
westernunion.com
|
||||
whatsapp.com
|
||||
zendesk.com
|
||||
zomato.com
|
208
jails/config/mail/rspamd/maps.d/maillist.inc
Normal file
208
jails/config/mail/rspamd/maps.d/maillist.inc
Normal file
@ -0,0 +1,208 @@
|
||||
usndr.com
|
||||
subscribe.ru
|
||||
smartsndr.com
|
||||
|
||||
hh.ru
|
||||
free-lance.ru
|
||||
superjob.ru
|
||||
rabota.ru
|
||||
job.ru
|
||||
odesk.com
|
||||
jobinmoscow.ru
|
||||
|
||||
russianpost.ru
|
||||
shopotam.ru
|
||||
|
||||
ebay.com
|
||||
alibaba.com
|
||||
aliexpress.com
|
||||
alipay.com
|
||||
|
||||
github.net
|
||||
github.com
|
||||
molotok.ru
|
||||
|
||||
facebook.com
|
||||
vk.com
|
||||
odnoklassniki.ru
|
||||
vkrugudruzei.ru
|
||||
linkedin.com
|
||||
professionali.ru
|
||||
mail.mtml.ru
|
||||
livejournal.com
|
||||
twitter.com
|
||||
|
||||
avito.ru
|
||||
dmir.ru
|
||||
mnogo.ru
|
||||
paypal.com
|
||||
roboxchange.com
|
||||
sberbank.ru
|
||||
|
||||
qiwi.com
|
||||
qiwi.ru
|
||||
osmp.ru
|
||||
mobilelement.ru
|
||||
rp-system.ru
|
||||
quickpay.ru
|
||||
rbkmoney.ru
|
||||
|
||||
gosuslugi.ru
|
||||
rostelecom.ru
|
||||
mos.ru
|
||||
gov.ru
|
||||
nalog.ru
|
||||
sitesoft.ru
|
||||
e-moskva.ru
|
||||
rosreestr.ru
|
||||
roseltorg.ru
|
||||
sberbank-ast.ru
|
||||
etp-micex.ru
|
||||
zakazrf.ru
|
||||
rtstender.ru
|
||||
rts-tender.ru
|
||||
b2b-center.ru
|
||||
yamoney.ru
|
||||
|
||||
fabrikant.ru
|
||||
|
||||
apple.com
|
||||
dropbox.com
|
||||
skype.com
|
||||
|
||||
habramail.net
|
||||
mamba.ru
|
||||
dating.ru
|
||||
topface.com
|
||||
|
||||
ulmart.ru
|
||||
electrozon.ru
|
||||
nix.ru
|
||||
ozon.ru
|
||||
|
||||
beeline.ru
|
||||
mts.ru
|
||||
megafon.ru
|
||||
|
||||
booking.com
|
||||
tutu.ru
|
||||
aeroflot.ru
|
||||
|
||||
vedomosti.ru
|
||||
|
||||
1c-bitrix.ru
|
||||
|
||||
moesk.ru
|
||||
|
||||
exist.ru
|
||||
tks.ru
|
||||
zzap.ru
|
||||
|
||||
activeby.net
|
||||
babysfera.ru
|
||||
baby.ru
|
||||
|
||||
wordpress.com
|
||||
|
||||
ispsystem.net
|
||||
ispsystem.com
|
||||
ispsystem.ru
|
||||
|
||||
naukanet.ru
|
||||
|
||||
startcomca.com
|
||||
|
||||
wmtransfer.com
|
||||
|
||||
sipnet.ru
|
||||
tario.ru
|
||||
|
||||
mailgun.com
|
||||
mailgun.net
|
||||
|
||||
psport.ru
|
||||
|
||||
returnpath.net
|
||||
senderscore.net
|
||||
|
||||
webnames.ru
|
||||
regtime.net
|
||||
|
||||
nic.ru
|
||||
r01.ru
|
||||
reg.ru
|
||||
|
||||
ztel.ru
|
||||
|
||||
youtube.com
|
||||
baidu.com
|
||||
yahoo.com
|
||||
amazon.com
|
||||
wikipedia.org
|
||||
qq.com
|
||||
google.co.in
|
||||
live.com
|
||||
taobao.com
|
||||
msn.com
|
||||
yahoo.co.jp
|
||||
google.co.jp
|
||||
weibo.com
|
||||
bing.com
|
||||
hao123.com
|
||||
instagram.com
|
||||
google.de
|
||||
amazon.co.jp
|
||||
360.cn
|
||||
tmall.com
|
||||
google.co.uk
|
||||
pinterest.com
|
||||
google.ru
|
||||
reddit.com
|
||||
google.com.br
|
||||
t.co
|
||||
netflix.com
|
||||
google.fr
|
||||
sohu.com
|
||||
microsoft.com
|
||||
google.it
|
||||
blogspot.com
|
||||
tumblr.com
|
||||
ok.ru
|
||||
gmw.cn
|
||||
imgur.com
|
||||
stackoverflow.com
|
||||
xvideos.com
|
||||
google.com.mx
|
||||
fc2.com
|
||||
imdb.com
|
||||
google.com.hk
|
||||
amazon.de
|
||||
ask.com
|
||||
google.com.tr
|
||||
google.ca
|
||||
office.com
|
||||
pornhub.com
|
||||
google.co.id
|
||||
soso.com
|
||||
go.com
|
||||
pixnet.net
|
||||
amazon.co.uk
|
||||
googleusercontent.com
|
||||
outbrain.com
|
||||
amazon.in
|
||||
blogger.com
|
||||
cnn.com
|
||||
google.pl
|
||||
google.com.au
|
||||
360.com
|
||||
xhamster.com
|
||||
adobe.com
|
||||
flipkart.com
|
||||
microsoftonline.com
|
||||
whatsapp.com
|
||||
nytimes.com
|
||||
chase.com
|
||||
wosign.com
|
||||
comodo.com
|
||||
comodogroup.com
|
||||
comodo.net
|
22
jails/config/mail/rspamd/maps.d/mid.inc
Normal file
22
jails/config/mail/rspamd/maps.d/mid.inc
Normal file
@ -0,0 +1,22 @@
|
||||
# Known invalid or missed Message-IDs
|
||||
# 'domain' 'Message-ID regexp'
|
||||
|
||||
alibaba.com /^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}-0$/
|
||||
aliexpress.com /^(?:(?:[0-9]{14,15}|[a-z]{4}UTT_[0-9]{5,6}_(?:[0-9]{8}_)?)[$])?[a-f0-9]{32}$/
|
||||
beeline.ru /^<[A-z0-9+]{18}>$/
|
||||
noreply.esphere.ru
|
||||
noreply.etprf.ru
|
||||
rkn.gov.ru
|
||||
garant.ru
|
||||
is-zakupki.com
|
||||
mirtesen.ru
|
||||
fcod.nalog.ru
|
||||
otc.ru
|
||||
qiwi.ru
|
||||
client.rostelecom.ru
|
||||
sberbank-ast.ru
|
||||
crm.taxcom.ru
|
||||
wildberries.ru /^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$/
|
||||
promo.wildberries.ru /^[A-F0-9]{8}(?:-[A-F0-9]{4}){3}-[A-F0-9]{12}$/
|
||||
taxi.yandex.ru /^[a-f0-9]{32}$/
|
||||
online.zcts.ru
|
1533
jails/config/mail/rspamd/maps.d/mime_types.inc
Normal file
1533
jails/config/mail/rspamd/maps.d/mime_types.inc
Normal file
File diff suppressed because it is too large
Load Diff
1045
jails/config/mail/rspamd/maps.d/redirectors.inc
Normal file
1045
jails/config/mail/rspamd/maps.d/redirectors.inc
Normal file
File diff suppressed because it is too large
Load Diff
233
jails/config/mail/rspamd/maps.d/spf_dkim_whitelist.inc
Normal file
233
jails/config/mail/rspamd/maps.d/spf_dkim_whitelist.inc
Normal file
@ -0,0 +1,233 @@
|
||||
# Domains with valid SPF and DKIM
|
||||
|
||||
4chan.org
|
||||
6pm.com
|
||||
about.com
|
||||
addthis.com
|
||||
adf.ly
|
||||
adobe.com
|
||||
adp.com
|
||||
adschemist.com
|
||||
airbnb.com
|
||||
airtel.in
|
||||
alibaba.com
|
||||
aliexpress.com 2.0
|
||||
alipay.com 2.0
|
||||
allrecipes.com
|
||||
amazon.ca
|
||||
amazon.cn
|
||||
amazon.co.jp
|
||||
amazon.com
|
||||
amazon.co.uk
|
||||
amazon.de
|
||||
amazon.es
|
||||
amazon.fr
|
||||
amazon.in
|
||||
amazon.it
|
||||
amazon.ru
|
||||
americanexpress.com
|
||||
ancestry.com
|
||||
android.com
|
||||
apple.com
|
||||
asana.com
|
||||
att.com
|
||||
autohome.com.cn
|
||||
avg.com
|
||||
aweber.com
|
||||
badoo.com
|
||||
bankofamerica.com
|
||||
basecamp.com
|
||||
battle.net
|
||||
bet365.com
|
||||
biglobe.ne.jp
|
||||
bitly.com
|
||||
bleacherreport.com
|
||||
blogger.com
|
||||
bloomberg.com
|
||||
booking.com
|
||||
box.com
|
||||
bt.com
|
||||
capitalone.com
|
||||
cdiscount.com
|
||||
change.org
|
||||
chase.com
|
||||
cisco.com
|
||||
citi.com
|
||||
constantcontact.com
|
||||
costco.com
|
||||
craigslist.org
|
||||
custhelp.com
|
||||
dell.com
|
||||
delta.com
|
||||
diply.com
|
||||
discovercard.com
|
||||
disqus.com
|
||||
dropbox.com
|
||||
drweb.com
|
||||
ebay.ca
|
||||
ebay.com
|
||||
ebay.com.au
|
||||
ebay.co.uk
|
||||
ebay.de
|
||||
ebay.fr
|
||||
ebay.in
|
||||
ebay.it
|
||||
ebay.ru
|
||||
etsy.com
|
||||
evernote.com
|
||||
expedia.com
|
||||
facebook.com
|
||||
fedex.com
|
||||
fidelity.com
|
||||
fishki.net
|
||||
flickr.com
|
||||
flirchi.com
|
||||
force.com
|
||||
freepik.com
|
||||
gap.com
|
||||
gawker.com
|
||||
github.com 2.0
|
||||
gizmodo.com
|
||||
godaddy.com
|
||||
googleadservices.com
|
||||
googleusercontent.com
|
||||
groupon.com
|
||||
hdfcbank.com
|
||||
hgtv.com
|
||||
hh.ru
|
||||
hm.com
|
||||
houzz.com
|
||||
hubspot.com
|
||||
icicibank.com
|
||||
icloud.com
|
||||
ign.com
|
||||
imgur.com
|
||||
immobilienscout24.de
|
||||
indeed.com
|
||||
indiatimes.com
|
||||
infusionsoft.com
|
||||
instagram.com
|
||||
intel.com
|
||||
irctc.co.in
|
||||
kayak.com
|
||||
kickstarter.com
|
||||
kijiji.ca
|
||||
kotaku.com
|
||||
letsencrypt.org
|
||||
libero.it
|
||||
lifehacker.com
|
||||
likes.com
|
||||
linkedin.com
|
||||
linux.com
|
||||
list-manage.com
|
||||
mackeeper.com
|
||||
mailchimp.com
|
||||
mashable.com
|
||||
match.com
|
||||
mercadolibre.com.ar
|
||||
mercadolivre.com.br
|
||||
messenger.com
|
||||
microsoft.com
|
||||
microsoftonline.com
|
||||
moikrug.ru
|
||||
mts.ru
|
||||
neobux.com
|
||||
netflix.com
|
||||
newegg.com
|
||||
nhk.or.jp
|
||||
nifty.com
|
||||
nikkeibp.co.jp
|
||||
nyaa.se
|
||||
nytimes.com
|
||||
odnoklassniki.ru
|
||||
ok.ru
|
||||
olx.ua
|
||||
overstock.com
|
||||
ozon.ru
|
||||
ozon.travel
|
||||
pandora.com
|
||||
paypal.ca
|
||||
paypal.cn
|
||||
paypal.com
|
||||
paypal.com
|
||||
paypal.co.uk
|
||||
paypal.de
|
||||
paypal.es
|
||||
paypal.fr
|
||||
paypal.it
|
||||
paypal.ru
|
||||
paytm.com
|
||||
pch.com
|
||||
pinterest.com
|
||||
porn.com
|
||||
priceline.com
|
||||
qq.com
|
||||
quora.com
|
||||
rakuten.co.jp
|
||||
reddit.com
|
||||
researchgate.net
|
||||
salesforce.com
|
||||
sciencedirect.com
|
||||
shopify.com
|
||||
slack.com
|
||||
slideshare.net
|
||||
so-net.ne.jp
|
||||
southwest.com
|
||||
spotify.com
|
||||
springer.com
|
||||
squarespace.com
|
||||
stalker.com
|
||||
steampowered.com
|
||||
stumbleupon.com
|
||||
surveymonkey.com
|
||||
swagbucks.com
|
||||
taboola.com
|
||||
taleo.net
|
||||
taobao.com
|
||||
target.com
|
||||
taringa.net
|
||||
taxi.yandex.ru
|
||||
tele2.ru
|
||||
thekitchn.com
|
||||
tokopedia.com
|
||||
trello.com
|
||||
tribunnews.com
|
||||
trulia.com
|
||||
tumblr.com
|
||||
twitter.com
|
||||
ultimate-guitar.com
|
||||
ups.com
|
||||
usaa.com
|
||||
usbank.com
|
||||
usps.com
|
||||
verizon.com
|
||||
verizonwireless.com
|
||||
vimeo.com
|
||||
vine.co
|
||||
vk.com
|
||||
vmware.com
|
||||
vtb24.ru
|
||||
wahoofitness.com
|
||||
walmart.com
|
||||
wav.tv
|
||||
wellsfargo.com
|
||||
whatsapp.com
|
||||
wikia.com
|
||||
wikimedia.org
|
||||
wikipedia.org
|
||||
wildberries.ru
|
||||
wix.com
|
||||
wordpress.com
|
||||
wordpress.org
|
||||
wp.com
|
||||
xuite.net
|
||||
xvideos.com
|
||||
yelp.com
|
||||
youtube.com
|
||||
yts.to
|
||||
zappos.com
|
||||
zendesk.com
|
||||
zippyshare.com
|
||||
zomato.com
|
||||
zulily.com
|
||||
zwift.com
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user