Hi folks
I haven't re-invented the wheel but have borrowed someone else's. I'm managed to do all of the functionality within EXIM and have even managed to manage the subscription list from our CRM :-)
I basically have /etc/aliases.d/list.<listname> which is used to inform EXIM (a) that the mailing list exists and (b) contains the addresses of administrators who are allowed to post and who receive errors.
I then have /etc/aliases.d/list.<listname>.members which contains the target addresses.
I then set up EXIM as per http://www.exim.org/exim-html-current/doc/html/spec_html/ch-some_common_conf... including using VERP and other settings to generate individual outgoing emails and individual incoming error messages.
All works as expected except where the remote mail server does a sender_verify. For some reason when the remote server does a sender_verify my EXIM server doesn't verify the sender (VERP generated FROM address) despite being able to handle errors coming back to the same address. Anyone got a clue what I've missed.
The relevent sections of my config consists of:
begin routers
#Added because Yahoo based services are blocking 88.211.105.30 smarthost: driver = manualroute domains = +smarthost_domains transport = remote_smtp route_data = mail.vaioni.com no_more
verp_dnslookup: driver = dnslookup domains = ! +local_domains transport = remote_smtp condition = ${if match {$return_path}{^(.+?)-bounce@ringways.co.uk$} {yes} {no}} errors_to = ${if match {$return_path}{^(.+?)-bounce@ringways.co.uk$}\ {$1-bounce+$local_part=$domain@ringways.co.uk}fail} no_more
dnslookup: driver = dnslookup domains = ! +local_domains # domains = groucho.ringways.co.uk transport = ${if match {$return_path}{^(.+?)-bounce@ringways.co.uk$}\ {verp_smtp}{remote_smtp}} ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 no_more
# The remaining routers handle addresses in the local domain(s), that is those # domains that are defined by "domainlist local_domains" above.
# handle distribution lists distribution_lists: driver = redirect domains = ringways.co.uk condition = ${if exists {/etc/aliases.d/lists.$local_part.members} {yes} {no}} file = /etc/aliases.d/lists.$local_part.members # forbid_pipe forbid_file errors_to = $local_part-bounce@ringways.co.uk no_more
distribution_list_requests: driver = redirect domains = ringways.co.uk local_part_suffix = -bounce* file = /etc/aliases.d/lists.$local_part no_more
..........
begin transports
# This transport is used for delivering messages over SMTP connections.
remote_smtp: driver = smtp
# used with distribution lists
verp_smtp: driver = smtp max_rcpt = 1 return_path = ${if match {$return_path}{^(.+?)-bounce@ringways.co.uk$}\ {$1-bounce+$local_part=$domain@ringways.co.uk}fail}
# This transport is used for delivering messages over SMTP using the # "message submission" port (RFC4409).
On Monday 20 May 2013 16:31:18 Gary Stainburn wrote:
Hi Folks.
I have at work one of our salesmen who has an opt-in stock-list distribution that has been running for some time now. He has in excess of 2500 recipients on this list.
Up until now he has simply had a Distribution list in his MS Outlook which he maintains himself. He then sends himself an email every week containing the stock list and BCC's the distribution list. Other than generating an excessive load on my EXIM server there has been no real down side to this as it meant that I didn't have to get involved.
However, we are now experiencing problems and I would like a better solution.
I need a system that will distribute the email to each recipient as a seperate message, and if possible will monitor and highlight any emails that fail.
Can anyone suggest a way of doing this? Ideally I would like the salesman to still be able to administer it but that isn't essential. If it is a system that is either text file or database driven I can create a UI that he would be able to use.
Gary