Hello there,
First of all, congratulate all folks behind this remarkable, predictable
and reliable software that is postfix, which.......at the same time is
well documented (bonus). It is is difficult to find software with some
of these attributes, but postfix have them all.
--== CONTEXT OF THE PROBLEM ==--
Having said that, we are trying to implement a discard for a particular
recipient of a multi-recipient message (which seems to be something
recurrent). At this point, we are trying to discard based on the
destination domain and/or the local-part@ (without considering the
destination domain) by reporting a DISCARD code using delegation
protocol (with valvula [1]).
At the same time, we are using the following type of declarations at
master.cf, combined with FILTER command (delegation), to make a
particular sasl user to use a particular outgoing ip when accepted:
transport16 unix - - n - - smtp
-o smtp_bind_address=X.X.X.X
-o syslog_name=postfix16
--== WHAT FAILS ==--
After reviewing documentation about why discard applies to all
recipient, we have found that this is documented and expected behaviour:
http://www.postfix.org/access.5.html
Note: this action currently affects all recipients of the
message. To discard only one recipient without
discarding the entire message, use the transport(5) table to
direct mail to the discard(8) service.
After that, we have tried to implement suggested solution by declaring a
transport_maps = hash:/etc/postfix/transports
...where we declare destination domains we want to discard.
# with format
yahoogroups.com discard:
.
yahoogroups.com discard:
# and the corresponding
>> postmap /etc/postfix/transports
However, we are finding two problems:
1) When a FILTER command is issued to a particular transport to use a
particular outbound IP (as shown in the example above, transport16), the
smtp(8) client created that delivers that message, entirely ignores any
declaration found for transport_maps = ..., so domains declared there,
aren't discarded.
2) Even though having previous point working, we haven't found any
possible solution to "discard:" (via transport) or DISCARD (via
delegation) based on the local-part@ in for a particular recipient in a
multi-recipient message.
--== QUESTIONS ==--
1) Is there a way do a DISCARD of a particular recipient in a
mult-recipient message and at the same time calling FILTER+trasnport16
to select a particular outgoing IP as we did?
2) Same question as 1) but from a different point of view, is there a
way to flag as "already handled/delivered" a particular recipient in a
message directly in the queue?
3) Are we wrong or the only solution is to go with a smtp-like content
filter that does the recipient removal?
Thanks for your time and patience,
Best Regards,
[1]
http://www.aspl.es/valvula
--
Francis Brosnan Blázquez <
francis...@aspl.es>
ASPL
91 134 14 22 - 91 134 14 45 - 91 116 07 57
AVISO LEGAL
Este mensaje se dirige exclusivamente a su destinatario. Los datos
incluidos en el presente correo son confidenciales y sometidos a secreto
profesional, se prohíbe divulgarlos, en virtud de las leyes vigentes. Si
usted no lo es y lo ha recibido por error o tiene conocimiento del mismo
por cualquier motivo, le rogamos que nos lo comunique por este medio y
proceda a destruirlo o borrarlo.
En virtud de lo dispuesto en la Ley Orgánica 15/1999, de 13 de
diciembre, de Protección de Datos de Carácter Personal, le informamos de
que sus datos de carácter personal, recogidos de fuentes accesibles al
público o datos que usted nos ha facilitado previamente, proceden de
bases de datos propiedad de Advanced Software Production Line, S.L.
(ASPL). No obstante, usted puede ejercitar sus derechos de acceso,
rectificación, cancelación y oposición dispuestos en la mencionada Ley
Orgánica, notificándolo por escrito a:
ASPL - Protección Datos, C/Antonio Suárez 10 A-102, 28802, Alcalá de
Henares (Madrid).