рдПрдХреНрдЬрд┐рдо рдореЗрд▓ рд╕рд░реНрднрд░рдорд╛
рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛, рдЖрдХреНрд░рдордгрд▓рд╛рдИ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рджреНрд╡рд╛рд░рд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрдЯрд┐рд▓рддрд╛рд╣рд░реВ рдмрд┐рдирд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдХрд┐рдирдХрд┐ "рдкреНрд░рдорд╛рдгрд┐рдд = рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛" ACL рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдмрд╛рд╣реНрдп рдареЗрдЧрд╛рдирд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдердк рдЬрд╛рдБрдЪрд╣рд░реВ рдЧрд░реНрджрдЫред рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдБрджрд╛ рд░рд┐рдореЛрдЯ рдЖрдХреНрд░рдордг рд╣реБрди рд╕рдХреНрдЫ, рдЬрд╕реНрддреИ рдЕрд░реНрдХреЛ рдбреЛрдореЗрдирдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдзреНрдпрдорд┐рдХ MX рдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрдиреЗ, "verify=recipient" ACL рд╣рдЯрд╛рдЙрдиреЗ, рд╡рд╛ local_part_suffix рдорд╛ рдХреЗрд╣реА рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ)ред рдПрдХ рд░рд┐рдореЛрдЯ рдЖрдХреНрд░рдордг рдкрдирд┐ рд╕рдореНрднрд╡ рдЫ рдпрджрд┐ рдЖрдХреНрд░рдордгрдХрд╛рд░реАрд▓реЗ рд╕рд░реНрднрд░рдорд╛ рдЬрдбрд╛рди 7 рджрд┐рдирдХреЛ рд▓рд╛рдЧрд┐ рдЦреБрд▓рд╛ рд░рд╛рдЦреНрди рд╕рдХреНрд╖рдо рдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЯрд╛рдЗрдордЖрдЙрдЯ рдмрд╛рдЗрдкрд╛рд╕ рдЧрд░реНрди рдкреНрд░рддрд┐ рдорд┐рдиреЗрдЯ рдПрдХ рдмрд╛рдЗрдЯ рдкрдард╛рдЙрдБрджреИ)ред рдПрдХреИ рд╕рдордпрдорд╛, рдпреЛ рд╕рдореНрднрд╡ рдЫ рдХрд┐ рддреНрдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛рдХреЛ рдЯрд╛рдврд╛рдХреЛ рд╢реЛрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╕рд░рд▓ рдЖрдХреНрд░рдордг рднреЗрдХреНрдЯрд░рд╣рд░реВ рдЫрдиреНред
рднреЗрджреНрдпрддрд╛ /src/deliver.c рдлрд╛рдЗрд▓рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд deliver_message() рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдХреЛ рдареЗрдЧрд╛рдирд╛рдХреЛ рдЧрд▓рдд рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рд╣реБрдиреНрдЫред рдареЗрдЧрд╛рдирд╛ рдврд╛рдБрдЪрд╛рдорд╛ рд╣реЗрд░рдлреЗрд░ рдЧрд░реЗрд░, рдПрдХ рдЖрдХреНрд░рдордгрдХрд░реНрддрд╛рд▓реЗ рд░реВрдЯ рдЕрдзрд┐рдХрд╛рд░рдХреЛ рд╕рд╛рде execv() рдкреНрд░рдХрд╛рд░реНрдп рдорд╛рд░реНрдлрдд рдмреЛрд▓рд╛рдЗрдПрдХреЛ рдЖрджреЗрд╢рдХреЛ рддрд░реНрдХрд╣рд░реВрдорд╛ рдЖрдлреНрдиреЛ рдбреЗрдЯрд╛рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫред рдЕрдкрд░реЗрд╢рдирд▓рд╛рдИ рдмрдлрд░ рдУрднрд░рдлреНрд▓реЛ рд╡рд╛ рдореЗрдореЛрд░реА рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗ рдЬрдЯрд┐рд▓ рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░реНрджреИрди; рд╕рд╛рдзрд╛рд░рдг рд╡рд░реНрдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкрд░реНрдпрд╛рдкреНрдд рдЫред
рд╕рдорд╕реНрдпрд╛ рдареЗрдЧрд╛рдирд╛ рд░реВрдкрд╛рдиреНрддрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрдорд╛рдгрдХреЛ рдкреНрд░рдпреЛрдЧрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫ:
Delivery_localpart = expand_string (
string_sprintf("${local_part:%s}", new->рдареЗрдЧрд╛рдирд╛));
Delivery_domain = expand_string(
string_sprintf("${domain:%s}", new->рдареЗрдЧрд╛рдирд╛));
expand_string() рдкреНрд░рдХрд╛рд░реНрдп "${run{command arguments}" рдХрдорд╛рдгреНрдбрд▓рд╛рдИ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрдиреЗ рд╕рд╣рд┐рдд, рдПрдХ рдЕрддрд┐ рдЬрдЯрд┐рд▓ рдХрдореНрдмрд╛рдЗрдирд░ рд╣реЛ, рдЬрд╕рд▓реЗ рдмрд╛рд╣реНрдп рд╣реНрдпрд╛рдиреНрдбрд▓рд░рдХреЛ рд╕реБрд░реБрд╡рд╛рддрдорд╛ рдЬрд╛рдиреНрдЫред рддрд╕рд░реНрде, SMTP рд╕рддреНрд░ рднрд┐рддреНрд░ рдЖрдХреНрд░рдордг рдЧрд░реНрди, рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ 'RCPT TO "username+${run{...}}@localhost"' рдЬрд╕реНрддрд╛ рдЖрджреЗрд╢ рдорд╛рддреНрд░ рдкрдард╛рдЙрдиреБ рдкрд░реНрдЫ, рдЬрд╣рд╛рдБ localhost рд╕реНрдерд╛рдиреАрдп_domains рд╕реВрдЪреАрдмрд╛рдЯ рд╣реЛрд╕реНрдЯрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╣реЛ, рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдЕрд╡рд╕реНрдерд┐рдд рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдирд╛рдо рд╣реЛред
рдпрджрд┐ рд╕рд░реНрднрд░рд▓реЗ рдореЗрд▓ рд░рд┐рд▓реЗрдХреЛ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреЗ, рдЯрд╛рдврд╛рдмрд╛рдЯ рдЖрджреЗрд╢ рдкрдард╛рдЙрди рдкрд░реНрдпрд╛рдкреНрдд рд╣реБрдиреНрдЫ 'RCPT TO "${run{...}}@relaydomain.com", рдЬрд╣рд╛рдБ relaydomain.com relay_to_domains рдорд╛ рд╕реВрдЪреАрдмрджреНрдз рд╣реЛрд╕реНрдЯрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╣реЛред рд╕реЗрдЯрд┐рдЩ рдЦрдгреНрдбред рдПрдХреНрдЬрд┐рдорд▓реЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдореЛрдб рдбреНрд░рдк рдЧрд░реНрди рдбрд┐рдлрд▓реНрдЯ рдЧрд░реНрджреИрди (deliver_drop_privilege = false), "${run{...}}" рдорд╛рд░реНрдлрдд рдкрд╛рд╕ рдЧрд░рд┐рдПрдХрд╛ рдЖрджреЗрд╢рд╣рд░реВ рд░реВрдЯрдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреЗрдЫред
рдпреЛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЫ рдХрд┐ рдЬреЛрдЦрд┐рдо рдерд┐рдпреЛ
рд╡рд┐рддрд░рдгрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣рдиреЗ рдЕрдШрд┐рд▓реНрд▓реЛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рдзрд╛рди рд╣рд╛рд▓ рдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рдЫ
рд╕реНрд░реЛрдд: opennet.ru