Advertisement
Guest User

Untitled

a guest
Jan 10th, 2012
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.23 KB | None | 0 0
  1. dnslookup:
  2. driver = dnslookup
  3. domains = ! +local_domains
  4. transport = remote_smtp
  5. ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  6. no_more
  7.  
  8. mailman_router:
  9. driver = accept
  10. require_files = MAILMAN_HOME/lists/$local_part/config.pck
  11. local_part_suffix_optional
  12. local_part_suffix = -bounces : -bounces+* : \
  13. -confirm+* : -join : -leave : \
  14. -owner : -request : -admin
  15. headers_remove = X-Spam-Score:X-Spam-Report
  16. transport = mailman_transport
  17.  
  18. ditch_maxmsgsize:
  19. driver = redirect
  20. allow_fail
  21. condition = ${if >{$message_size}{${lookup mysql{select users.maxmsgsize from users,domains \
  22. where localpart = '${quote_mysql:$local_part}' \
  23. and domain = '${quote_mysql:$domain}' \
  24. and users.maxmsgsize > 0 \
  25. and users.domain_id=domains.domain_id }{${value}K}fail}} {yes}{no}}
  26. data = :fail:\n\Your message is too big.\n \
  27. Your message was rejected because the user $local_part@$domain\n \
  28. does not accept messages larger than \
  29. ${lookup mysql{select users.maxmsgsize from users,domains \
  30. where localpart = '${quote_mysql:$local_part}' \
  31. and domain = '${quote_mysql:$domain}' \
  32. and users.maxmsgsize > 0 \
  33. and users.domain_id=domains.domain_id}{${value}K}fail} Kb.
  34. local_part_suffix = -*
  35. local_part_suffix_optional
  36. retry_use_local_part
  37.  
  38. ditch_malware:
  39. driver = redirect
  40. allow_fail
  41. data = :blackhole:
  42. condition = ${if and { {match {$h_X-ACL-Warn:}{.*malware.*}} \
  43. {eq {${lookup mysql{select users.on_avscan from users,domains \
  44. where localpart = '${quote_mysql:$local_part}' \
  45. and domain = '${quote_mysql:$domain}' \
  46. and users.on_avscan = '1' \
  47. and users.domain_id=domains.domain_id}}}{1} }} {yes}{no} }
  48.  
  49. ditch_spam:
  50. driver = redirect
  51. allow_fail
  52. data = :blackhole:
  53. condition = ${if >{$spam_score_int}{${lookup mysql{select users.sa_refuse * 10 from users,domains \
  54. where localpart = '${quote_mysql:$local_part}' \
  55. and domain = '${quote_mysql:$domain}' \
  56. and users.on_spamassassin = '1' \
  57. and users.domain_id=domains.domain_id \
  58. and users.sa_refuse > 0 }{$value}fail}} {yes}{no}}
  59. local_part_suffix = -*
  60. local_part_suffix_optional
  61. retry_use_local_part
  62.  
  63. ditch_hdrmailer:
  64. driver = redirect
  65. allow_fail
  66. data = :blackhole:
  67. condition = ${if eq {${lookup mysql{select count(*) from blocklists,users,domains \
  68. where blocklists.blockhdr = 'x-mailer' \
  69. and blocklists.blockval = '${quote_mysql:$h_x-mailer:}' \
  70. and users.localpart = '${quote_mysql:$local_part}' \
  71. and domains.domain = '${quote_mysql:$domain}' \
  72. and domains.domain_id=blocklists.domain_id \
  73. and users.user_id=blocklists.user_id}}}{1} {yes}{no}}
  74. local_part_suffix = -*
  75. local_part_suffix_optional
  76. retry_use_local_part
  77.  
  78. ditch_hdrto:
  79. driver = redirect
  80. allow_fail
  81. data = :blackhole:
  82. condition = ${if eq {${lookup mysql{select count(*) from blocklists,users,domains \
  83. where blocklists.blockhdr = 'to' \
  84. and blocklists.blockval = '${quote_mysql:$h_to:}' \
  85. and users.localpart = '${quote_mysql:$local_part}' \
  86. and domains.domain = '${quote_mysql:$domain}' \
  87. and domains.domain_id=blocklists.domain_id \
  88. and users.user_id=blocklists.user_id}}}{1} {yes}{no}}
  89. local_part_suffix = -*
  90. local_part_suffix_optional
  91. retry_use_local_part
  92.  
  93. ditch_hdrfrom:
  94. driver = redirect
  95. allow_fail
  96. data = :blackhole:
  97. condition = ${if eq {${lookup mysql{select count(*) from blocklists,users,domains \
  98. where blocklists.blockhdr = 'from' \
  99. and blocklists.blockval = '${quote_mysql:$h_from:}' \
  100. and users.localpart = '${quote_mysql:$local_part}' \
  101. and domains.domain = '${quote_mysql:$domain}' \
  102. and domains.domain_id=blocklists.domain_id \
  103. and users.user_id=blocklists.user_id}}}{1} {yes}{no}}
  104. local_part_suffix = -*
  105. local_part_suffix_optional
  106. retry_use_local_part
  107.  
  108. ditch_hdrsubject:
  109. driver = redirect
  110. allow_fail
  111. data = :blackhole:
  112. condition = ${if eq {${lookup mysql{select count(*) from blocklists,users,domains \
  113. where blocklists.blockhdr = 'subject' \
  114. and blocklists.blockval = '${quote_mysql:$h_subject:}' \
  115. and users.localpart = '${quote_mysql:$local_part}' \
  116. and domains.domain = '${quote_mysql:$domain}' \
  117. and domains.domain_id=blocklists.domain_id \
  118. and users.user_id=blocklists.user_id}}}{1} {yes}{no}}
  119. local_part_suffix = -*
  120. local_part_suffix_optional
  121. retry_use_local_part
  122.  
  123. virtual_vacation:
  124. driver = accept
  125. condition = ${if and { {!match {$h_precedence:}{(?i)junk|bulk|list}} \
  126. {eq {${lookup mysql{select users.on_vacation from users,domains \
  127. where localpart = '${quote_mysql:$local_part}' \
  128. and domain = '${quote_mysql:$domain}' \
  129. and users.on_vacation = '1' \
  130. and users.domain_id=domains.domain_id}}}{1} }} {yes}{no} }
  131. no_verify
  132. no_expn
  133. unseen
  134. transport = virtual_vacation_delivery
  135.  
  136. virtual_forward:
  137. driver = redirect
  138. check_ancestor
  139. unseen = ${if eq {${lookup mysql{select unseen from users,domains \
  140. where localpart = '${quote_mysql:$local_part}' \
  141. and domain = '${quote_mysql:$domain}' \
  142. and users.on_forward = '1' \
  143. and users.domain_id=domains.domain_id}}}{1} {yes}{no}}
  144. data = ${lookup mysql{select forward from users,domains \
  145. where localpart='${quote_mysql:$local_part}' \
  146. and domain='${quote_mysql:$domain}' \
  147. and users.domain_id=domains.domain_id \
  148. and on_forward = '1'}}
  149. # We explicitly make this condition NOT forward mailing list mail!
  150. condition = ${if and { {!match {$h_precedence:}{(?i)junk}} \
  151. {eq {${lookup mysql{select users.on_forward from users,domains \
  152. where localpart = '${quote_mysql:$local_part}' \
  153. and domain = '${quote_mysql:$domain}' \
  154. and users.on_forward = '1' \
  155. and users.domain_id=domains.domain_id}}}{1} }} {yes}{no} }
  156.  
  157. virtual_domains:
  158. driver = redirect
  159. allow_fail
  160. data = ${lookup mysql{select smtp from users,domains \
  161. where localpart = '${quote_mysql:$local_part}' \
  162. and domain = '${quote_mysql:$domain}' \
  163. and domains.enabled = '1' \
  164. and users.enabled = '1' \
  165. and users.domain_id = domains.domain_id}}
  166. headers_add = ${if >{$spam_score_int}{${lookup mysql{select users.sa_tag * 10 from users,domains \
  167. where localpart = '${quote_mysql:$local_part}' \
  168. and domain = '${quote_mysql:$domain}' \
  169. and users.on_spamassassin = '1' \
  170. and users.domain_id=domains.domain_id }{$value}fail}} {X-Spam-Flag: YES\n}{} }
  171. headers_remove = ${if or { { <{$spam_score_int}{1} } \
  172. { <{$spam_score_int}{${lookup mysql{select users.sa_tag * 10 from users,domains \
  173. where localpart = '${quote_mysql:$local_part}' \
  174. and domain = '${quote_mysql:$domain}' \
  175. and users.on_spamassassin = 1 \
  176. and users.domain_id=domains.domain_id}{$value}fail}} } \
  177. { eq {0}{${lookup mysql{select users.sa_tag * 10 from users,domains \
  178. where localpart = '${quote_mysql:$local_part}' \
  179. and domain = '${quote_mysql:$domain}' \
  180. and users.on_spamassassin = 0 \
  181. and users.domain_id=domains.domain_id}{$value}fail}}} \
  182. } {X-Spam-Score:X-Spam-Report} }
  183. local_part_suffix = -*
  184. local_part_suffix_optional
  185. retry_use_local_part
  186. file_transport = virtual_delivery
  187. reply_transport = address_reply
  188. pipe_transport = address_pipe
  189.  
  190. .include /etc/exim4/vexim-group-router.conf
  191.  
  192. virtual_domains_catchall:
  193. driver = redirect
  194. allow_fail
  195. data = ${lookup mysql{select smtp from users,domains where localpart = '*' \
  196. and domain = '${quote_mysql:$domain}' \
  197. and users.domain_id = domains.domain_id}}
  198. retry_use_local_part
  199. file_transport = virtual_delivery
  200. reply_transport = address_reply
  201. pipe_transport = address_pipe_catchall
  202.  
  203. virtual_domain_alias:
  204. driver = redirect
  205. allow_fail
  206. data = ${lookup mysql{select concat('${quote_mysql:$local_part}@', domain) \
  207. from domains,domainalias where domainalias.alias = '${quote_mysql:$domain}' \
  208. and domainalias.domain_id = domains.domain_id}}
  209. retry_use_local_part
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement