avenger - ອອນລາຍໃນຄລາວ

ນີ້ແມ່ນຄໍາສັ່ງ avenger ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


avenger - Mail Avenger

ລາຍລະອຽດ


Mail Avenger ເປັນ SMTP ທີ່ເປັນເອກະລາດ MTA ທີ່ສາມາດກຳນົດຄ່າໄດ້ສູງ (ການຂົນສົ່ງທາງໄປສະນີແບບງ່າຍດາຍ
Protocol) ເຊີບເວີທີ່ອອກແບບມາເພື່ອໃຫ້ທ່ານກັ່ນຕອງ ແລະຕໍ່ສູ້ກັບ SPAM ກ່ອນທີ່ຈະ ຮັບເອົາຈົດໝາຍທີ່ເຂົ້າມາ
ຈາກເຄື່ອງລູກຄ້າ. avenger ແມ່ນ script ດໍາເນີນການໃນນາມຂອງຜູ້ໃຊ້ແຕ່ລະຄົນເພື່ອຕັດສິນໃຈວ່າ
ເພື່ອຮັບເອົາຈົດໝາຍທີ່ເຂົ້າມາ.

ເມື່ອລູກຄ້າພະຍາຍາມສົ່ງອີເມວໄປຫາຜູ້ໃຊ້ໃນລະບົບ, avenger SMTP daemon,
asmtpd, ແລ່ນ avenger ເພື່ອປະມວນຜົນໄຟລ໌ .avenger/rcpt ຢູ່ໃນໄດເລກະທໍລີເຮືອນຂອງຜູ້ໃຊ້. ນັ້ນ
file, script shell ທີ່ມີການເຂົ້າເຖິງຫນ້າທີ່ພິເສດ, ກໍານົດວິທີການເຄື່ອງແມ່ຂ່າຍ SMTP
ຄວນດໍາເນີນການ. ຜົນໄດ້ຮັບທີ່ເປັນໄປໄດ້ແມ່ນ:

· ຍອມຮັບຈົດໝາຍຊົ່ວຄາວ, ກັບຄືນໄປໃຊ້ກົດລະບຽບເລີ່ມຕົ້ນຂອງລະບົບ

· ຍອມຮັບຈົດໝາຍໃນທັນທີໂດຍບໍ່ມີການກວດສອບເພີ່ມເຕີມ

· ປະຕິເສດຈົດໝາຍໃນທັນທີ

·ເລື່ອນເມລ, ບອກລູກຄ້າໃຫ້ສົ່ງມັນຄືນໃນພາຍຫຼັງ

· ປ່ຽນເສັ້ນທາງການປະມວນຜົນໄປຫາຊື່ທ້ອງຖິ່ນອື່ນ. ຊື່ສາມາດເປັນທີ່ຢູ່ອີເມວອື່ນ
ເປັນຂອງຜູ້ໃຊ້ປັດຈຸບັນ, ຫຼືທີ່ຢູ່ອີເມວທີ່ເປັນຂອງພິເສດ
AvengerUser ຜູ້ໃຊ້. ໃນກໍລະນີຕໍ່ມາ, avenger ຈະຖືກດໍາເນີນການຄືນໃຫມ່ດ້ວຍ ID ຜູ້ໃຊ້ທີ່ແຕກຕ່າງກັນ,
ແລະດັ່ງນັ້ນ, ສໍາລັບການຍົກຕົວຢ່າງ, ຈ້າງສາທາລະນູປະໂພກທີ່ຮັກສາລັດໃນທົ່ວຜູ້ໃຊ້ຫຼາຍ
(ສົມມຸດວ່າພວກເຂົາທັງຫມົດປ່ຽນເສັ້ນທາງການປຸງແຕ່ງດ້ວຍວິທີດຽວກັນ).

·ດໍາເນີນການກົດລະບຽບ "bodytest". ດ້ວຍຜົນໄດ້ຮັບນີ້, ການເຮັດທຸລະກໍາ SMTP ຍັງສືບຕໍ່
ໄດ້​ຮັບ​ເນື້ອ​ໃນ​ທັງ​ຫມົດ​ຂອງ​ຂໍ້​ຄວາມ​ເມລ​, ຫຼັງ​ຈາກ​ນັ້ນ​ໂຄງ​ການ​ແມ່ນ​ດໍາ​ເນີນ​ການ​ໃນ​
ເນື້ອໃນຂອງຂໍ້ຄວາມທາງໄປສະນີ. ໂຄງການນັ້ນສາມາດຕັດສິນໃຈ, ໂດຍອີງໃສ່ເນື້ອໃນ, ບໍ່ວ່າຈະເປັນ
ຍອມຮັບ, ປະຕິເສດ, ເລື່ອນເວລາ, ຫຼືຍົກເລີກຂໍ້ຄວາມຢ່າງງຽບໆ.

ໂດຍປົກກະຕິແລ້ວ Mail Avenger ຄວນຖືກຕັ້ງຄ່າໃຫ້ມີ ແຍກຕ່າງຫາກ ລັກສະນະ, ອະນຸຍາດໃຫ້ແຕ່ລະຄົນ
ຜູ້ໃຊ້ເພື່ອຮັກສາທີ່ຢູ່ອີເມວຫຼາຍ. ດ້ວຍ sendmail, ແຍກຕ່າງຫາກ ໂດຍປົກກະຕິແມ່ນ "+",
ກັບ qmail ມັນປົກກະຕິແລ້ວ "-". ຖ້າຕົວແຍກແມ່ນ "+", ຫຼັງຈາກນັ້ນອີເມວໃດໆທີ່ຖືກສົ່ງໄປຫາ
ຜູ້ໃຊ້+ext@your-host ຈະຖືກປະມວນຜົນໂດຍໄຟລ໌ໃນ ຜູ້ໃຊ້'s .avenger ລະບົບ.

Avenger ທໍາອິດກວດເບິ່ງໄຟລ໌ທີ່ມີຊື່ rcpt+ext ໃນ​ຜູ້​ໃຊ້ .avenger ໄດເລກະທໍລີ, ຫຼັງຈາກນັ້ນສໍາລັບ
rcpt+ຄ່າເລີ່ມຕົ້ນທີ່ຢູ່ ຖ້າຫາກວ່າ ext ຕົວຂອງມັນເອງປະກອບດ້ວຍຕົວອັກສອນຕົວແຍກ, ສໍາລັບການຍົກຕົວຢ່າງ
ຜູ້ໃຊ້+ext1+ext2@your-host, avenger ຈະກວດເບິ່ງທໍາອິດສໍາລັບ rcpt+ext1+ext2, ຫຼັງຈາກນັ້ນສໍາລັບ
rcpt+ext1+ຄ່າເລີ່ມຕົ້ນ, ຫຼັງຈາກນັ້ນສໍາລັບ rcpt+ຄ່າເລີ່ມຕົ້ນ. ສູດການຄິດໄລ່ດຽວກັນແມ່ນຂະຫຍາຍອອກໂດຍຕົນເອງ
ຕົວອັກສອນຕົວແຍກຫຼາຍອັນ. (ຖ້າຕົວແຍກແມ່ນ "-", ພຽງແຕ່ປ່ຽນ "+" ດ້ວຍ "-" ຕະຫຼອດ
ຄໍາອະທິບາຍຂ້າງເທິງ, ລວມທັງຊື່ຂອງໄຟລ໌ເຊັ່ນ: rcpt-default.)

ຖ້າເມລຖືກປະຕິເສດໂດຍຜູ້ຮັບຈະກວດເບິ່ງແຕ່ທີ່ຢູ່ຜູ້ສົ່ງຂອງຂໍ້ຄວາມແມ່ນຢູ່ໃນທ້ອງຖິ່ນ
ແລະ ອີເມວຜູ້ໃຊ້ ແມ່ນ 1 ໃນ asmtpd.conf (ເຊິ່ງບໍ່ແມ່ນຄ່າເລີ່ມຕົ້ນ), ຈາກນັ້ນກ່ອນທີ່ຈະປະຕິເສດຈົດໝາຍ,
avenger ຈະດໍາເນີນການໃນນາມຂອງຜູ້ໃຊ້ສົ່ງ. ໃນກໍລະນີນີ້, ທີ່ຢູ່ຈະເປັນ
pared ເປັນຂ້າງເທິງ, ແຕ່ avenger ຈະຊອກຫາກົດລະບຽບໃນໄຟລ໌ເລີ່ມຕົ້ນ ອີເມວ ແທນ​ທີ່ rcpt.
ກົນໄກນີ້ສາມາດຖືກນໍາໃຊ້ໂດຍຜູ້ໃຊ້ທ້ອງຖິ່ນທີ່ຕ້ອງການ relay mail ຜ່ານເຄື່ອງແມ່ຂ່າຍຈາກ
ທີ່ຢູ່ IP ທີ່ບໍ່ເຊື່ອຖື.

ການນໍາໃຊ້ ອີເມວ ໄຟລ໌ການຕັ້ງຄ່າ, ຜູ້ໃຊ້ແຕ່ລະຄົນສາມາດ, ຕົວຢ່າງ, configure a mail+... ເອກະສານ
ເພື່ອຮັບເອົາຈົດໝາຍຈາກທີ່ຢູ່ IP ທີ່ລາວເຊື່ອຖື, ເຖິງແມ່ນວ່າທີ່ຢູ່ນັ້ນຈະບໍ່ເຊື່ອຖືໄດ້
ຜູ້​ໃຊ້​ທັງ​ຫມົດ​. (ອີກທາງເລືອກ, ການນໍາໃຊ້ເຄື່ອງມືເຊັ່ນ macutil, ຜູ້ໃຊ້ອາດຈະຕັ້ງຄ່າ relaying ຂອງ
mail ທີ່ຜູ້ສົ່ງ envelope ມີລະຫັດ cryptographic, ກວດສອບໂດຍ mail+...
script.)

ຜົນອອກມາຜິດພາດຂອງສະຄຣິບ avenger rcpt+ext or mail+ext ຖືກໂອນໄປຫາໄຟລ໌ທີ່ເອີ້ນວ່າ
log+ext ໃນໄດເລກະທໍລີດຽວກັນ, ສໍາລັບການນໍາໃຊ້ໃນການດີບັກ.

AVENGER SYNTAX


ໄຟລ໌ການຕັ້ງຄ່າ Avenger ແມ່ນພຽງແຕ່ Shell scripts, ໂດຍໃຊ້ syntax ທີ່ອະທິບາຍໄວ້ໃນ sh(1).
ແຕ່ລະແຖວຂອງໄຟລ໌ປະກອບດ້ວຍການມອບຫມາຍຕົວແປ, ຄໍາສັ່ງ, ຫຼືຟັງຊັນທີ່ຈະດໍາເນີນການ.
Scripts ຍັງສາມາດໃຊ້ຫນ້າທີ່ສະເພາະຂອງ avenger ແລະຕົວແປຈໍານວນຫນຶ່ງ.
ພາກນີ້ອະທິບາຍຟັງຊັນຂອງ avenger. ສອງພາກຕໍ່ໄປອະທິບາຍຕົວແປ.

ກວດ​ສອບ​ຜິດ​ພາດ
ເງື່ອນໄຂຄວາມຜິດພາດບາງຢ່າງສົ່ງຜົນໃຫ້ Mail Avenger ປະຕິເສດເມລໂດຍຄ່າເລີ່ມຕົ້ນ, ເວັ້ນເສຍແຕ່ວ່າ
ຂໍ້ຄວາມຖືກຍອມຮັບຢ່າງຈະແຈ້ງໂດຍຜ່ານ ຍອມ​ຮັບ ຫຼືປະສົບຜົນສໍາເລັດ ກວດຮ່າງກາຍ ກວດ. ເຫຼົ່ານີ້
ເງື່ອນ​ໄຂ​ສະ​ແດງ​ໃຫ້​ເຫັນ​ໂດຍ​ MAIL_ERROR ຕົວແປສະພາບແວດລ້ອມໄດ້ອະທິບາຍຂ້າງລຸ່ມນີ້. ຖ້າ
script ຂອງທ່ານປະຕິເສດອີເມລຫຼືຫຼຸດລົງໂດຍຜ່ານພຶດຕິກໍາເລີ່ມຕົ້ນ, ມີ
ເລື້ອຍໆບໍ່ມີເຫດຜົນທີ່ຈະດໍາເນີນການທົດສອບກ່ຽວກັບຂໍ້ຄວາມທີ່ຈະສິ້ນສຸດເຖິງການປະຕິເສດທາງໃດກໍ່ຕາມ.
ກວດ​ສອບ​ຜິດ​ພາດ ອອກຈາກທັນທີທີ່ມີຄວາມຜິດພາດເລີ່ມຕົ້ນຖ້າຫາກວ່າຄ່າເລີ່ມຕົ້ນທີ່ຈະປະຕິເສດຫຼື
ເລື່ອນຈົດໝາຍ.

ຍອມ​ຮັບ [ຂໍ້ຄວາມ]
ຍອມຮັບຂໍ້ຄວາມທັນທີ (ໂດຍບໍ່ມີການຫຼຸດລົງກັບກົດລະບຽບມາດຕະຖານໃດໆ). ຖ້າ
ຂໍ້​ຄວາມ​ແມ່ນ​ໄດ້​ສະ​ຫນອງ​ໃຫ້​, ມັນ​ຈະ​ໄດ້​ຮັບ​ກັບ​ຄືນ​ໄປ​ບ່ອນ​ລູກ​ຄ້າ SMTP​. ຂໍ້ຄວາມເລີ່ມຕົ້ນແມ່ນ
"ຕົກ​ລົງ".

