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_c...
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(a)ringways.co.uk\$} {yes}
{no}}
errors_to = ${if match {$return_path}{^(.+?)-bounce(a)ringways.co.uk\$}\
{$1-bounce+$local_part=$domain(a)ringways.co.uk}fail}
no_more
dnslookup:
driver = dnslookup
domains = ! +local_domains
# domains = groucho.ringways.co.uk
transport = ${if match {$return_path}{^(.+?)-bounce(a)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(a)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(a)ringways.co.uk\$}\
{$1-bounce+$local_part=$domain(a)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
--
Gary Stainburn
Group I.T. Manager
Ringways Garages
http://www.ringways.co.uk