Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
setup_basic_mailserver_with_postfix_dovecot_sieve [02.01.2020 08:34] – [proxmox mail gateway] Pascal Suter | setup_basic_mailserver_with_postfix_dovecot_sieve [28.05.2020 10:31] – Pascal Suter | ||
---|---|---|---|
Line 65: | Line 65: | ||
to make sure letsencrypt will restart all our servers once the ssh keys change, we need to add this: | to make sure letsencrypt will restart all our servers once the ssh keys change, we need to add this: | ||
< | < | ||
- | echo -e " | + | cat > / |
+ | # | ||
+ | service postfix restart | ||
+ | service dovecot | ||
+ | service apache2 | ||
+ | EOF | ||
+ | chmod +x / | ||
</ | </ | ||
Line 467: | Line 474: | ||
* for DKIM to work you need to add a TXT entry to your domian' | * for DKIM to work you need to add a TXT entry to your domian' | ||
* once all these settings where done, i had to login to the filter via ssh and **manually restart postfix**. otherwise postfix would bind port 25 to 127.0.0.1 only. i guess rebooting the entire filter would fix this issue as well. | * once all these settings where done, i had to login to the filter via ssh and **manually restart postfix**. otherwise postfix would bind port 25 to 127.0.0.1 only. i guess rebooting the entire filter would fix this issue as well. | ||
+ | |||
+ | ==== tag and deliver spam instead of quarantine ==== | ||
+ | I'm not sure I or my users would be happy with waiting for reports to find out why a recently sent mail did not reach them. after all it's always a good feeling if you can tell someone on the phone that you didn't find their email in your spam folder either, to convince them that they might have had a typo in your email address :) .. | ||
+ | |||
+ | First you need to make sure that spam is no longer quarantined but instead marked and forwarded. | ||
+ | |||
+ | you can either mark an email by modifying its subject or by adding a header element.. i don't like changing the visible part of the email message, so i opted to go for an additional header field that marks spam. | ||
+ | |||
+ | to create it, go to the '' | ||
+ | |||
+ | next we need to make sure that all spam mail is tagged with this header field instead of quarantined. | ||
+ | |||
+ | in the PMG web interface click on '' | ||
+ | |||
+ | now on to your postfix mail server.. we need to add a global sieve rule to dovecot that will move spam into a spam folder.. edit ''/ | ||
+ | sieve_after = / | ||
+ | now create the sieve-after directory: | ||
+ | mkdir / | ||
+ | all filters found in this directory will be executed AFTER each user's own filters. so a user can create his own filters to whitelist spam in our case. | ||
+ | < | ||
+ | cat > / | ||
+ | require [" | ||
+ | |||
+ | if header :contains " | ||
+ | | ||
+ | stop; | ||
+ | } | ||
+ | EOF | ||
+ | </ | ||
+ | now compile the sieve filter: | ||
+ | sievec / | ||
+ | lastly restart dovecot to re-read the config we altered bove | ||
+ | systemctl restart dovecot | ||
+ | to test, send an email from outside to your mail account with the following line in the body: | ||
+ | < | ||
+ | XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X | ||
+ | </ | ||
==== future improvements ==== | ==== future improvements ==== | ||
+ | === Bayesian learning by moving mail to junk folder === | ||
in order for proxmox' | in order for proxmox' | ||
Line 475: | Line 520: | ||
* a solution on how to use imap sieve filters to trigger a bash script when a mail is moved into a specific folder can be found in the [[https:// | * a solution on how to use imap sieve filters to trigger a bash script when a mail is moved into a specific folder can be found in the [[https:// | ||
- | i'm not sure yet, but i might want to only tag spam but still send it to the mailserver so that it can be stored to a spam folder and is instantly searchable by any user in his own account. not sure I or my users are happy with waiting for reports to find out why a recently sent mail did not reach them. | ||
==== adjustments to postfix settings on our mailserver ==== | ==== adjustments to postfix settings on our mailserver ==== |