ປະຕິເສດ [ຂໍ້ຄວາມ]
ປະຕິເສດເມລ, ກັບ ຂໍ້ຄວາມ. (ຂໍ້ຄວາມເລີ່ມຕົ້ນແມ່ນ "ຄໍາສັ່ງປະຕິເສດສໍາລັບນະໂຍບາຍ
ເຫດຜົນ").

ເລື່ອນເວລາ [ຂໍ້ຄວາມ]
ປະຕິເສດເມລດ້ວຍລະຫັດຂໍ້ຜິດພາດຊົ່ວຄາວ, ດັ່ງນັ້ນລູກຄ້າອີເມວທີ່ຖືກຕ້ອງ
ພະຍາຍາມສົ່ງມັນຄືນໃນພາຍຫຼັງ. ຄ່າເລີ່ມຕົ້ນສໍາລັບ ຂໍ້ຄວາມ ແມ່ນ "ຄວາມຜິດພາດຊົ່ວຄາວໃນ
ການປຸງແຕ່ງ".

ກວດຮ່າງກາຍ ຄໍາສັ່ງ [arg ... ]
ຍອມຮັບຄໍາສັ່ງ SMTP "RCPT" ໃນປັດຈຸບັນ. ຢ່າງໃດກໍຕາມ, ເມື່ອຂໍ້ຄວາມທັງຫມົດແມ່ນໄດ້
ໄດ້ຮັບດ້ວຍຄໍາສັ່ງ SMTP "DATA", ດໍາເນີນການ ຄໍາສັ່ງ ກັບຂໍ້ຄວາມເປັນມາດຕະຖານຂອງມັນ
ວັດສະດຸປ້ອນ. ຂຶ້ນຢູ່ກັບສະຖານະການອອກຂອງ ຄໍາສັ່ງ ກັບຄືນໄປຫາຄໍາສັ່ງ "DATA" ຂອງລູກຄ້າ
ບໍ່ວ່າຈະເປັນຜົນສໍາເລັດ, ຊົ່ວຄາວ, ຫຼືຄວາມລົ້ມເຫຼວຖາວອນ. ອອກຈາກລະຫັດ 0 ຫມາຍຄວາມວ່າຍອມຮັບຈົດຫມາຍ,
100 ຫມາຍຄວາມວ່າປະຕິເສດ, 111 ຫມາຍຄວາມວ່າປະຕິເສດດ້ວຍລະຫັດຂໍ້ຜິດພາດຊົ່ວຄາວ (ເຊັ່ນ, ເລື່ອນເມລ).
ເບິ່ງລາຍລະອຽດຂອງ ກວດຮ່າງກາຍ ໃນຄໍາອະທິບາຍການໂຕ້ຕອບ asmtpd/avenger ສໍາລັບການເພີ່ມເຕີມ
ຂໍ້ມູນກ່ຽວກັບ ກວດຮ່າງກາຍ (ນັບ​ຕັ້ງ​ແຕ່​ຫນ້າ​ທີ່​ນີ້​ໂດຍ​ກົງ invokes​ ກວດຮ່າງກາຍ ໃນ asmtpd).

ຂໍ້ຜິດພາດຜົນຜະລິດຈາກ ຄໍາສັ່ງ ຈະຖືກໂອນໄປຫາໄຟລ໌ບັນທຶກດຽວກັນກັບຜົນຜະລິດຈາກ
rcpt+... avenger script ຮຽກ​ຮ້ອງ​ໃຫ້​ ກວດຮ່າງກາຍ ຫນ້າທີ່. ຜົນຜະລິດມາດຕະຖານຂອງ ຄໍາສັ່ງ
ຈະຖືກລວມເຂົ້າເປັນການວິນິດໄສຂໍ້ຄວາມ bounce ຖ້າລະຫັດອອກ defers ຫຼືປະຕິເສດ
ເມລ.

ໃຫ້ສັງເກດວ່າ ຄໍາສັ່ງ ແລະການໂຕ້ຖຽງໄດ້ຜ່ານໄປ ກວດຮ່າງກາຍ ຈະຖືກດໍາເນີນການໂດຍແກະ.
ດັ່ງນັ້ນ, ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະບໍ່ຜ່ານການໂຕ້ຖຽງໃດໆທີ່ອາດຈະມີແກະ
metacharacters ເຊັ່ນ ">" ແລະ "$".

ປ່ຽນເສັ້ນທາງ ທ້ອງຖິ່ນ
ສໍາເລັດການປະມວນຜົນ, ແລະດໍາເນີນການ avenger ຄືນໃໝ່ຄືກັບວ່າອີເມລຖືກສົ່ງໄປຫາອັນອື່ນ
ຊື່ຜູ້ໃຊ້ ທ້ອງຖິ່ນ (ອາດຈະເປັນຂອງພິເສດ AvengerUser ຜູ້ໃຊ້). ເບິ່ງ
ລາຍລະອຽດຂອງ ປ່ຽນເສັ້ນທາງ ໃນຄໍາອະທິບາຍການໂຕ້ຕອບ asmtpd/avenger ສໍາລັບການເພີ່ມເຕີມ
ຂໍ້ມູນກ່ຽວກັບ ປ່ຽນເສັ້ນທາງ (ນັບ​ຕັ້ງ​ແຕ່​ຫນ້າ​ທີ່​ນີ້​ໂດຍ​ກົງ invokes​ ປ່ຽນເສັ້ນທາງ ໃນ asmtpd).

ບັນຊີລາຍຊື່ສີຂີ້ເຖົ່າ [sender-key]
ຄໍາສັ່ງນີ້ defers mail ຄັ້ງທໍາອິດທີ່ໄດ້ຮັບ mail ຈາກຜູ້ສົ່ງໂດຍສະເພາະຢູ່ທີ່ a
ທີ່ຢູ່ IP ໂດຍສະເພາະ. ຢ່າງໃດກໍຕາມ, ຫຼັງຈາກໄລຍະເວລາທີ່ແນ່ນອນ, greylist_delay, ຖ້າຫາກວ່າ
ລູກຄ້າສົ່ງເມລຄືນໃຫມ່, ມັນຈະຖືກຍອມຮັບ. ນອກຈາກນັ້ນ, ຈາກຈຸດນັ້ນ, ທັງຫມົດ
mail ຈະຖືກຍອມຮັບທັນທີຈາກຜູ້ສົ່ງແລະທີ່ຢູ່ IP, ເວັ້ນເສຍແຕ່ວ່າຜູ້ສົ່ງ
ຢຸດການສົ່ງອີເມວເປັນໄລຍະເວລາ greylist_ttl2 ຫຼື​ຫຼາຍ​ກວ່າ. ຢ່າງໃດກໍຕາມ, ຫຼັງຈາກສົ່ງ
ໃນເບື້ອງຕົ້ນ, ສິ້ນຂອງ mail ເລື່ອນ, ລູກຄ້າບໍ່ໄດ້ພະຍາຍາມອີກເທື່ອຫນຶ່ງພາຍໃນໄລຍະເວລາຂອງ
greylist_ttl1, ຫຼັງຈາກນັ້ນ, ບັນທຶກໃດໆຂອງລູກຄ້າຈະຖືກລຶບ, ແລະໃນຄັ້ງຕໍ່ໄປ
ພະຍາຍາມສົ່ງອີເມວມັນຈະຖືກເລື່ອນໄປອີກ.

ພາລາມິເຕີສາມາດປັບໄດ້ໂດຍການຕັ້ງຄ່າຕົວແປໃນສະຄິບ. ຄ່າເລີ່ມຕົ້ນ
ແມ່ນ:

greylist_delay=30m # ເວລາລໍຖ້າກ່ອນທີ່ຈະອະນຸຍາດໃຫ້ຂໍ້ຄວາມ
greylist_ttl1=5h # ດົນປານໃດທີ່ຈະຈື່ຜູ້ສົ່ງຄັ້ງທໍາອິດ
greylist_ttl2=36D # ດົນປານໃດທີ່ຈະຈື່ຜູ້ສົ່ງ ok

m ຫມາຍ​ຄວາມ​ວ່າ​ນາ​ທີ​, h ຊົ່ວໂມງ, ແລະ D ມື້. ສໍາລັບບັນຊີລາຍຊື່ຄົບຖ້ວນຂອງຄໍາຕໍ່ທ້າຍທີ່ອະນຸຍາດໃຫ້, ເບິ່ງ
ເອ​ກະ​ສານ​ສໍາ​ລັບ​ການ​ dbutil(1) (ໂດຍສະເພາະສໍາລັບ --ໝົດອາຍຸ ທາງ​ເລືອກ).

sender-key, ຖ້າສະຫນອງ, ຖືກນໍາໃຊ້ເພື່ອກໍານົດຜູ້ສົ່ງ. ຄ່າເລີ່ມຕົ້ນແມ່ນ
"$CLIENT_IP $RECIPIENT $SENDER". ສໍາລັບຕົວຢ່າງ, ທ່ານຕ້ອງການບັນທຶກພຽງແຕ່ຄັ້ງທໍາອິດ
24-bits ຂອງທີ່ຢູ່ IP ແລະບໍ່ສົນໃຈຜູ້ຮັບ, ທ່ານສາມາດນໍາໃຊ້ຄໍາສັ່ງ:

ບັນຊີລາຍຊື່ສີຂີ້ເຖົ່າ "${CLIENT_IP%.*} $SENDER"

setvars
ຟັງຊັນທັງຫມົດທີ່ກໍານົດຕົວແປໂດຍການສອບຖາມພາຍນອກໄປຫາ asmtpd ແມ່ນ
ປະຕິບັດ asynchronously. setvars ຕົວຈິງແລ້ວລໍຖ້າຜົນໄດ້ຮັບແລະກໍານົດຄ່າຂອງ
ຕົວແປເຫຼົ່ານັ້ນ. ດ້ວຍວິທີນີ້, ຈໍານວນຄໍາຮ້ອງຂໍທີ່ອາດຈະຊ້າ (ເຊັ່ນ: DNS
lookups) ສາມາດລິເລີ່ມພ້ອມກັນໄດ້, ແລະເວລາ latencies ຂອງພວກມັນທັບຊ້ອນກັນ. ຢ່າງໃດກໍຕາມ, ຫນຶ່ງ
ຕ້ອງຈື່ຈໍາທີ່ຈະໂທຫາ setvars, ຫຼືຕົວແປອື່ນໆທີ່ຄວນຈະມີຜົນໄດ້ຮັບຂອງ
ການດໍາເນີນງານຈະຍັງຄົງບໍ່ໄດ້ຕັ້ງຄ່າ.

dns var ປະເພດ ຊື່ໂດເມນ
ດໍາເນີນການຊອກຫາ DNS ຂອງ ຊື່ໂດເມນ ສໍາ​ລັບ​ການ​ບັນ​ທຶກ​ຂອງ​ປະ​ເພດ​ ປະເພດ, ແລະມອບຫມາຍຜົນໄດ້ຮັບ
ການປ່ຽນແປງ var ໃນເວລາທີ່ທ່ານໂທຫາ setvars. ປະເພດ ຕ້ອງເປັນຫນຶ່ງໃນ a, mx, ptr, ຫຼື txt (ຕ່ໍາກວ່າ-
ກໍ​ລະ​ນີ​ເທົ່າ​ນັ້ນ).

rbl [-ipf] var ໂດເມນ
ຊອກຫາຜູ້ສົ່ງອີເມວໃນປະຈຸບັນຢູ່ໃນບັນຊີ blackhole ແບບສົດໆ (RBL). ໂດເມນ ເປັນ
ຊື່ໂດເມນຂອງ RBL (ເຊັ່ນ: "bl.spamcop.net"). ຖ້າຜູ້ສົ່ງມີລາຍຊື່, ຕັ້ງ var to
ຜົນຂອງການຄົ້ນຫາ DNS ເມື່ອທ່ານໂທຫາຄັ້ງຕໍ່ໄປ setvars. -i ຊອກຫາ IP ຂອງຜູ້ສົ່ງ
ທີ່ຢູ່ (ຄ່າເລີ່ມຕົ້ນຖ້າບໍ່ມີທາງເລືອກໃດຖືກລະບຸ). -p ຊອກຫາໂດເມນຂອງຜູ້ສົ່ງ
ຊື່ (ຢືນຢັນ DNS PTR ບັນທຶກ). -f ຊອກຫາຊື່ໂດເມນຜູ້ສົ່ງ envelope ໃນ
RBL.

spf0 var [spf-ກົນໄກ ... ]
spf var [spf-ກົນໄກ ... ]
ທົດສອບຜູ້ສົ່ງຕໍ່ກັບການສອບຖາມທີ່ກຳນົດເອງທີ່ສ້າງຂຶ້ນໃນພາສາ SPF. ນີ້​ແມ່ນ
ວິທີການທີ່ມີປະສິດທິພາບໃນບັນຊີຂາວຫຼືບັນຊີດໍາຜູ້ສົ່ງໂດຍສະເພາະ. ຕົວຢ່າງ, ສົມມຸດວ່າເຈົ້າ
ຕ້ອງ​ການ​ທີ່​ຈະ​ຮັບ​ເອົາ​ອີ​ເມລ​ຈາກ​ເຄື່ອງ​ຈັກ​ໃນ​ບັນ​ຊີ​ລາຍ​ການ​ຮັກ​ສາ​ໄວ້​ໂດຍ trusted-forwarder.org​,
ຍອມຮັບຈົດໝາຍຈາກຊື່ເຄື່ອງໃດນຶ່ງທີ່ລົງທ້າຍ "yahoo.com" ປະຕິເສດຈົດໝາຍຈາກຜູ້ໃຊ້ໃນ
spamcop RBL, ແລະສໍາລັບຜູ້ໃຊ້ອື່ນໆກັບຄືນໄປຫາກົດລະບຽບຂອງລະບົບມາດຕະຖານ. ເຈົ້າ
ອາດຈະໃຊ້ສິ່ງຕໍ່ໄປນີ້ rcpt file:

spf MYSPF +include:spf.trusted-forwarder.org
+ptr:yahoo.com -exists:%{ir}.bl.spamcop.net ?ທັງໝົດ
setvars
ກໍລະນີ "$MYSPF" ໃນ
ຜ່ານ)
ຍອມຮັບ "ຂ້ອຍມັກເຈົ້າ"
;;
ລົ້ມເຫລວ)
ປະຕິເສດ "ຂ້ອຍບໍ່ມັກເຈົ້າ"
;;
ຜິດ​ພາດ​)
# ຫມາຍເຫດ, ແທນທີ່ຈະສາມາດຕົກຢູ່ໃນຄ່າເລີ່ມຕົ້ນທີ່ນີ້
ເລື່ອນ "ຄວາມຜິດພາດ DNS ຊົ່ວຄາວ"
;;
ວ່າ C

ໃຫ້ສັງເກດວ່າຄໍາສັ່ງ spf0 ແລະ spf ແມ່ນຄໍາສັບຄ້າຍຄືກັນ, ແຕ່ spf ຖືກປະຕິເສດ, ເພາະວ່າໃນ a
ຕໍ່ມາການປ່ອຍ Mail Avenger spf ຈະກາຍເປັນຄໍາສັບຄ້າຍຄືກັນກັບ spf1.

spf1 var [spf-ກົນໄກ ... ]
ປະຕິບັດການທົດສອບດຽວກັນກັບ spf directive, ແຕ່ສົ່ງຜົນໄດ້ຮັບສະຕຣິງ ບໍ່ມີ,
ເປັນກາງ, ຜ່ານ, ເຊັ່ນການແລກປ່ຽນ, SoftFail, ອຸນ​ຫະ​ພູມ​ຜິດ​ພາດ, ແລະ ຜິດພາດ ແທນ​ທີ່ none, ເປັນກາງ,
ຜ່ານ, ບໍ່, ອ່ອນເພຍ, ຄວາມຜິດພາດ, ແລະ ຮູ້ຈັກ.

AVENGER ຄວາມຮັບຜິດຊອບ


ຕົວແປເຫຼົ່ານີ້ຖືກກໍານົດໂດຍ script avenger. ນອກຈາກນັ້ນ, asmtpd ກໍານົດຈໍານວນຂອງ
ຕົວແປສະພາບແວດລ້ອມກ່ອນທີ່ຈະແລ່ນ avenger. ເຫຼົ່ານີ້ແມ່ນເອກະສານໃນພາກຕໍ່ໄປ,
ສະພາບແວດລ້ອມ.

FILEX
ສ່ວນຂະຫຍາຍຢູ່ໃນໄຟລ໌ທີ່ກໍາລັງດໍາເນີນຢູ່. ຕົວຢ່າງ, ຖ້າໄຟລ໌ rcpt+ext is
ກຳລັງປະມວນຜົນ, ຈະຖືກຕັ້ງເປັນ "+ext". ຫວ່າງເປົ່າເມື່ອປະມວນຜົນພຽງແຕ່ rcpt (ຫຼື ອີເມວ).
ອາດຈະປະກອບດ້ວຍ Default ເມື່ອໄຟລ໌ກົດລະບຽບເລີ່ມຕົ້ນສໍາລັບບາງຄໍາຕໍ່ທ້າຍກໍາລັງດໍາເນີນການ.

PREFIX
ຫຍໍ້ໜ້າ
ສົມມຸດວ່າຕົວແຍກແມ່ນ "+", ເມື່ອປະມວນຜົນໄຟລ໌ rcpt+base+default or
mail+base+default, PREFIX ຖືກກໍານົດໃຫ້ ຖານ, ໃນຂະນະທີ່ ຫຍໍ້ໜ້າ ຖືກກໍານົດເປັນສ່ວນຂອງ
ຊື່​ສໍາ​ລັບ​ການ​ທີ່​ Default ຖືກປ່ຽນແທນ. ເມື່ອໄຟລ໌ບໍ່ສິ້ນສຸດດ້ວຍ Default,
ຫຍໍ້ໜ້າ ຫວ່າງເປົ່າ. ໃນເວລາທີ່ໄຟລ໌ແມ່ນພຽງແຕ່ rcpt ໂດຍບໍ່ມີການຂະຫຍາຍ, ທັງສອງ PREFIX ແລະ ຫຍໍ້ໜ້າ
ຫວ່າງເປົ່າ. ເມື່ອ​ໃດ​ ຫຍໍ້ໜ້າ ຕົວຂອງມັນເອງມີຕົວອັກສອນ "+", SUFFIX1 ປະກອບດ້ວຍສ່ວນ
of ຫຍໍ້ໜ້າ ຫຼັງຈາກຕົວອັກສອນ "+" ທໍາອິດ, SUFFIX2 ປະກອບດ້ວຍພາກສ່ວນຫຼັງຈາກທີສອງ
"+", ແລະອື່ນໆສໍາລັບແຕ່ລະຕົວ "+" ໃນຄໍາຕໍ່ທ້າຍ.

ENVIRONMENT


AUTH_USER
ຖ້າ Mail Avenger ຖືກລວບລວມດ້ວຍການສະຫນັບສະຫນູນ SASL (ເຊິ່ງບໍ່ແມ່ນຄ່າເລີ່ມຕົ້ນ, ເວັ້ນເສຍແຕ່ວ່າທ່ານ
ສະໜອງໃຫ້ --enable-sasl argument ກັບ "configure"), ແລະຖ້າຫາກວ່າລູກຄ້າສົບຜົນສໍາເລັດ
ຢືນຢັນກັບເຄື່ອງແມ່ຂ່າຍໂດຍໃຊ້ SASL, ຈາກນັ້ນ AUTH_USER ຈະຖືກຕັ້ງເປັນຊື່ຂອງ
ຜູ້ໃຊ້ທີ່ຢືນຢັນແລ້ວ.

AVENGER_MODE
ຕັ້ງເປັນ "rcpt" ເມື່ອທົດສອບວ່າຜູ້ຮັບຄວນໄດ້ຮັບຈົດໝາຍຫຼືບໍ່. ຕັ້ງເປັນ "mail"
(ອາດຈະເປັນຫຼັງຈາກການກວດສອບ "rcpt" ລົ້ມເຫລວ) ເມື່ອກວດເບິ່ງວ່າຈະສົ່ງຕໍ່ເມລ (ອາດຈະເປັນ.
ໃນນາມຂອງຜູ້ໃຊ້ທ້ອງຖິ່ນ).

AVUSER
ຊື່ຜູ້ໃຊ້ທ້ອງຖິ່ນທີ່ມີປະສິດທິພາບທີ່ avenger ກໍາລັງດໍາເນີນການ. ປົກກະຕິ, ນີ້ຈະເປັນ
ຄື​ກັນ​ກັບ:

$USER${PREFIX+$SEPARATOR}$PREFIX
${SUFFIX+$SEPARATOR}$SUFFIX

ຢ່າງໃດກໍຕາມ, ສໍາລັບໄຟລ໌ avenger ພິເສດເຊັ່ນ ຮູ້ຈັກ ແລະ Default, ມັນສາມາດປະກອບດ້ວຍທີ່ເປັນປະໂຫຍດ
ຂໍ້ມູນຂ່າວສານ, ເນື່ອງຈາກວ່າບໍ່ເຫມືອນກັບ RECIPIENT_LOCAL ການ​ປ່ຽນ​ແປງ​ສະ​ພາບ​ແວດ​ລ້ອມ​, AVUSER ສະທ້ອນໃຫ້ເຫັນ
ການທົດແທນຈາກ Mail Avenger ໂດເມນ ແລະ alias ໄຟລ໌.

CUSTOMER
ຕົວແປນີ້ມີຊື່ຂອງເຄື່ອງລູກຄ້າ, ຕາມປົກກະຕິລາຍງານໃນ
"ໄດ້ຮັບ:" ສ່ວນຫົວ. ຄ່າ​ຂອງ​ມັນ​ມີ​ຮູບ​ແບບ​:

[ຜູ້ໃຊ້@]ເຈົ້າພາບ

ຜູ້ໃຊ້ ແມ່ນຊື່ຜູ້ໃຊ້ສໍາລັບການເຊື່ອມຕໍ່ທີ່ລາຍງານໂດຍລູກຄ້າ, ຖ້າລູກຄ້າ
ສະຫນັບສະຫນູນອະນຸສັນຍາການກໍານົດ RFC 1413, ຖ້າບໍ່ດັ່ງນັ້ນມັນຖືກລະເວັ້ນ. ເຈົ້າພາບ ເປັນ
ຢືນຢັນ DNS hostname ສໍາລັບ IP, ຖ້າ asmtpd ສາມາດຊອກຫາໄດ້. ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນແມ່ນງ່າຍດາຍ
ທີ່ຢູ່ IP ຕົວເລກ.

CLIENT_COLONSPACE
ຕັ້ງເປັນ 1 ຖ້າລູກຄ້າລວມຊ່ອງຫວ່າງລະຫວ່າງຈໍ້າສອງເມັດໃນຄໍາສັ່ງ "MAIL FROM:"
ຫຼື "RCPT TO:" ແລະຕໍ່ໄປ "<" ທີ່ເລີ່ມຕົ້ນທີ່ຢູ່ອີເມວ.

CLIENT_DNSFAIL
If ອະນຸຍາດ DNSFail ຖືກກໍານົດເປັນ 1 ໃນ asmtpd.conf ໄຟລ໌ແລະການແກ້ໄຂ IP ຂອງລູກຄ້າເປັນ a
hostname ສົ່ງຄືນຂໍ້ຜິດພາດຊົ່ວຄາວ, ຫຼັງຈາກນັ້ນຕົວແປນີ້ຈະຖືກຕັ້ງເປັນຄໍາອະທິບາຍຂອງ
ຄວາມຜິດພາດ.

CLIENT_HELO
ຕັ້ງເປັນອາກິວເມັນທີ່ລູກຄ້າສະໜອງໃຫ້ກັບຄໍາສັ່ງ SMTP "HELO" ຫຼື "EHLO".

CLIENT_IP
ຕັ້ງເປັນທີ່ຢູ່ IP ຂອງລູກຄ້າ.

CLIENT_NAME
ຕັ້ງຄ່າເປັນຊື່ DNS ທີ່ຢືນຢັນຂອງລູກຄ້າ, ຖ້າ asmtpd ສາມາດຊອກຫາໄດ້.

CLIENT_NESHOPS
ກໍານົດເປັນຈໍານວນເຄືອຂ່າຍ hops ລະຫວ່າງເຄື່ອງແມ່ຂ່າຍແລະລູກຄ້າ, ຖ້າ asmtpd ສາມາດໄດ້ຮັບ
ລູກ​ຄ້າ​ຫຼື firewall ຂອງ​ຕົນ​ເພື່ອ​ກັບ​ຄືນ​ຈຸດ​ຫມາຍ​ປາຍ​ທາງ ICMP ທີ່​ບໍ່​ສາ​ມາດ​ໄປ​ເຖິງ (ປະ​ເພດ 3 packet​)
ໃນການຕອບສະຫນອງຕໍ່ການສືບສວນ UDP. ການຕັ້ງຄ່ານີ້ຫຼືບໍ່ແມ່ນຂຶ້ນກັບ Firewall
ການຕັ້ງຄ່າ.

CLIENT_NETPATH
ຕັ້ງເປັນ hops ເຄືອຂ່າຍຕົວກາງຫຼາຍເທົ່າທີ່ asmtpd ສາມາດກໍານົດລະຫວ່າງເຄື່ອງແມ່ຂ່າຍ
ແລະລູກຄ້າ. ວິທີການໃກ້ກັບລູກຄ້າ asmtpd ສາມາດສືບສວນຈະຂຶ້ນກັບ firewalls.

CLIENT_PIPELINING
ຕັ້ງຄ່າເປັນ 1 ຖ້າລູກຄ້າຂຽນຂໍ້ມູນຫຼັງຈາກ SMTP ຮໍ or EHLO ຄໍາສັ່ງ, ກ່ອນ
ໄດ້​ຮັບ​ການ​ຕອບ​ສະ​ຫນອງ​ຂອງ​ຕົນ​. ລູກຄ້າ SMTP ທີ່ຖືກຕ້ອງບໍ່ຄວນ "ທໍ່" ຄໍາສັ່ງຈົນກ່ວາ
ຫຼັງ​ຈາກ​ໄດ້​ຮັບ​ຜົນ​ຂອງ​ການ​ ຮໍ ຄໍາສັ່ງແລະການກວດສອບວ່າເຄື່ອງແມ່ຂ່າຍຍອມຮັບ
ຄໍາສັ່ງທໍ່.

CLIENT_PORT
ໝາຍເລກຜອດ TCP ຂອງລູກຄ້າ.

CLIENT_POST
ຕັ້ງຄ່າເປັນ 1 ຖ້າລູກຄ້າສົ່ງຄໍາສັ່ງ "POST" ໃນບາງຈຸດໃນລະຫວ່າງກອງປະຊຸມ SMTP.
"POST" ບໍ່ແມ່ນຄໍາສັ່ງ SMTP ທີ່ຖືກຕ້ອງ; ມັນເປັນຄໍາສັ່ງ HTTP. ຢ່າງໃດກໍຕາມ, ຫນຶ່ງໃນເຕັກນິກການ
ການສົ່ງ spam ກ່ຽວຂ້ອງກັບການຂຸດຄົ້ນເວັບໄຊທ໌ທີ່ເປີດເພື່ອ "ປະກາດ" ເຊດຊັນ SMTP ໄປຫາເມລ
ເຊີບເວີ. ຫົວ HTTP ເບື້ອງຕົ້ນ (ລວມທັງຄໍາສັ່ງ HTTP post) ພຽງແຕ່ເຮັດໃຫ້ເກີດ SMTP
syntax ຜິດພາດ, ໃນຂະນະທີ່ເນື້ອໃນຂອງຄໍາສັ່ງ POST ມີຄໍາສັ່ງ SMTP. ໂດຍການກວດສອບ
ໄດ້ CLIENT_POST ສະພາບແວດລ້ອມປ່ຽນແປງໄດ້, ໃຫ້ທ່ານປະຕິເສດຈົດໝາຍທີ່ສົ່ງມາດ້ວຍວິທີນີ້.

CLIENT_REVIP
ມູນຄ່າຂອງ CLIENT_IP ກັບຄໍາສັ່ງຂອງ bytes ປີ້ນກັບກັນ. ເຫມາະສໍາລັບ prepending
ໄປຫາ ".in-addr.arpa" ຫຼືໂດເມນ RBL ເພື່ອດໍາເນີນການຊອກຫາ DNS ໂດຍອີງໃສ່ທີ່ຢູ່ IP.

CLIENT_SYNFP
ປະກອບດ້ວຍລາຍນິ້ວມື, ເນື້ອໃນເນື້ອໃນຂອງຊຸດ TCP SYN ເບື້ອງຕົ້ນ
ລູກຄ້າສົ່ງເພື່ອສ້າງການເຊື່ອມຕໍ່ TCP. ເນື້ອໃນທີ່ແນ່ນອນຂອງແພັກເກັດ SYN
ຂຶ້ນກັບລະບົບປະຕິບັດການແລະສະບັບຂອງລູກຄ້າ, ແລະດັ່ງນັ້ນຈຶ່ງສາມາດເປີດເຜີຍໄດ້
ຂໍ້ມູນທີ່ຫນ້າສົນໃຈກ່ຽວກັບປະເພດຂອງລູກຄ້າທີ່ເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍເມລຂອງທ່ານ. ໄດ້
ຮູບແບບຂອງລາຍນິ້ວມືແມ່ນ:

www:ttt:D:ss:OOO

ບ່ອນທີ່ທົ່ງນາມີດັ່ງນີ້:

www
ຂະຫນາດຫນ້າຕ່າງ TCP ເບື້ອງຕົ້ນ

ttt IP ttl ຂອງແພັກເກັດທີ່ໄດ້ຮັບ

D IP "ບໍ່ fragment" bit

ss ຂະໜາດທັງໝົດຂອງແພັກເກັດ SYN (ລວມທັງສ່ວນຫົວ IP)

OOO ບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຕົວເລືອກ TCP, ດັ່ງຕໍ່ໄປນີ້:

N ທາງເລືອກ NOP

Wnnn
ທາງ​ເລືອກ​ການ​ຂະ​ຫຍາຍ​ປ່ອງ​ຢ້ຽມ​ທີ່​ມີ​ຄ່າ​ nnn

Mnnn
ຄ່າຂະໜາດສູງສຸດ nnn

S ເລືອກ ACK ຕົກລົງ

T ຕົວເລືອກເວລາ

T0 ຕົວເລືອກເວລາທີ່ມີຄ່າສູນ

CLIENT_SYNOS
ຖ້າ asmtpd ສາມາດເດົາລະບົບປະຕິບັດການຂອງລູກຄ້າໂດຍອີງໃສ່ CLIENT_SYNFP, ມັນຈະກໍານົດ
CLIENT_SYNOS ກັບມູນຄ່າຂອງການຄາດເດົານັ້ນ. ສໍາລັບຕົວຢ່າງ, ບັນຊີລາຍຊື່ greylist mail ຈາກ Windows
ເຄື່ອງຈັກ, ທ່ານສາມາດດໍາເນີນການ:

ຈັບຄູ່ -q "*Windows*" "$CLIENT_SYNOS" && ລາຍຊື່ສີເທົາ

DATA_BYTES
ຕົວແປນີ້ບໍ່ແມ່ນຕົວແປ avenger ແທ້ໆ, ເພາະວ່າມັນມີພຽງແຕ່ຢູ່ໃນ ກວດຮ່າງກາຍ
ຄໍາສັ່ງ. ມັນກໍານົດຈໍານວນ bytes ຂອງຂໍ້ຄວາມທີ່ຖືກໂອນຢູ່ໃນ SMTP DATA
ຄໍາສັ່ງ, ແຕ່ຫຼັງຈາກປ່ຽນລໍາດັບ CR NL ເປັນ NL. ເວົ້າປະມານນີ້ແມ່ນວິທີການ
ຫຼາຍ bytes ຢູ່ໃນຂໍ້ຄວາມລວມທັງ headers ທັງຫມົດຫຼັງຈາກ X-Avenger:, SPF-
ໄດ້ຮັບ, ຫຼືໄດ້ຮັບ: header.

ETCIR
ມູນຄ່າຂອງ ແລະອື່ນໆ ຈາກໄຟລ໌ການຕັ້ງຄ່າ astpd (ຫຼື /etc/avenger ໂດຍຄ່າເລີ່ມຕົ້ນ).

EXT ໃນເວລາທີ່ avenger ດໍາເນີນການໃນນາມຂອງຜູ້ໃຊ້ EXT ຖືກຕັ້ງເປັນສ່ວນຂອງທີ່ຢູ່ນັ້ນ
ກໍານົດຄໍາຕໍ່ທ້າຍຂອງ rcpt or ອີເມວ ໄຟລ໌. ຕົວຢ່າງ, ສົມມຸດ ແຍກຕ່າງຫາກ ແມ່ນ "-"
ແລະຜູ້ຮັບແມ່ນ list-subscribe@ເຈົ້າພາບ, ບ່ອນທີ່ ເຈົ້າພາບ ບໍ່ແມ່ນໂດເມນ virtual. ຖ້າ
AliasFile ບັນຈຸ:

ບັນຊີລາຍຊື່: user-mylist

ຫຼັງຈາກນັ້ນ, avenger ຈະຖືກດໍາເນີນການໃນນາມຂອງ "ຜູ້ໃຊ້" (ເນື່ອງຈາກວ່າ alias expansion yields. ຜູ້ໃຊ້-
mylist-ຈອງ). EXT ຈະຖືກຕັ້ງຄ່າໃຫ້ mylist-ຈອງ.

ໃຫ້ສັງເກດວ່າ EXT ແມ່ນຫວ່າງເປົ່າໃນເວລາທີ່ບໍ່ມີຄໍາຕໍ່ທ້າຍ, ແລະວ່າມັນເທົ່າກັບຊື່ຂອງ
ໄຟລ໌ລະບົບຈະຖືກປະມວນຜົນເມື່ອ avenger ຖືກແລ່ນຢູ່ໃນໄຟລ໌ລະບົບ. ມັກ ຜູ້ຮັບ,
ຕົວແປນີ້ບໍ່ໄດ້ຕັ້ງໄວ້ສໍາລັບ ກວດຮ່າງກາຍ ຄຳ ສັ່ງ.

ທີ່ສຸດ
ຕັ້ງເປັນຊື່ຂອງເຈົ້າພາບທ້ອງຖິ່ນ, ຕາມທີ່ລະບຸໄວ້ໂດຍ ຊື່ເຈົ້າພາບ ຄໍາສັ່ງໃນ
avenger.conf.

MAIL_ERROR
ຕົວແປນີ້ຖືກກໍານົດໃນເວລາທີ່ການຈັດຕໍາແຫນ່ງ SPF ຂອງຜູ້ສົ່ງແມ່ນ ບໍ່, ຫຼືເມື່ອ asmtpd ແມ່ນ
ບໍ່ສາມາດສົ່ງຂໍ້ຄວາມຕີໄປຫາທີ່ຢູ່ຜູ້ສົ່ງໄດ້. ໃນກໍລະນີໃດກໍ່ຕາມ, Mail Avenger
ຈະປະຕິເສດຈົດໝາຍຖ້າສະຄຣິບຕົກຢູ່ໃນຄ່າເລີ່ມຕົ້ນ.

MSGID
ສະຕຣິງທີ່ສ້າງຂຶ້ນແບບສຸ່ມສໍາລັບຂໍ້ຄວາມນີ້, ເຊິ່ງສາມາດເປັນປະໂຫຍດໃນການພົວພັນການໂທ
ເພື່ອ rcpt scripts ກັບ bodytest scripts. ກະລຸນາຮັບຊາບວ່າອັນນີ້ບໍ່ກ່ຽວຂ້ອງກັບ Message-ID
header ໃນຂໍ້ຄວາມ, ແຕ່ບໍ່ສະແດງຢູ່ໃນສ່ວນຫົວທີ່ໄດ້ຮັບວ່າ Mail Avenger
ສະແດງກິ່ງງ່າ.

MYIP
ທີ່ຢູ່ IP ຂອງຈຸດເຊື່ອມຕໍ່ທ້ອງຖິ່ນຂອງການເຊື່ອມຕໍ່ SMTP TCP.

MYPORT
ໝາຍເລກຜອດ TCP ຂອງຈຸດເຊື່ອມຕໍ່ທ້ອງຖິ່ນຂອງການເຊື່ອມຕໍ່ SMTP TCP. ປົກກະຕິນີ້ຈະເປັນ 25.

ຜູ້ຮັບ
ຜູ້ຮັບຊອງຈົດໝາຍ. ໃຫ້ສັງເກດວ່າຕົວແປສະພາບແວດລ້ອມນີ້ບໍ່ແມ່ນ
ປະຈຸບັນສໍາລັບ ກວດຮ່າງກາຍ ໂຄງການ, ເນື່ອງຈາກວ່າໂຄງການດັ່ງກ່າວອາດຈະດໍາເນີນການໃນນາມຂອງຫຼາຍ
ຜູ້ໃຊ້.

RECIPIENT_HOST
ສ່ວນໂດເມນຂອງ ຜູ້ຮັບ, ພັບເປັນຕົວພິມນ້ອຍ - ie, ເຈົ້າພາບ ໃນເວລາທີ່ ຜູ້ຮັບ is
ທ້ອງຖິ່ນ@ເຈົ້າພາບ. ບໍ່ມີສໍາລັບ ກວດຮ່າງກາຍ ບັນດາໂຄງການ, ດັ່ງທີ່ໄດ້ກ່າວໄວ້ໃນຄໍາອະທິບາຍຂອງ
ຜູ້ຮັບ.

RECIPIENT_LOCAL
ສ່ວນທ້ອງຖິ່ນຂອງ ຜູ້ຮັບ, ພັບເປັນຕົວພິມນ້ອຍ - ie, ທ້ອງຖິ່ນ ໃນເວລາທີ່ ຜູ້ຮັບ is
ທ້ອງຖິ່ນ@ເຈົ້າພາບ. ບໍ່ມີສໍາລັບ ກວດຮ່າງກາຍ ບັນດາໂຄງການ, ດັ່ງທີ່ໄດ້ກ່າວໄວ້ໃນຄໍາອະທິບາຍຂອງ
ຜູ້ຮັບ.

SENDER
ຜູ້ສົ່ງ envolope ຂອງຂໍ້ຄວາມ mail ນີ້ (ie, ການໂຕ້ຖຽງທີ່ສະຫນອງໂດຍລູກຄ້າ
ຄໍາສັ່ງ "MAIL FROM:" SMTP.)

SENDER_HOST
ສ່ວນຊື່ເຈົ້າພາບຂອງ SENDER, ປ່ຽນເປັນຕົວພິມນ້ອຍ (ie, ເຈົ້າພາບ in ຜູ້ໃຊ້@ເຈົ້າພາບ).

SENDER_LOCAL
ສ່ວນທ້ອງຖິ່ນຂອງ SENDER, ປ່ຽນເປັນຕົວພິມນ້ອຍ (ie, ຜູ້ໃຊ້ in ຜູ້ໃຊ້@ເຈົ້າພາບ).

SENDER_MXES
ບັນຊີລາຍຊື່ຂອງ DNS MX records ສໍາລັບ SENDER_HOST, ຖ້າຊື່ເຈົ້າພາບນັ້ນມີບັນທຶກ MX ໃດ.

SENDER_BOUNCEES
ສໍາລັບຜູ້ສົ່ງ envelope ທີ່ບໍ່ຫວ່າງເປົ່າ, asmtpd ພະຍາຍາມເບິ່ງວ່າມັນເປັນໄປໄດ້ທີ່ຈະສົ່ງ.
bounce ຂໍ້ຄວາມສໍາລັບຜູ້ສົ່ງ. ຖ້າ​ບໍ່, SENDER_BOUNCEES ຖືກຕັ້ງເປັນ SMTP ສາມຕົວເລກ
ລະ​ຫັດ​ຄວາມ​ຜິດ​ພາດ​. ຖ້າຕົວເລກທໍາອິດແມ່ນ 4, ຄວາມຜິດພາດແມ່ນຊົ່ວຄາວ. ຖ້າຕົວເລກທໍາອິດແມ່ນ
5, ຄວາມຜິດພາດແມ່ນຖາວອນ. ໃຫ້ສັງເກດວ່າຄວາມລົ້ມເຫຼວທີ່ຈະຍອມຮັບຂໍ້ຄວາມ bounce ແມ່ນພິຈາລະນາ
a MAIL_ERROR ດັ່ງທີ່ອະທິບາຍໄວ້ຂ້າງເທິງ, ແລະຈະເຮັດໃຫ້ຈົດໝາຍຖືກປະຕິເສດໂດຍຄ່າເລີ່ມຕົ້ນ.

SEPARATOR
ມູນຄ່າຂອງ ແຍກຕ່າງຫາກ ຈາກໄຟລ໌ການຕັ້ງຄ່າ astpd. ບໍ່ມີຄ່າເລີ່ມຕົ້ນ
(SEPARATOR ຈະບໍ່ຖືກກໍານົດຖ້າບໍ່ມີ ແຍກຕ່າງຫາກ ຖືກລະບຸໄວ້ໃນໄຟລ໌ການຕັ້ງຄ່າ).
ຢ່າງໃດກໍ່ຕາມ, ມັນຄວນຈະຖືກຕັ້ງຄ່າສໍາລັບ "+" ກັບ sendmail ແລະ "-" ກັບ qmail.

SPF 0
SPF ຜົນໄດ້ຮັບຂອງການປະຕິບັດການກວດສອບ SPF ໃນຂໍ້ຄວາມ. ຈະເປັນຫນຶ່ງໃນ: none, ເປັນກາງ,
ຜ່ານ, ບໍ່, ອ່ອນເພຍ, ຄວາມຜິດພາດ, ຫຼື ຮູ້ຈັກ. ໃຫ້ສັງເກດວ່າ SPF 0 ແລະ SPF ແມ່ນຄໍາສັບຄ້າຍຄືກັນ, ແຕ່
SPF ຖືກຍົກເລີກເນື່ອງຈາກການປ່ອຍ Mail Avenger ໃນອະນາຄົດ SPF ຄໍາສັບຄ້າຍຄືກັບ
SPF 1.

SPF 1
ຍັງຜົນຂອງການປະຕິບັດການກວດສອບ SPF ໃນຂໍ້ຄວາມ, ແຕ່ສົ່ງຄືນຊື່ທີ່ແຕກຕ່າງກັນ
ສໍາລັບຜົນໄດ້ຮັບ, ເພື່ອໃຫ້ເຫມາະສົມກັບການປັບປຸງໃຫມ່ຂອງອະນຸສັນຍາ SPF
ສະເພາະ. ຊື່ໃຫມ່ແມ່ນ ບໍ່ມີ, ເປັນກາງ, ຜ່ານ, ເຊັ່ນການແລກປ່ຽນ, SoftFail, ອຸນ​ຫະ​ພູມ​ຜິດ​ພາດ, ແລະ
ຜິດພາດ.

SPF_EXPL
ສາຍຄຳອະທິບາຍທີ່ໄປພ້ອມກັບສະຖານະ SPF ທີ່ບໍ່ດີ.

SSL_CIPHER
ຖ້າ Mail Avenger ໄດ້ຖືກລວບລວມໂດຍສະຫນັບສະຫນູນຄໍາສັ່ງ STARTTLS (ໂດຍໃຊ້
--enable-ssl ທາງເລືອກທີ່ຈະ "ຕັ້ງຄ່າ"), ແລະລູກຄ້າກໍາລັງຕິດຕໍ່ສື່ສານຜ່ານ SSL / TLS,
ຕົວແປນີ້ຈະມີຄໍາອະທິບາຍຂໍ້ຄວາມຂອງ algorithm.

SSL_CIPHER_BITS
SSL_ALG_BITS
SSL_CIPHER_BITS ມີຈໍານວນລະຫັດລັບທີ່ໃຊ້ໂດຍ SSL/TLS ciphers.
SSL_ALG_BITS ແມ່ນຈໍານວນບິດທີ່ໃຊ້ໂດຍ algorithm. ຕົວຢ່າງ, ຖ້າທ່ານແມ່ນ
ການນໍາໃຊ້ 128-bit RC4 ກັບ 88 bits ສົ່ງໃນ cleartext, SSL_CIPHER_BITS ຈະມີພຽງແຕ່ 40,
ເນື່ອງຈາກວ່ານັ້ນແມ່ນຄວາມປອດໄພທີ່ມີປະສິດທິພາບ, ໃນຂະນະທີ່ SSL_ALG_BITS ຈະເປັນ 128.

SSL_ISSUER
SSL_ISSUER_DN
ຖ້າລູກຄ້າໄດ້ຢືນຢັນຕົນເອງຢ່າງສໍາເລັດຜົນໂດຍໃຊ້ໃບຢັ້ງຢືນ SSL,
SSL_ISSUER ຈະຖືກຕັ້ງເປັນຊື່ທົ່ວໄປຂອງຜູ້ເຊັນໃບຢັ້ງຢືນ, ໃນຂະນະທີ່ SSL_ISSUER_DN
ຈະຖືກຕັ້ງເປັນຕົວແທນທີ່ຫນາແຫນ້ນຂອງຊື່ທີ່ໂດດເດັ່ນຂອງຜູ້ລົງນາມ. ໄດ້
ຊື່ທີ່ໂດດເດັ່ນແມ່ນຢູ່ໃນຮູບແບບຜົນຜະລິດໂດຍຄໍາສັ່ງ:

openssl x509 -noout -issuer -in cert.pem

ໃຫ້ສັງເກດວ່າຕົວແປນີ້ສ່ວນໃຫຍ່ແມ່ນເປັນປະໂຫຍດຖ້າຫາກວ່າ SSLCAcert ໄຟລ໌ທີ່ທ່ານໄດ້ມອບໃຫ້ Mail
Avenger ມີຫຼາຍກວ່າໜຶ່ງໃບຮັບຮອງ, ຫຼືເຊັນໃບຢັ້ງຢືນ CA ອື່ນໆ.
Mail Avenger ຈະບໍ່ຍອມຮັບໃບຢັ້ງຢືນລູກຄ້າຖ້າມັນບໍ່ໄດ້ຮັບຮູ້ຜູ້ລົງນາມ
ຂອງໃບຢັ້ງຢືນ.

SSL_SUBJECT
SSL_SUBJECT_DN
ຖ້າລູກຄ້າໄດ້ຢືນຢັນຕົນເອງຢ່າງສໍາເລັດຜົນໂດຍໃຊ້ໃບຢັ້ງຢືນ SSL,
SSL_SUBJECT ຈະຖືກຕັ້ງເປັນຊື່ທົ່ວໄປຂອງລູກຄ້າໃນໃບຢັ້ງຢືນ, ໃນຂະນະທີ່
SSL_SUBJECT_DN ຈະຖືກຕັ້ງເປັນຕົວແທນທີ່ຫນາແຫນ້ນຂອງເຕັມຂອງລູກຄ້າ
ຊື່ທີ່ໂດດເດັ່ນ. ຊື່ທີ່ໂດດເດັ່ນເຕັມທີ່ແມ່ນຢູ່ໃນຮູບແບບຜົນຜະລິດໂດຍຄໍາສັ່ງ:

openssl x509 -noout -subject -in cert.pem

SSL_VERSION
ເວີຊັນຂອງໂປຣໂຕຄໍ SSL/TLS ທີ່ໃຊ້ຢູ່.

UFLINE
ແຖວ mbox "From" ເໝາະສຳລັບການສົ່ງຕໍ່ຂໍ້ຄວາມກ່ອນສົ່ງຂໍ້ຄວາມ
ກັບໂຄງການຈັດສົ່ງ. (ນີ້ສ່ວນໃຫຍ່ແມ່ນເປັນປະໂຫຍດສໍາລັບກົດລະບຽບການສອບເສັງຮ່າງກາຍ.)

ຜູ້ໃຊ້
ຊື່ຂອງຜູ້ໃຊ້ພາຍໃຕ້ການທີ່ avenger ກໍາລັງດໍາເນີນການ.

AVENGER/ASMTPD INTERFACE


avenger ແມ່ນພຽງແຕ່ script shell ງ່າຍດາຍ. ທ່ານສາມາດກວດສອບໄຟລ໌ເພື່ອເບິ່ງວ່າມັນກໍາລັງເຮັດຫຍັງ.
ສ່ວນໃຫຍ່ຂອງການດໍາເນີນງານທີ່ຫນ້າສົນໃຈເກີດຂຶ້ນໃນ astpd, ຫຼືໃນໂຄງການພາຍນອກ
spawned ຈາກ avenger. ພາກນີ້ບັນທຶກການໂຕ້ຕອບລະຫວ່າງ asmtpd ແລະ avenger.

avenger ສືບທອດ socket unix-domain ເຊື່ອມຕໍ່ກັບ asmtpd ໃນການປ້ອນຂໍ້ມູນມາດຕະຖານຂອງມັນແລະ
ຜົນຜະລິດ. ມັນສົ່ງຄໍາສັ່ງໄປຫາ asmtpd ຜ່ານຊັອກເກັດນີ້, ແລະເຊັ່ນດຽວກັນຈະອ່ານຄໍາຕອບຈາກ
ມັນ. ເພື່ອຫຼີກເວັ້ນການປະສົມຂໍ້ຄວາມໄປຫາແລະຈາກ asmtpd ກັບຜົນຜະລິດຂອງອື່ນໆ
ໂຄງການທີ່ທ່ານດໍາເນີນການ, ແນວໃດກໍ່ຕາມ, script avenger shell reorganizes ຕົວອະທິບາຍໄຟລ໌ຂອງມັນ
ວ່າການສື່ສານທັງຫມົດໄປຫາແລະຈາກ asmtpd ເກີດຂຶ້ນໃນໄລຍະໄຟລ໌ descriptor number 3.

ແຕ່​ລະ​ຄໍາ​ສັ່ງ​ປະ​ກອບ​ດ້ວຍ​ເສັ້ນ​ດຽວ​, ປະ​ຕິ​ບັດ​ຕາມ​ດ້ວຍ​ເສັ້ນ​ໃຫມ່ (ຍົກ​ເວັ້ນ​ ການກັບຄືນມາ ຄໍາສັ່ງ,
ເຊິ່ງສາມາດເລືອກໄດ້ຫຼາຍສາຍ). ອາດຈະມີຫຼືອາດຈະບໍ່ມີຄໍາຕອບ, ເປັນໄປໄດ້
ຂຶ້ນຢູ່ກັບຜົນໄດ້ຮັບຂອງຄໍາສັ່ງ. ການຕອບກັບສ່ວນໃຫຍ່ປະກອບດ້ວຍສູນ ຫຼືຫຼາຍກວ່າແຖວຂອງ
ແບບຟອມ

ຄວາມເປັນໄປໄດ້=ມູນຄ່າ

ຄວາມເປັນໄປໄດ້ ປົກກະຕິແລ້ວແມ່ນຊື່ຕົວແປທີ່ສະຫນອງໃຫ້ເປັນສ່ວນຫນຶ່ງຂອງຄໍາສັ່ງ. ໄດ້
avenger shell script ບັນທຶກຜົນໄດ້ຮັບໂດຍການຕັ້ງຄ່າຕົວແປສະພາບແວດລ້ອມ ຄວາມເປັນໄປໄດ້ to
ມູນຄ່າ, ເພື່ອໃຫ້ມັນສາມາດເຂົ້າເຖິງໄດ້ໂດຍສາຍຕໍ່ໄປຂອງ script.

ຄໍາຕອບຖືກສົ່ງຕາມລໍາດັບທີ່ໄດ້ຮັບຄໍາສັ່ງທີ່ສອດຄ້ອງກັນ. ແນວໃດກໍ່ຕາມ,
asmtpd ປະຕິບັດການຮ້ອງຂໍ asynchronously. ດັ່ງນັ້ນ, ຫນຶ່ງສາມາດປະຕິບັດຫຼາຍ concurrent
ການດໍາເນີນງານ (ເຊັ່ນການຮ້ອງຂໍ DNS ຫຼືການທົດສອບ SPF) ໂດຍພຽງແຕ່ຂຽນຄໍາສັ່ງຫຼາຍໄປຫາ
asmtpd ກ່ອນທີ່ຈະໄດ້ຮັບການຕອບສະຫນອງໃດໆ.

"." ຄໍາສັ່ງແມ່ນ no-op, ແຕ່ asmtpd ສະທ້ອນເຖິງ "." ກັບຄືນໄປບ່ອນ avenger ເປັນການຕອບ. ນີ້
ອະນຸຍາດໃຫ້ຫນຶ່ງເພື່ອ synchronize ສະຖານະຂອງຂະບວນການ avenger ຫຼັງຈາກອອກຫນຶ່ງຫຼືຫຼາຍຄໍາສັ່ງ.
ຕົວຢ່າງ, ຫນຶ່ງອາດຈະອອກການຄົ້ນຫາ DNS ຫຼາຍເພື່ອກວດເບິ່ງ RBLs ຕ່າງໆ (ເວລາຈິງ
blackhole lists), ຫຼັງຈາກນັ້ນອອກ a . ຄໍາສັ່ງ, ຫຼັງຈາກນັ້ນລໍຖ້າການຕອບ. ໃນ​ເວ​ລາ​ທີ່ . ກັບມາ,
ຄໍາສັ່ງທັງຫມົດທີ່ຜ່ານມາຍັງຈະສໍາເລັດ. ຜູ້ແກ້ແຄ້ນ setvars ຄໍາສັ່ງພຽງແຕ່ສົ່ງ
a ".", ຫຼັງຈາກນັ້ນ loops ຈົນກ່ວາມັນອ່ານກັບຄືນໄປບ່ອນ ".", ກໍານົດຕົວແປຈາກທີ່ຜ່ານມາ
ຄໍາສັ່ງທີ່ມີຄໍາຕອບທີ່ມັນອ່ານຢູ່ໃນຂະບວນການ.

ຄໍາສັ່ງຕໍ່ໄປນີ້ສາມາດໃຊ້ໄດ້:

. ໄດ້ . ຄໍາສັ່ງຖືກສະທ້ອນຄືນພຽງແຕ່ໂດຍ asmtpd.

ກວດຮ່າງກາຍ ຄໍາສັ່ງ
ສິ້ນສຸດສະຄຣິບ avenger ໃນປັດຈຸບັນ. ລະບຸວ່າ asmtpd ຄວນໄດ້ຮັບຮ່າງກາຍທັງໝົດ
ຂອງຂໍ້ຄວາມ, ຫຼັງຈາກນັ້ນດໍາເນີນການ ຄໍາສັ່ງ (ພາຍໃຕ້ ID ຜູ້ໃຊ້ດຽວກັນກັບ avenger ໃນປັດຈຸບັນ
script) ກັບຂໍ້ຄວາມ mail ທັງຫມົດເປັນການປ້ອນມາດຕະຖານຂອງມັນ. asmtpd ຫຼັງຈາກນັ້ນຕອບກັບ
ຄໍາສັ່ງ SMTP "DATA" ໂດຍອີງໃສ່ສະຖານະການອອກຂອງ ຄໍາສັ່ງ ດັ່ງຕໍ່ໄປນີ້:

0 ຖ້າ ຄໍາສັ່ງ ອອກຈາກສະຖານະ 0, asmtpd ຈະຕອບກັບຄໍາສັ່ງ "DATA" ກັບ
ສໍາເລັດ (ລະຫັດ SMTP 250), ແລະຈະຜ່ານຂໍ້ຄວາມທີ່ຈະ sendmail (ຫຼືອັນໃດກໍ່ຕາມ
ໄດ້ configured ເປັນ ສົ່ງອີເມວ in asmtpd.conf) ສໍາລັບການຈັດສົ່ງ.

99 ຖ້າ ຄໍາສັ່ງ ອອກຈາກສະຖານະ 99, asmtpd ຈະຍັງຄົງຕອບກັບຄໍາສັ່ງ "DATA".
ດ້ວຍລະຫັດຕອບ 250 ສົບຜົນສໍາເລັດ, ແຕ່ຈະບໍ່ spool ຂໍ້ມູນ. ບໍ່ວ່າຈະ ຄໍາສັ່ງ
ຕ້ອງໄດ້ເຮັດບາງສິ່ງບາງຢ່າງກັບຂໍ້ມູນ, ບໍ່ດັ່ງນັ້ນຂໍ້ຄວາມຈະສູນເສຍໄປ.

100 (ຍັງ 64, 65, 70, 76, 77, 78, 112)
If ຄໍາສັ່ງ ອອກຈາກສະຖານະພາບ 100 (ຫຼືສະຖານະການອອກຈາກຂ້າງເທິງ), avenger ຈະ
ປະຕິເສດຈົດໝາຍດ້ວຍຄວາມຜິດພາດ SMTP ຍາກ (ລະຫັດ 554). ຖ້າ ຄໍາສັ່ງ ຂຽນຜົນຜະລິດຂອງຕົນ
ຜົນຜະລິດມາດຕະຖານ, ຜົນໄດ້ຮັບນີ້ຈະຖືກສົ່ງກັບລູກຄ້າເມລ. ຖ້າບໍ່ດັ່ງນັ້ນ,
asmtpd ຈະສະຫນອງຂໍ້ຄວາມ "ເນື້ອໃນຂໍ້ຄວາມຖືກປະຕິເສດ."

111 (ຫຼືສະຖານະການອອກອື່ນໆ)
If ຄໍາສັ່ງ ອອກຈາກສະຖານະ 111, ຜົນໄດ້ຮັບແມ່ນຄືກັນກັບສະຖານະການອອກ 100,
ຍົກເວັ້ນວ່າ asmtpd ຈະໃຊ້ລະຫັດຂໍ້ຜິດພາດຊົ່ວຄາວ (451) ແທນ 554.

signal
If ຄໍາສັ່ງ ອອກຜິດປົກກະຕິເນື່ອງຈາກສັນຍານ, asmtpd ຍັງຈະໃຊ້ 451, ແຕ່ໃນ
ກໍລະນີນີ້ຈະບໍ່ສົ່ງຜົນໄດ້ຮັບຂອງໂຄງການກັບຄືນໄປຫາລູກຄ້າ. ມັນຈະແທນທີ່ຈະ
ສົ່ງຄືນລາຍລະອຽດຂອງບັນຫາ.

ໃຫ້ສັງເກດວ່າ asmtpd ສາມາດແລ່ນໄດ້ອັນດຽວເທົ່ານັ້ນ ກວດຮ່າງກາຍ ຄໍາສັ່ງຕໍ່ຂໍ້ຄວາມ. ຖ້າມີຫຼາຍ
ຜູ້ຮັບຂໍ້ຄວາມ, ທຸກຄົນຕ້ອງດໍາເນີນການຄືກັນ ກວດຮ່າງກາຍ ພາຍໃຕ້ ID ຜູ້ໃຊ້ດຽວກັນ. ຖ້າ
ຜູ້ໃຊ້ສອງຄົນຕ້ອງການດໍາເນີນການທີ່ແຕກຕ່າງກັນ ກວດຮ່າງກາຍ ຄໍາສັ່ງ, ຫຼືແມ້ກະທັ້ງດໍາເນີນການຄໍາສັ່ງດຽວກັນພາຍໃຕ້
ID ຜູ້ໃຊ້ທີ່ແຕກຕ່າງກັນ, asmtpd ຈະເລື່ອນຄໍາສັ່ງ SMTP "RCPT" ທີສອງດ້ວຍຂໍ້ຄວາມ:

452 ສົ່ງຂໍ້ຄວາມແຍກຕ່າງຫາກໄປຫາຜູ້ໃຊ້ນີ້

ອັນນີ້ຈະເຮັດໃຫ້ລູກຂ່າຍເມລສົ່ງຂໍ້ຄວາມຄືນໃຫ້ຜູ້ໃຊ້ທີສອງພາຍຫຼັງ. ເຖິງ
ຫຼີກເວັ້ນການບັງຄັບໃຫ້ລູກຄ້າສົ່ງຂໍ້ຄວາມຫຼາຍສະບັບ, ທ່ານສາມາດວາງ ກວດຮ່າງກາຍ
ຄໍາ​ສັ່ງ​ໃນ​ໄຟລ​໌​ກວ້າງ​ຂອງ​ລະ​ບົບ (ເຊັ່ນ​: Default rule file), ຫຼືໃຊ້ a ປ່ຽນເສັ້ນທາງ
ຄໍາສັ່ງທີ່ຈະໂອນໄປຫາ AvengerUser, ດັ່ງນັ້ນຄໍາສັ່ງສໍາລັບຜູ້ໃຊ້ຫຼາຍຄົນສາມາດດໍາເນີນການໄດ້
ພາຍ​ໃຕ້​ການ AvengerUser ID ຜູ້ໃຊ້.

ໃຫ້ສັງເກດວ່າໄຟລ໌ descriptor 0 ສືບທອດໂດຍ ຄໍາສັ່ງ ແມ່ນເປີດສໍາລັບການອ່ານແລະ
ການ​ຂຽນ. ດັ່ງນັ້ນ, ມັນເປັນໄປໄດ້ທີ່ຈະດັດແປງຂໍ້ຄວາມກ່ອນທີ່ຈະຖືກ spooled ໂດຍທ້ອງຖິ່ນ
MTA. ຄໍາສັ່ງ edinplace(1) ເປັນປະໂຫຍດສໍາລັບການແລ່ນຂໍ້ຄວາມຜ່ານການກັ່ນຕອງຂີ້ເຫຍື້ອ
ທີ່ຂຽນຫຍໍ້ຂໍ້ຄວາມກ່ອນທີ່ຈະ spooling ເຂົາເຈົ້າ.

dns-a ຄວາມເປັນໄປໄດ້ ຊື່ໂດເມນ
ຮ້ອງຂໍໃຫ້ asmtpd ດໍາເນີນການຊອກຫາ DNS ສໍາລັບ A (ທີ່ຢູ່ IPv4) ບັນທຶກຢູ່ໃນ ຊື່ໂດເມນ.
ຖ້າມີບັນທຶກ A ດັ່ງກ່າວ, ຄໍາຕອບແມ່ນບັນຊີລາຍຊື່ຂອງຫນຶ່ງຫຼືຫຼາຍທີ່ຢູ່ IP:

ຄວາມເປັນໄປໄດ້=ທີ່ຢູ່ IP ...

ຖ້າບໍ່ມີບັນທຶກ A ດັ່ງກ່າວ, ຄໍາຕອບແມ່ນງ່າຍດາຍ:

ຄວາມເປັນໄປໄດ້=

ດ້ວຍ script avenger ມາດຕະຖານ, ຊຸດນີ້ ຄວາມເປັນໄປໄດ້ ໄປຫາສາຍທີ່ຫວ່າງເປົ່າ. ຖ້າມີ
ຂໍ້ຜິດພາດຊົ່ວຄາວໃນການແກ້ໄຂຊື່ DNS, ບໍ່ມີຄໍາຕອບ, ແລະດ້ວຍເຫດຜົນນີ້
script avenger ເລີ່ມຕົ້ນ ຄວາມເປັນໄປໄດ້ ຈະຍັງຄົງບໍ່ໄດ້ຕັ້ງ.

ເມື່ອກວດເບິ່ງສິ່ງຕ່າງໆເຊັ່ນ RBLs, ຄວນແນະນໍາໃຫ້ບໍ່ປະຕິເສດເມລຍ້ອນ a
DNS ຜິດພາດຊົ່ວຄາວ. ທ່ານສາມາດນໍາໃຊ້ shell ກໍ່ສ້າງ ${ຄວາມເປັນໄປໄດ້-Default}$ ເພື່ອກັບຄືນ
$ຄວາມເປັນໄປໄດ້ ໃນເວລາທີ່ ຄວາມເປັນໄປໄດ້ ຖືກກໍານົດ, ແລະ Default ໃນເວລາທີ່ ຄວາມເປັນໄປໄດ້ ບໍ່ໄດ້ຕັ້ງ. ເຊັ່ນດຽວກັນ
${ຄວາມເປັນໄປໄດ້+ທີ່ກໍານົດໄວ້} ກັບຄືນມາ ທີ່ກໍານົດໄວ້ if ຄວາມເປັນໄປໄດ້ ຖືກຕັ້ງ, ແລະສາຍທີ່ຫວ່າງເປົ່າ.

ຕົວຢ່າງ, ຖ້າ bad-senders.org ມີ RBL ຂອງເຈົ້າພາບຜູ້ສົ່ງທີ່ບໍ່ຕ້ອງການ:

echo dns-a BADSENDER "$SENDER_HOST.bad-senders.org >&3
setvars
test -n "$BADSENDER" && ປະຕິເສດ "$SENDER_HOST ເປັນຜູ້ສົ່ງທີ່ບໍ່ດີ"
ທົດສອບ -z "${BADSENDER+set}"
&& ເລື່ອນ "$SENDER_HOST.bad-senders.org: DNS error"

ໃຫ້ສັງເກດວ່າເມື່ອໃຊ້ script avenger, ມີຟັງຊັນແລ້ວ rbl ການກວດສອບ
RBLs.

dns-mx ຄວາມເປັນໄປໄດ້ ຊື່ໂດເມນ
ຄ້າຍ​ຄື​ກັບ dns-a, ແຕ່ຊອກຫາບັນທຶກ MX. ຄໍາຕອບທີ່ປະສົບຜົນສໍາເລັດແມ່ນໃນຮູບແບບ:

ຄວາມເປັນໄປໄດ້=ບູລິມະສິດ-1:ເຈົ້າພາບ-1 [ບູລິມະສິດ-2:ເຈົ້າພາບ-2 ... ]

ບ່ອນທີ່ ບູລິມະສິດ-1 ແມ່ນບູລິມະສິດ MX ຂອງ ເຈົ້າພາບ-1. ດັ່ງທີ່ຜ່ານມາ, ສາຍເປົ່າຊີ້ບອກ
ບໍ່ມີບັນທຶກ MX, ແລະບໍ່ມີການຕອບກັບສະແດງຂໍ້ຜິດພາດ.

dns-ptr ຄວາມເປັນໄປໄດ້ ທີ່ຢູ່ IP
ສົ່ງຄືນລາຍຊື່ຂອງ DNS hostnames ທີ່ຢືນຢັນແລ້ວສໍາລັບ ທີ່ຢູ່ IP. ດັ່ງ​ທີ່​ຜ່ານ​ມາ​, ເປັນ​ສາຍ​ເປົ່າ​
ສໍາລັບການ ຄວາມເປັນໄປໄດ້ ສະແດງໃຫ້ເຫັນວ່າບໍ່ມີບັນທຶກ PTR, ແລະບໍ່ມີການຕອບກັບສະແດງຂໍ້ຜິດພາດ.

dns-txt ຄວາມເປັນໄປໄດ້ ຊື່ໂດເມນ
ຄ້າຍຄືກັນກັບອື່ນໆ dns ຄໍາສັ່ງ, ແຕ່ຊອກຫາບັນທຶກປະເພດ TXT. ຖ້າຫຼາຍ TXT
ບັນທຶກມີຢູ່, ກັບຄືນມາພຽງແຕ່ອັນດຽວ. ວາງຂໍ້ຈໍາກັດບາງຢ່າງກ່ຽວກັບບັນທຶກ TXT, ສໍາລັບ
ຕົວຢ່າງຈະບໍ່ສົ່ງຄືນອັນທີ່ມີຕົວອັກສອນແຖວໃໝ່.

netpath ຄວາມເປັນໄປໄດ້ ທີ່ຢູ່ IP
ແຜນທີ່ອອກເຄືອຂ່າຍ hops ກັບ ທີ່ຢູ່ IP (ອັນນີ້ແມ່ນຄ້າຍຄືກັນກັບລະບົບ traceroute
ຜົນປະໂຫຍດ, ແຕ່ປະສິດທິພາບຫຼາຍ). ຄໍາຕອບແມ່ນໃນຮູບແບບ:

ຄວາມເປັນໄປໄດ້=#hops hop1 hop2 ...

#hops ແມ່ນຈໍານວນທັງຫມົດຂອງເຄືອຂ່າຍ hops ກັບ ທີ່ຢູ່ IP ຖ້າ asmtpd ສາມາດຄິດໄດ້.
(ມັນ​ບໍ່​ສາ​ມາດ​ສະ​ເຫມີ​ໄປ​ຖ້າ​ຫາກ​ວ່າ​ ທີ່ຢູ່ IP ແມ່ນຢູ່ຫລັງ firewall.) ຖ້າ asmtpd ບໍ່ສາມາດ
ຄິດໄລ່ນີ້, ມູນຄ່າແມ່ນ -1. hop1 ແລະການໂຕ້ຖຽງທີ່ຍັງເຫຼືອແມ່ນທີ່ຢູ່
ຂອງ routers ຕາມວິທີການ ທີ່ຢູ່ IP.

ປ່ຽນເສັ້ນທາງ ທ້ອງຖິ່ນ
ຢຸດຂະບວນການແກ້ແຄ້ນປະຈຸບັນ, ແລະແທນທີ່ຈະປະມວນຜົນຈົດໝາຍຄືກັບວ່າມັນເປັນ
ຖືກສົ່ງໄປຫາ ທ້ອງຖິ່ນ. ຄໍາສັ່ງນີ້ແມ່ນມີພຽງແຕ່ຢູ່ໃນໂຫມດ "rcpt", ກົງກັນຂ້າມກັບ
ໂຫມດ "mail" (ໃນທີ່ asmtpd ແລ່ນ avenger ເພື່ອເບິ່ງວ່າມັນຄວນຈະ relay mail ສໍາລັບທ້ອງຖິ່ນ.
ຜູ້ໃຊ້ຢູ່ໃນເຄື່ອງລູກຄ້າທີ່ບໍ່ແມ່ນທ້ອງຖິ່ນ).

ທ້ອງຖິ່ນ ສາມາດເປັນຊື່ຜູ້ໃຊ້ທ້ອງຖິ່ນ, ຫຼືຊື່ຜູ້ໃຊ້ທ້ອງຖິ່ນປະຕິບັດຕາມໂດຍຕົວແຍກ
ລັກສະນະແລະການຂະຫຍາຍ. ຊື່ຖືກສ້າງແຜນທີ່ໂດຍໃຊ້ alias (ລະບຸໂດຍ
AliasFile in asmtpd.conf).

ໃຫ້ສັງເກດວ່າໃນຂະນະທີ່ AvengerUser ຜູ້ໃຊ້ສາມາດປ່ຽນເສັ້ນທາງໄປຫາຜູ້ໃຊ້ອື່ນໆ, ຜູ້ໃຊ້ທົ່ວໄປສາມາດເຮັດໄດ້
ພຽງແຕ່ປ່ຽນເສັ້ນທາງໄປຫາຕົນເອງຫຼື AvengerUser.

ການກັບຄືນມາ ລະຫັດ ຄໍາອະທິບາຍ
or
ການກັບຄືນມາ ລະຫັດ-ຄໍາອະທິບາຍ
ລະຫັດ-ຄໍາອະທິບາຍ
ລະຫັດ ຄໍາອະທິບາຍ
ລະບຸການຕອບສະໜອງ SMTP ທີ່ຕ້ອງການ. ນອກຈາກນີ້ຍັງຫຼີກເວັ້ນການປະມວນຜົນເພີ່ມເຕີມຂອງຂໍ້ຄວາມ
ກັບຊຸດກົດລະບຽບມາດຕະຖານທົ່ວລະບົບ (ຕາມປົກກະຕິຈະເກີດຂຶ້ນເມື່ອ avenger ອອກມາພຽງແຕ່
ສະຖານະພາບ 0). ລະຫັດ ຕ້ອງເປັນຕົວເລກສາມຕົວເລກເລີ່ມຕົ້ນ 2, 4, ຫຼື 5. (ປົກກະຕິແມ່ນ 250 ສໍາລັບ
ຜົນສໍາເລັດ, 451 ເພື່ອເລື່ອນ mail, ແລະ 554 ປະຕິເສດເມລ).

ຮູບແບບທໍາອິດຂອງຄໍາສັ່ງນີ້ (ມີຊ່ອງຫວ່າງລະຫວ່າງ ລະຫັດ ແລະ ຄໍາອະທິບາຍ) ໃຫ້ ກ
ຄໍາອະທິບາຍເສັ້ນດຽວພ້ອມກັບລະຫັດຜົນໄດ້ຮັບ. ໃນຮູບແບບທີສອງ, avenger
ກໍານົດການຕອບສະຫນອງຫຼາຍແຖວ. ໃນກໍລະນີນີ້ທັງຫມົດແຕ່ວ່າແຖວສຸດທ້າຍຕ້ອງມີ a -
ລະຫວ່າງ ລະຫັດ ແລະ ຄໍາອະທິບາຍ, ໃນຂະນະທີ່ແຖວສຸດທ້າຍຕ້ອງມີຊ່ອງຫວ່າງ. (ຫມາຍ​ເຫດ​
ວ່າ ການກັບຄືນມາ ຄໍາສໍາຄັນພຽງແຕ່ປາກົດຢູ່ໃນແຖວທໍາອິດ; ຫຼັງຈາກເລີ່ມອອກ ກ
ການກັບຄືນມາ ຄໍາສັ່ງ, ບໍ່ມີຄໍາສັ່ງເພີ່ມເຕີມສາມາດອອກໄດ້.)

spf ຄວາມເປັນໄປໄດ້ ກົນໄກ SPF ...
spf0 ຄວາມເປັນໄປໄດ້ ກົນໄກ SPF ...
spf1 ຄວາມເປັນໄປໄດ້ ກົນໄກ SPF ...
ປະເມີນລູກຄ້າເມລໂດຍອີງໃສ່ກົນໄກ SPF. ມັນຈະກັບຄືນມາ:

ຄວາມເປັນໄປໄດ້=ການສະຫນອງ

ບ່ອນໃດ, ສໍາລັບ spf0, ການສະຫນອງ ແມ່ນ​ຫນຶ່ງ​ໃນ​: none, ເປັນກາງ, ຜ່ານ, ບໍ່, ອ່ອນເພຍ, ຄວາມຜິດພາດ,
or ຮູ້ຈັກ (ເຖິງ​ແມ່ນ​ວ່າ​ການ​ຈັດ​ຕັ້ງ​ none ຕົວຈິງແລ້ວເປັນໄປບໍ່ໄດ້). ສໍາລັບ spf1, ການ
ທຽບເທົ່າ ການສະຫນອງ ຊື່ແມ່ນ ບໍ່ມີ, ເປັນກາງ, ຜ່ານ, ເຊັ່ນການແລກປ່ຽນ, SoftFail, ອຸນ​ຫະ​ພູມ​ຜິດ​ພາດ,
ຜິດພາດ. (ປະຈຸບັນ spf ແມ່ນຄໍາສັບຄ້າຍຄືສໍາລັບ spf0, ແຕ່ແນະນໍາໃຫ້ທ່ານຫຼີກເວັ້ນ
ການນໍາໃຊ້ spf ໃນການປ່ອຍໃນອະນາຄົດມັນອາດຈະກາຍເປັນນາມແຝງ spf1.)

ຕົວຢ່າງ, ສົມມຸດວ່າຊື່ຜູ້ໃຊ້ຂອງທ່ານແມ່ນ "joe", ແຍກຕ່າງຫາກ ແມ່ນ "+", ແລະທ່ານມີ
ສະໝັກໃຊ້ລາຍຊື່ອີເມວຂອງ yahoo ໂດຍໃຊ້ທີ່ຢູ່ອີເມວ "joe+yahoo". ຖ້າ
spammers ເລີ່ມສົ່ງອີເມວໄປຫາ "joe+yahoo", ທ່ານຕ້ອງການປະຕິເສດຈົດຫມາຍທັງຫມົດໄປຫາ
ທີ່ຢູ່ນັ້ນຍົກເວັ້ນທີ່ມາຈາກຄອມພິວເຕີຂອງ yahoo. ຄອມພິວເຕີຂອງ Yahoo ອາດຈະ
ສອດຄ້ອງກັບອັນໃດອັນໜຶ່ງທີ່ສິ້ນສຸດ ".yahoo.com" ຫຼືແບ່ງປັນຄຳນຳໜ້າທີ່ຢູ່ IP 24-bit ກັບ
ບັນທຶກ MX ຂອງ yahoo.com. ນີ້ສາມາດສໍາເລັດດ້ວຍສະຄິບຕໍ່ໄປນີ້ໃນ
$HOME/.avenger/rcpt+yahoo:

echo spf YAHOO ptr:yahoo.com mx:yahoo.com/24 -all >&3
setvars
ກໍລະນີ "$YAHOO" ໃນ
ລົ້ມເຫລວ)
ປະຕິເສດ "ຂໍອະໄພ, ນາມແຝງສ່ວນຕົວນີ້ສໍາລັບລາຍຊື່ Yahoo ເທົ່ານັ້ນ"
;;
ຜິດ​ພາດ​)
ເລື່ອນ "ຂໍອະໄພ, ຂໍ້ຜິດພາດ DNS ຊົ່ວຄາວ"
;;
ວ່າ C

ຕົວຢ່າງ


ຖ້າທ່ານບໍ່ເຄີຍໃຊ້ທີ່ຢູ່ອີເມວຂອງທ່ານເປັນຜູ້ສົ່ງ envelope, ທ່ານສາມາດປະຕິເສດທັງຫມົດ bounces ກັບ
ທີ່ຢູ່ກັບຄໍາສັ່ງເຫຼົ່ານີ້ຢູ່ໃນຂອງທ່ານ rcpt file:

ທົດສອບ -z "$SENDER"
&& ປະຕິເສດ "<$RECIPIENT> ບໍ່ແມ່ນຜູ້ສົ່ງທີ່ຖືກຕ້ອງ;"
"ບໍ່ຄວນໄດ້ຮັບ bounces"

script ຕໍ່ໄປນີ້ດໍາເນີນການ spamassassin (ຕົວກອງ spam ທີ່ນິຍົມ, ມີຢູ່ໃນ
<http://www.spamassassin.org/>) ຢູ່ໃນຮ່າງກາຍຂອງຂໍ້ຄວາມ, ເວັ້ນເສຍແຕ່ວ່າຜູ້ສົ່ງຂໍ້ຄວາມ
ມີການຈັດວາງ SPF ຂອງບັດຜ່ານຫຼືຈະຖືກປະຕິເສດໂດຍຄ່າເລີ່ມຕົ້ນ.

# ແຖວຕໍ່ໄປທັນທີທີ່ຕົກຢູ່ໃນການປະຕິເສດໃນຕອນຕົ້ນ
# ການຕັ້ງໃຈເມື່ອເມລມີການຈັດລຽງ SPF ຂອງຄວາມລົ້ມເຫລວຫຼື
# ຜູ້ສົ່ງບໍ່ຍອມຮັບຂໍ້ຄວາມ bounce.
ກວດ​ສອບ​ຜິດ​ພາດ

ທົດສອບ "$SPF" = ຜ່ານ
|| bodytest edinplace -x 111 spamassassin -e 100

ສະຄຣິບຕໍ່ໄປນີ້ຮັບຈົດໝາຍຈາກເຄື່ອງໃດກໍໄດ້ຢູ່ MIT ຫຼື NYU ທັນທີ (ສະໜອງໃຫ້
MAIL_ERROR ບໍ່ໄດ້ຕັ້ງ), ເຄື່ອງຈັກ "greylist" ບໍ່ໄດ້ຢູ່ໃນຫນຶ່ງໃນໂດເມນເຫຼົ່ານັ້ນ, ແລະຖ້າ
greylist ຜ່ານ, ຕົກຢູ່ໃນຄ່າເລີ່ມຕົ້ນ, ກົດລະບຽບທົ່ວລະບົບ:

ກວດ​ສອບ​ຜິດ​ພາດ

spf TRUSTED ptr:nyu.edu ptr:mit.edu ?ທັງໝົດ
setvars
test pass = "$ TRUSTED" && ຍອມຮັບຜູ້ສົ່ງທີ່ເຊື່ອຖືໄດ້ OK

greylist_delay=5ມ
ບັນຊີລາຍຊື່ສີຂີ້ເຖົ່າ

ສະຄຣິບຕໍ່ໄປນີ້ປະຕິເສດເມລຈາກລູກຄ້າທີ່ໄດ້ອອກຄໍາສັ່ງ SMTP "POST".
(ທີ່ບໍ່ມີຢູ່) ຫຼືໃຊ້ການຮຸກຮານ, ທໍ່ສົ່ງຄໍາສັ່ງກ່ອນໄວອັນຄວນ. ຖ້າລູກຄ້າ
ວາງຊ່ອງຫຼັງຈາກຈໍ້າສອງເມັດໃນ MAIL FROM: ຫຼື RCPT TO: ຄໍາສັ່ງ SMTP, ມັນຂຽນເປັນສີເທົາ.
ຂໍ້ຄວາມໂດຍໃຊ້ກະແຈທີ່ປະກອບມີລາຍນິ້ວມື SYN ແລະ 24-ບິດທຳອິດຂອງທີ່ຢູ່ IP.
ຖ້າການຈັດວາງ SPF ຂອງຂໍ້ຄວາມມີຄວາມຜິດພາດ, ມັນຂັດຂວາງຂໍ້ຄວາມ. ຖ້າ SPF
disposition ຂອງຂໍ້ຄວາມແມ່ນ softfail ຫຼື none, ມັນເນັ້ນຮ່າງກາຍຂອງຂໍ້ຄວາມໂດຍຜ່ານການ
ຜູ້ຂ້າ spam.

ກວດ​ສອບ​ຜິດ​ພາດ

ທົດສອບ -n "$CLIENT_POST" -o -n "$CLIENT_PIPELINING"
&& ປະຕິເສດ "ບໍ່ມີ spam ກະລຸນາ"

ທົດສອບ -n "$CLIENT_COLONSPACE"
&& ບັນຊີສີເທົາ "${CLIENT_IP%.*} $CLIENT_SYNFP $SENDER"

ກໍລະນີ "$SPF" ໃນ
ຜິດ​ພາດ​)
ເລື່ອນ "ຄວາມຜິດພາດຊົ່ວຄາວໃນການປະມວນຜົນບັນທຶກ SPF"
;;
softfail|ບໍ່ມີ)
bodytest edinplace -x 111 spamassassin -e 100
;;
ວ່າ C

ຖ້າທ່ານຕັ້ງຄ່າຂອງທ່ານ MACUTIL_SENDER ຕົວແປສະພາບແວດລ້ອມເປັນ "user+bounce+*@your.host.com"
ແລະສົ່ງ mail ກັບ Macutil -- ສົ່ງອີເມວ, ທ່ານສາມາດສ້າງດັ່ງຕໍ່ໄປນີ້ rcpt+bounce+ຄ່າເລີ່ມຕົ້ນ to
ຍອມຮັບ mail ພຽງແຕ່ໄປຫາທີ່ຢູ່ bounce ທີ່ຖືກຕ້ອງ.

macutil --check "$SUFFIX" > /dev/null
|| ປະຕິເສດ "<$RECIPIENT>.. ຜູ້ໃຊ້ບໍ່ຮູ້ຈັກ"

ໂດຍສົມທົບກັບ script ນີ້, ທ່ານອາດຈະຕ້ອງການທີ່ຈະປະຕິເສດຂໍ້ຄວາມ bounce ກັບປົກກະຕິຂອງທ່ານ
ທີ່ຢູ່ອີເມວຂອງທ່ານ rcpt script, ດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ໃນຕົວຢ່າງທໍາອິດ.

