ΠΠΎΡΠ»Π΅ 6 ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΈΠ΄Ρ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° ΠΏΠ΅ΡΠ΅ΡΡΠ°Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΠΎΡΠΈΡΠ΅Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ (tainted, Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΎΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ) ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $local_part Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ «check_local_user» ΠΏΡΠΈ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΈΡΡΠΌΠ°. ΠΠΌΠ΅ΡΡΠΎ $local_part ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ ΠΎΡΠΈΡΠ΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ «$local_part_data». ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°Ρ ΠΎΠΏΡΠΈΠΈ headers_remove ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΠΎΠΊ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° «*», ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΠΈΡ ΡΡ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» Π·Π²ΡΠ·Π΄ΠΎΡΠΊΠΈ (Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ°ΡΠΊΠ΅).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° SRS (Sender Rewriting Scheme), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Π°Π΄ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ΅ Π±Π΅Π· Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ SPF (
Sender Policy Framework ) ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ² ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΎΠ± ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Π΅ Π΄Π»Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ. Π‘ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΠΈ Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Π΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ [email protected] Π½Π° [email protected] Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°Π½ΠΎ «[email protected]». SRS Π°ΠΊΡΡΠ°Π»Π΅Π½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² ΡΠ°ΡΡΡΠ»ΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»ΡΠΌ. - ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ OpenSSL Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π° Π΄Π»Ρ
Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² (ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ GnuTLS). - ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ «msg:defer».
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° gsasl Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΎΡΠΊΡΡΡΡΡ
ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ (plaintext). Π Π°Π±ΠΎΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² SCRAM-SHA-256 ΠΈ SCRAM-SHA-256-PLUS Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΌ
gsasl . - Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° gsasl Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ, Π²ΡΡΡΡΠΏΠ°ΡΡΠ°Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ ΡΠ°Π½Π΅Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° plaintext.
- ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ «hide» Π΄Π»Ρ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ «-bP».
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· IMAP-ΡΠ΅ΡΠ²Π΅Ρ Dovecot Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΡΠΎΠΊΠ΅ΡΠΎΠ² (ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ unix-domain ΡΠΎΠΊΠ΅ΡΡ).
- ACL Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ «queue_only» ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ «queue» ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠΏΡΠΈΡ «first_pass_route», Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΠΎΠΏΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ «-odqs».
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ $queue_size ΠΈ $local_part_{pre,suf}fix_v.
- Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «sqlite_dbfile» Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΠΈΡΠΊΠ°. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π°ΡΡΡΠ°Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ — ΡΡΠ°ΡΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°Π΄Π°Π½ΠΈΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° ΠΏΠ΅ΡΠ΅ΡΡΠ°Π» ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ Π½Π΅ΠΎΡΠΈΡΠ΅Π½Π½ΡΡ (tainted) ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² lookup-Π·Π°ΠΏΡΠΎΡΠ°Ρ . ΠΠΎΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ («sqlite_dbfile») ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅ΡΠΆΠ°ΡΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
- Π lookup-Π±Π»ΠΎΠΊΠΈ dsearch Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠΏΡΠΈΠΈ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ ΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ.
- Π lookup-Π±Π»ΠΎΠΊΠΈ pgsql ΠΈ mysql Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠΏΡΠΈΠΈ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΠΈΡΠΊΠ°.
- ΠΠ»Ρ lookup-Π±Π»ΠΎΠΊΠΎΠ², ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΡ Π²ΡΠ±ΠΎΡΠΊΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠ»ΡΡΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΡΠ΅Π½Π½ΠΎΠΉ (de-tainted) Π²Π΅ΡΡΠΈΠΈ ΠΊΠ»ΡΡΠ° ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ, Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡΠΊΠΎΠΌΡΡ Π΄Π°Π½Π½ΡΡ .
- ΠΠ»Ρ Π²ΡΠ΅Ρ ΡΡΠΏΠ΅ΡΠ½ΡΡ Π²ΡΠ±ΠΎΡΠΎΠΊ list-match ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ $domain_data ΠΈ $localpart_data (ΡΠ°Π½Π΅Π΅ Π²ΡΡΠ°Π²Π»ΡΠ»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°, Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² Π²ΡΠ±ΠΎΡΠΊΠ΅). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ° ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ $0, $1 ΠΈ Ρ.Π΄.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ°ΡΠΊΡΡΡΠΈΡ «${listquote {<char>} {<item>}}».
- Π ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ°ΡΠΊΡΡΡΠΈΡ ${readsocket {}{}{}} Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ².
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° dkim_verify_min_keysizes Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΡΠΊΡΡΡΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ ΡΠ°ΡΠΊΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² «bounce_message_file» ΠΈ «warn_message_file» Π΄ΠΎ ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «spf_smtp_comment_template» Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ «$spf_smtp_comment».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru