เจเจเจเจผเจฟเจฎ เจฎเฉเจฒ เจธเจฐเจตเจฐ เจตเจฟเฉฑเจ
เจกเจฟเจซเฉเจฒเจ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจตเจฟเฉฑเจ, เจนเจฎเจฒเจพ เจเฉฑเจ เจธเจฅเจพเจจเจ เจเจชเจญเฉเจเจคเจพ เจฆเฉเจเจฐเจพ เจฌเฉเจฒเฉเฉเฉ เจชเฉเจเฉเจฆเจเฉเจเจ เจคเฉเจ เจฌเจฟเจจเจพเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจเจฟเจเจเจเจฟ "เจชเฉเจคเจพเจฒ = เจชเฉเจฐเจพเจชเจคเจเจฐเจคเจพ" ACL เจฒเจพเจเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ, เจเฉ เจฌเจพเจนเจฐเฉ เจชเจคเจฟเจเจ เจฒเจ เจตเจพเจงเฉ เจเจพเจเจเจพเจ เจเจฐเจฆเจพ เจนเฉเฅค เจเฉฑเจ เจฐเจฟเจฎเฉเจ เจนเจฎเจฒเจพ เจเจฆเฉเจ เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเจฆเฉเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจฌเจฆเจฒเฉเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจ, เจเจฟเจตเฉเจ เจเจฟ เจเจฟเจธเฉ เจนเฉเจฐ เจกเฉเจฎเฉเจจ เจฒเจ เจธเฉเจเฉฐเจกเจฐเฉ MX เจตเจเฉเจ เจเฉฐเจฎ เจเจฐเจจเจพ, "verify=recipient" ACL เจจเฉเฉฐ เจนเจเจพเจเจฃเจพ, เจเจพเจ local_part_suffix เจตเจฟเฉฑเจ เจเฉเจ เจฌเจฆเจฒเจพเจ )เฅค เจเฉฑเจ เจฐเจฟเจฎเฉเจ เจนเจฎเจฒเจพ เจตเฉ เจธเฉฐเจญเจต เจนเฉ เจเฉเจเจฐ เจนเจฎเจฒเจพเจตเจฐ เจธเจฐเจตเจฐ เจจเจพเจฒ เจเจจเฉเจเจธเจผเจจ เจจเฉเฉฐ 7 เจฆเจฟเจจเจพเจ เจฒเจ เจเฉเฉฑเจฒเฉเจนเจพ เจฐเฉฑเจเจฃ เจฆเฉ เจฏเฉเจ เจนเฉเฉฐเจฆเจพ เจนเฉ (เจเจฆเจพเจนเจฐเจฃ เจฒเจ, เจเฉฑเจ เจเจพเจเจฎเจเจเจ เจจเฉเฉฐ เจฌเจพเจเจชเจพเจธ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจฌเจพเจเจ เจชเฉเจฐเจคเฉ เจฎเจฟเฉฐเจ เจญเฉเจเจฃเจพ)เฅค เจเจธเฉ เจธเจฎเฉเจ, เจเจน เจธเฉฐเจญเจต เจนเฉ เจเจฟ เจธเจฎเฉฑเจธเจฟเจ เจฆเฉ เจฐเจฟเจฎเฉเจ เจธเจผเฉเจธเจผเจฃ เจฒเจ เจธเจฐเจฒ เจนเจฎเจฒเฉ เจตเฉเจเจเจฐ เจนเจจ.
เจเจฎเจเจผเฉเจฐเฉ /src/deliver.c เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค deliver_message() เจซเฉฐเจเจธเจผเจจ เจตเจฟเฉฑเจ เจชเฉเจฐเจพเจชเจคเจเจฐเจคเจพ เจฆเฉ เจชเจคเฉ เจฆเฉ เจเจฒเจค เจชเฉเจธเจผเจเฉ เจฆเฉ เจเจพเจฐเจจ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเจกเจฐเฉเฉฑเจธ เจซเจพเจฐเจฎเฉเจเจฟเฉฐเจ เจตเจฟเฉฑเจ เจนเฉเจฐเจพเจซเฉเจฐเฉ เจเจฐเจเฉ, เจเฉฑเจ เจนเจฎเจฒเจพเจตเจฐ เจฐเฉเจ เจ เจงเจฟเจเจพเจฐเจพเจ เจฆเฉ เจจเจพเจฒ execv() เจซเฉฐเจเจธเจผเจจ เจฆเฉเจเจฐเจพ เจฌเฉเจฒเจพเจ เจเจ เจเจฎเจพเจเจก เจฆเฉ เจเจฐเจเฉเจฎเฉเจเจ เจตเจฟเฉฑเจ เจเจชเจฃเฉ เจกเฉเจเจพ เจฆเฉ เจฌเจฆเจฒ เจจเฉเฉฐ เจชเฉเจฐเจพเจชเจค เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค เจเจชเจฐเฉเจธเจผเจจ เจฒเจ เจฌเจซเจฐ เจเจตเจฐเจซเจฒเฉ เจเจพเจ เจฎเฉเจฎเฉเจฐเฉ เจญเฉเจฐเจฟเจธเจผเจเจพเจเจพเจฐ เจฒเจ เจตเจฐเจคเฉเจเจ เจเจพเจเจฆเฉเจเจ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจคเจเจจเฉเจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉเฉฐเจฆเฉ เจนเฉ;
เจธเจฎเฉฑเจธเจฟเจ เจเจกเจฐเฉเฉฑเจธ เจชเจฐเจฟเจตเจฐเจคเจจ เจฒเจ เจจเจฟเจฐเจฎเจพเจฃ เจฆเฉ เจตเจฐเจคเฉเจ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเฉ:
เจกเจฟเจฒเฉเจตเจฐ_เจฒเฉเจเจฒเจชเจพเจฐเจ = เจซเฉเจฒเจพเจ_เจธเจเฉเจฐเจฟเฉฐเจ (
string_sprintf("${local_part:%s}", new->address));
เจกเจฟเจฒเฉเจตเจฐ_เจกเฉเจฎเฉเจจ = เจซเฉเจฒเจพเจ_เจธเจเฉเจฐเจฟเฉฐเจ (
string_sprintf("${เจกเฉเจฎเฉเจจ:%s}", เจจเจตเจพเจ->เจชเจคเจพ));
expand_string() เจซเฉฐเจเจธเจผเจจ เจเฉฑเจ เจฌเจนเฉเจค เจเจผเจฟเจเจฆเจพ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจเฉฐเจฌเจพเจเจจเจฐ เจนเฉ, เจเจฟเจธ เจตเจฟเฉฑเจ เจเจฎเจพเจเจก โ${run{command arguments}โ เจจเฉเฉฐ เจชเจเจพเจฃเจจเจพ เจธเจผเจพเจฎเจฒ เจนเฉ, เจเฉ เจเฉฑเจ เจฌเจพเจนเจฐเฉ เจนเฉเจเจกเจฒเจฐ เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจจ เจตเฉฑเจฒ เจฒเฉ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจธ เจคเจฐเฉเจนเจพเจ, เจเฉฑเจ SMTP เจธเฉเจธเจผเจจ เจฆเฉ เจ เฉฐเจฆเจฐ เจนเจฎเจฒเจพ เจเจฐเจจ เจฒเจ, เจเฉฑเจ เจธเจฅเจพเจจเจ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจเจฎเจพเจเจก เจญเฉเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ เจเจฟเจตเฉเจ เจเจฟ 'RCPT TO โusername+${run{...}}@localhostโ, เจเจฟเฉฑเจฅเฉ เจฒเฉเจเจฒเจนเฉเจธเจ เจฒเฉเจเจฒ_เจกเฉเจฎเฉเจจ เจธเฉเจเฉ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจนเฉเจธเจ เจนเฉ, เจ เจคเฉ เจเจชเจญเฉเจเจคเจพ เจจเจพเจฎ เจเฉฑเจ เจฎเฉเจเฉเจฆเจพ เจธเจฅเจพเจจเจ เจเจชเจญเฉเจเจคเจพ เจฆเจพ เจจเจพเจฎ เจนเฉเฅค
เจเฉเจเจฐ เจธเจฐเจตเจฐ เจเฉฑเจ เจฎเฉเจฒ เจฐเฉเจฒเฉเจ เจตเจเฉเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ, เจคเจพเจ เจเจน เจฐเจฟเจฎเฉเจเจฒเฉ เจเจฎเจพเจเจก 'RCPT TO "${run{...}}@relaydomain.com" เจจเฉเฉฐ เจญเฉเจเจฃ เจฒเจ เจเจพเจซเฉ เจนเฉ, เจเจฟเฉฑเจฅเฉ relaydomain.com relay_to_domains เจตเจฟเฉฑเจ เจธเฉเจเฉเจฌเฉฑเจง เจนเฉเจธเจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจนเฉเฅค เจธเฉเจเจฟเฉฐเจ เจธเฉเจเจธเจผเจจ. เจเจฟเจเจเจเจฟ เจเจเจเจผเจฟเจฎ เจตเจฟเจธเจผเฉเจธเจผ เจ เจงเจฟเจเจพเจฐ เจฎเฉเจก เจจเฉเฉฐ เจเฉฑเจกเจฃ เจฒเจ เจกเจฟเจซเฉเจฒเจ เจจเจนเฉเจ เจนเฉ (เจกเจฟเจฒเฉเจตเจฐ_เจกเฉเจฐเฉเจช_เจชเฉเจฐเฉเจตเจฟเจฒเฉเจ = เจเจฒเจค), "${run{...}}" เจฆเฉเจเจฐเจพ เจชเจพเจธ เจเฉเจคเฉเจเจ เจเจฎเจพเจเจกเจพเจ เจจเฉเฉฐ เจฐเฉเจ เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจเจฒเจพเจเจ เจเจพเจตเฉเจเจพเฅค
เจตเจฐเจจเจฃเจฏเฉเจ เจนเฉ เจเจฟ เจเจฎเจเจผเฉเจฐเฉ เจธเฉ
เจกเจฟเจธเจเฉเจฐเฉเจฌเจฟเจเจธเจผเจจเจพเจ เจตเจฟเฉฑเจ เจตเจฐเจคเฉ เจเจพเจฃ เจตเจพเจฒเฉ เจชเจฟเจเจฒเฉ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจฒเจ เจเฉฑเจ เจซเจฟเจเจธ เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจ เจธเจฟเจฐเจซ เจเจธ เจคเฉเจฐ 'เจคเฉ เจเจชเจฒเจฌเจง เจนเฉ
เจธเจฐเฉเจค: opennet.ru