ຕົວຢ່າງນີ້ແມ່ນສັບສົນກວ່າເລັກນ້ອຍ, ແລະສະແດງວິທີການໃຊ້ bodytest ເພື່ອປະຕິເສດຈົດໝາຍ
ອີງໃສ່ເນື້ອໃນຂໍ້ຄວາມ. ເປົ້າ​ຫມາຍ​ຂອງ​ການ​ຕັ້ງ​ຄ່າ​ນີ້​ແມ່ນ​ເພື່ອ​ກວດ​ກາ​ເບິ່ງ​ແຕ່​ລະ​ຂໍ້​ຄວາມ​ທີ່​ມີ​
ClamAV ຊອບແວຕ້ານເຊື້ອໄວຣັສ (ຈາກhttp://www.clamav.net/>) ແລະ spamassassin mail
ການກັ່ນຕອງ. ຖ້າຂໍ້ຄວາມມີເຊື້ອໄວຣັສຫຼືຖືກທຸງວ່າເປັນ spam, ມັນຄວນຈະຖືກປະຕິເສດ
ຄໍາອະທິບາຍກ່ຽວກັບບັນຫາ. ພວກເຮົາສ້າງ script ແກະ, $HOME/.avenger/body, ແລ່ນ
ການທົດສອບເຫຼົ່ານີ້ຢູ່ໃນອົງການຈັດຕັ້ງຂໍ້ຄວາມ. script ສາມາດ invoked ກັບເສັ້ນ

ກວດຮ່າງກາຍ $HOME/.avenger/body

ໃນຂອງທ່ານ $HOME/.avenger/rcpt ໄຟລ໌. ຫຼື, ໃນທາງກົງກັນຂ້າມ, script ສາມາດຖືກຕັ້ງຄ່າໃຫ້ແລ່ນ
ໃນ​ທົ່ວ​ລະ​ບົບ​ /etc/avenger/default ໄຟລ໌ (ໃນກໍລະນີທ່ານຕ້ອງການໃຫ້ແນ່ໃຈວ່າ
AvengerUser ສາມາດຂຽນໄດເລກະທໍລີເຮືອນຂອງຕົນເອງ, ເພື່ອເກັບຮັກສາໄຟລ໌ spamassassin). ໄດ້
script ແມ່ນ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

#!/ ຖັງ / sh
out="`clamscan -i --no-summary --mbox - 2>&1`"
ຖ້າທົດສອບ "$?" = 1; ແລ້ວ
echo ຂໍ້ຄວາມນີ້ປະກົດວ່າຕິດເຊື້ອໄວຣັດ
printf "%s\n" "$out"
| sed -e'/Warning:/d'-e's/^[^:]*://'| ຄັດ -u
ທາງອອກ 100
fi

out="`edinplace -x 111 spamassassin -e 100`"
ກໍລະນີ "$?" ໃນ
0)
ທາງອອກ 0
;;
100)
echo ຂໍໂທດ, spamassassin ໄດ້ທຸງຂໍ້ຄວາມຂອງທ່ານວ່າເປັນ spam
ໃນຂະນະທີ່ອ່ານ abc; ເຮັດ
ທົດສອບ "$a $b" = "ການວິເຄາະເນື້ອຫາ" && ຢຸດ
ເຮັດ
ອ່ານກ
ອ່ານກ
ອ່ານກ
ໃນຂະນະທີ່ອ່ານ abc; ເຮັດ
ກໍລະນີ "$a" ໃນ
"")
ພັກຜ່ອນ
;;
-*)
;;
[0-9]*)
printf " %s\n" "$c"
;;
*)
printf " %s\n" "$a $b $c"
;;
ວ່າ C
ເຮັດ
ທາງອອກ 100
;;
*)
ຖ້າທົດສອບ -n "$out"; ແລ້ວ
echo spamassassin ລົ້ມເຫລວ:
printf "%s\n" "$out"
ອື່ນ
echo ຄວາມຜິດພາດຂອງລະບົບໃນ spamassassin
fi
ທາງອອກ 111
;;
ວ່າ C

ເຄິ່ງທໍາອິດຂອງສະຄິບນີ້ແລ່ນຕົວກວດສອບເຊື້ອໄວຣັສ clamscan, ເກັບຮັກສາຜົນຜະລິດໃນ
ຕົວແປອອກ. clamscan ອອກໄປດ້ວຍລະຫັດ 1 ເມື່ອພົບເຊື້ອໄວຣັສ, ອອກຈາກ 0 ໃນຄວາມສໍາເລັດ, ແລະ
ໃຊ້ລະຫັດຂໍ້ຜິດພາດອື່ນໆເພື່ອຊີ້ບອກເຖິງຄວາມຜິດພາດຂອງລະບົບຕ່າງໆ. ພວກເຮົາພຽງແຕ່ຕ້ອງການທີ່ຈະປະຕິເສດເມລຖ້າ
clamscan ອອກຈາກລະຫັດ 1. ເມື່ອສິ່ງດັ່ງກ່າວເກີດຂຶ້ນ, ພວກເຮົາເອົາຜົນຜະລິດຂອງ clamscan, ຮູບແບບມັນ
ໃນ​ວິ​ທີ​ການ​ທີ່​ຫນ້າ​ພໍ​ໃຈ​ຫຼາຍ (ການ​ຍົກ​ອອກ​ຄໍາ​ເຕືອນ​)​, ແລະ​ສົ່ງ​ມັນ​ກັບ​ຜົນ​ຜະ​ລິດ​ມາດ​ຕະ​ຖານ​. ອັນ
ຕົວຢ່າງຂອງການເຮັດທຸລະກໍາ SMTP ໂດຍໃຊ້ bodytest ນີ້ແລະການກວດຫາເຊື້ອໄວຣັສຈະຄ້າຍຄື
ນີ້ (ທົດສອບດ້ວຍສາຍທົດສອບ EICAR ພິເສດທີ່ຊີ້ບອກວ່າເປັນບວກກັບໄວຣັສສ່ວນໃຫຍ່
checkers):

ຂໍ້ມູນ
354 ໃສ່ຈົດໝາຍ, ລົງທ້າຍດ້ວຍ "." ຢູ່ໃນເສັ້ນດ້ວຍຕົວມັນເອງ
ຫົວ​ຂໍ້​: ການ​ທົດ​ສອບ eicar​

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
.
554-ຂໍ້ຄວາມນີ້ປະກົດວ່າຕິດເຊື້ອໄວຣັສ
ພົບເຫັນ 554 Eicar-Test-Signature

ຖ້າການກວດສອບເຊື້ອໄວຣັສລົ້ມເຫລວ, script ຈະດໍາເນີນການຂໍ້ຄວາມຜ່ານ spamassassin ເພື່ອກວດເບິ່ງ
ຂີ້ເຫຍື້ອ. ໃຫ້ສັງເກດວ່າ spamassassin ດັດແປງຂໍ້ຄວາມ mail, ດັ່ງນັ້ນພວກເຮົາຕ້ອງດໍາເນີນການກັບມັນ
edinplace. ໃຫ້ສັງເກດວ່າ clamscan ຈະອ່ານໃນຕອນທ້າຍຂອງໄຟລ໌ປ້ອນຂໍ້ມູນ, ແຕ່ນີ້ແມ່ນ
ຕົກລົງນັບຕັ້ງແຕ່ edinplace rewins ການປ້ອນຂໍ້ມູນມາດຕະຖານຂອງມັນ. ພວກເຮົາໃຊ້ -e ທຸງເພື່ອບອກ spamassassin
ເພື່ອອອກຈາກ 100 ໃນ spam. ຫຼັງຈາກນັ້ນ, ຖ້າ spamassassin ອອກຈາກ 0, ພວກເຮົາຍອມຮັບຈົດຫມາຍ. ຖ້າມັນອອກດ້ວຍ
ບໍ່ມີຫຍັງນອກເໜືອໄປຈາກ 100, ບາງສິ່ງບາງຢ່າງຜິດພາດ ແລະພວກເຮົາເລື່ອນຈົດໝາຍຊົ່ວຄາວ. ໃຫ້ສັງເກດວ່າມັນ
ອາດຈະເປັນໄປໄດ້ໃນການຍອມຮັບຈົດໝາຍໃນຈຸດນີ້, ແຕ່ເນື່ອງຈາກ spamassassin ແກ້ໄຂ
ໄຟລ໌ຢູ່ໃນສະຖານທີ່, ຂໍ້ຄວາມອາດຈະຖືກຕັດອອກຖ້າ spamassassin ອອກມາໂດຍບໍ່ຄາດຄິດ.

ຖ້າ spamassassin ອອກຈາກ 100, ພວກເຮົາປະຕິເສດ mail. ພວກເຮົາຍັງລາຍງານວ່າເປັນຫຍັງ spamassassin ມີ
ປະຕິເສດຈົດໝາຍ. ທີ່ນີ້ອີກເທື່ອຫນຶ່ງພວກເຮົາໃຊ້ເວລາປະໂຫຍດຂອງຄວາມຈິງທີ່ວ່າ edinplace rewinds ຂອງຕົນ
ການປ້ອນຂໍ້ມູນມາດຕະຖານທັງກ່ອນ ແລະຫຼັງການປະມວນຜົນຂໍ້ຄວາມ. ເນື່ອງຈາກວ່າໄຟລ໌ descriptor
ໄດ້ຖືກ rewound, ພວກເຮົາສາມາດເລີ່ມຕົ້ນການປະມວນຜົນຂໍ້ຄວາມຫນຶ່ງແຖວໃນເວລາກັບແກະ
ສະຄຣິບ. Spamassassin ໂດຍຄ່າເລີ່ມຕົ້ນ (ຖ້າທ່ານບໍ່ໄດ້ຕັ້ງຄ່າມັນດ້ວຍ "report_safe 0")
ມີບົດລາຍງານຂີ້ເຫຍື້ອເຊັ່ນນີ້:

ລາຍລະອຽດການວິເຄາະເນື້ອໃນ: (11.7 ຄະແນນ, 5.0 ຕ້ອງການ)

ລາຍລະອຽດຊື່ກົດລະບຽບ pts
---------------------------------------------------- -------------------
1.0 RATWARE_RCVD_AT ພົບລາຍນິ້ວມືອີເມວເປັນຈຳນວນຫຼາຍ (Received @)
4.2 X_MESSAGE_INFO ພົບລາຍນິ້ວມືອີເມວເປັນຊຸດ (X-Message-Info)
0.0 MONEY_BACK BODY: ການຮັບປະກັນການຄືນເງິນ
0.5 BIZ_TLD URI: ມີ URL ຢູ່ໃນໂດເມນລະດັບສູງສຸດ BIZ
0.6 URIBL_SBL ປະກອບມີ URL ທີ່ລະບຸໄວ້ໃນບັນຊີບລັອກ SBL
[URIs: crocpeptide.biz]
0.5 URIBL_WS_SURBL ປະກອບມີ URL ທີ່ລະບຸໄວ້ໃນບັນຊີບລັອກ WS SURBL
[URIs: crocpeptide.biz]
...

ພວກເຮົາຂ້າມສ່ວນຫົວ, ແລະສໍາລັບແຕ່ລະຜົນໄດ້ຮັບ, ພິມມັນໃສ່ກອງປະຊຸມ SMTP.
ຜົນໄດ້ຮັບທາງລົບ / whitelist (ຜູ້ທີ່ເລີ່ມຕົ້ນ -), ພວກເຮົາບໍ່ໄດ້ລາຍງານ, ແລະເສັ້ນສະແດງຄວາມຄິດເຫັນ (ບໍ່ແມ່ນ
ເລີ່ມຕົ້ນດ້ວຍຕົວເລກ) ພວກເຮົາພິມ indented. ຊ່ວງເວລາ SMTP ປົກກະຕິຈະມີລັກສະນະແບບນີ້ (ໂດຍໃຊ້
ເສັ້ນການທົດສອບພິເສດ GTUBE ທີ່ກະຕຸ້ນການກັ່ນຕອງ spam):

ຂໍ້ມູນ
354 ໃສ່ຈົດໝາຍ, ລົງທ້າຍດ້ວຍ "." ຢູ່ໃນເສັ້ນດ້ວຍຕົວມັນເອງ
ຫົວຂໍ້: ການທົດສອບ gtube

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
.
554-ຂໍອະໄພ, spamassassin ໄດ້ໝາຍຂໍ້ຄວາມຂອງທ່ານວ່າເປັນ spam
554- ວັນທີ່ຂາດຫາຍໄປ: header
554 ຮ່າງກາຍ: ການທົດສອບທົ່ວໄປສໍາລັບອີເມລ໌ຈໍານວນຫລາຍທີ່ບໍ່ໄດ້ຮັບການຮ້ອງຂໍ

ນີ້ແມ່ນຕົວຢ່າງຂອງວິທີການນໍາໃຊ້ໃບຢັ້ງຢືນລູກຄ້າ SSL ສໍາລັບການກວດສອບຄວາມຖືກຕ້ອງ. ຖ້າທ່ານມີ
CA ສ່ວນຕົວທີ່ມີຊື່ທົ່ວໄປ "CA ຂອງຂ້ອຍ" ທີ່ເຊັນໃບຢັ້ງຢືນການອະນຸຍາດທັງຫມົດຂອງເຈົ້າ
mail clients, ທ່ານສາມາດວາງດັ່ງຕໍ່ໄປນີ້ໃນ /etc/avenger/relay ເພື່ອອະນຸຍາດໃຫ້ລູກຄ້າເຫຼົ່ານັ້ນ
Relay:

ທົດສອບ "CA ຂອງຂ້ອຍ" = "$SSL_ISSUER"
&& ຍອມຮັບ "ອະນຸຍາດໃຫ້ສົ່ງຕໍ່ສໍາລັບລູກຄ້າ $SSL_SUBJECT"
ປະຕິເສດ "ການຖ່າຍທອດຖືກປະຕິເສດ"

ໃຊ້ avenger ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net



ລ່າສຸດ Linux ແລະ Windows ໂຄງການອອນໄລນ໌