Hi, I posted this query a few weeks ago but never received a response. I'm guessing that I didn't put things right, so here is another go. The company that I work for currently has email addresses in the format of:- firstname.surname.ext at example.com Which we use for various marketing campaigns (therefore the .ext bit is variable). Currently we have this setup as distribution lists with exchange so that any email that goes to this addressess goes both to the sales person and to a catch all mailbox which is then input into our systems. I was wondering if it would be possible so that when an email is received to this format of address it automatically determines where to send it as follows An email comes into joe.bloggs.sa... at example.com this then gets split so that it is delivered to joe.blo... at example.com and also s... at example.com. I think that i have figured out how to rewrite to the second address but how can I get it to send it to the new address as well. I was hoping there would be a way of doing this automatically so that we don't have to setup these addresses for every new starter and they apply on a global basis. Hopefully that explains better what I am after. Regards Lee
My personal opinion is what you want can have in some cases unpredictable results, so I propose you to use only some kind of list managers (as listar for example) Lee W wrote:> Hi, > > I posted this query a few weeks ago but never received a response. I'm > guessing that I didn't put things right, so here is another go. > > The company that I work for currently has email addresses in the format > of:- > > firstname.surname.ext at example.com > > Which we use for various marketing campaigns (therefore the .ext bit is > variable). > > Currently we have this setup as distribution lists with exchange so > that any email that goes to this addressess goes both to the sales > person and to a catch all mailbox which is then input into our systems. > > I was wondering if it would be possible so that when an email is > received to this format of address it automatically determines where to > send it as follows > > An email comes into joe.bloggs.sa... at example.com this then gets split so > that it is delivered to joe.blo... at example.com and also s... at example.com. > > I think that i have figured out how to rewrite to the second address but > how can I get it to send it to the new address as well. I was hoping > there would be a way of doing this automatically so that we don't have > to setup these addresses for every new starter and they apply on a > global basis. > > Hopefully that explains better what I am after. > > Regards > > Lee > _______________________________________________ > CentOS mailing list > CentOS at centos.org > http://lists.centos.org/mailman/listinfo/centos > >
Am Sa, den 14.05.2005 schrieb Lee W um 11:28:> An email comes into joe.bloggs.sa... at example.com this then gets split so > that it is delivered to joe.blo... at example.com and also s... at example.com. > > I think that i have figured out how to rewrite to the second address but > how can I get it to send it to the new address as well. I was hoping > there would be a way of doing this automatically so that we don't have > to setup these addresses for every new starter and they apply on a > global basis.> LeeI suggest you are working with plussed addresses. To be specific an example would be john.doe+event1 at foo.com You are then able to use the parts as follows: %1 at foo.com == john.doe at foo.com %2 at foo.com == event1 at foo.com [%3 == +event1] Alexander -- Alexander Dalloz | Enger, Germany | GPG http://pgp.mit.edu 0xB366A773 legal statement: http://www.uni-x.org/legal.html Fedora Core 2 GNU/Linux on Athlon with kernel 2.6.11-1.14_FC2smp Serendipity 17:35:20 up 17:07, 17 users, 1.02, 0.62, 0.45 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Dies ist ein digital signierter Nachrichtenteil URL: <http://lists.centos.org/pipermail/centos/attachments/20050514/95fb06ec/attachment-0004.sig>
Aleksandar Milivojevic
2005-May-16 15:36 UTC
[CentOS] Adding/Removing Headers with Sendmail
Lee W wrote:> An email comes into joe.bloggs.sa... at example.com this then gets split so > that it is delivered to joe.blo... at example.com and also s... at example.com.You can attempt playing with plussed addresses, so that you use joe.bloggs+campain at example.com. Look for description of virtusertable feature in /usr/share/docs/sendmail/README.cf (part of sendmail-doc package, if you don't have it, install it). Combine it with aliases, and you can acomplish what you need to do. Another posibility, if you want to automate everything, so that you don't need to configure new setup for each and every campain, would be to write Milter based filter for sendmail. Than you can do all kinds of fancy stuff. You can find some basic documentation about Milter in /usr/share/docs/sendmail/README.libmilter (with source code of example filter). If you want to write programs using the library, you'll need full API documentation. Unfortunately it is not included with sendmail-doc package. Download Sendmail source from www.sendmail.org, and you'll find documentation in HTML format there. This is how you would implement it using the filter: Register callbacks for RCPT command and EOM (end of message). You need callback for RCPT so that your filter is called each time sendmail detects RCPT command (new recipient specification). You need EOM callback, since only in EOM callback function list of recipients can be altered. Now, if in RCPT callback you detect email address of format first.last.campain at example.com (or first.last+campain at example.com, I would prefer this format), add it to the list stored in private data structure (the one you registered with smfi_setpriv() function). Make sure you are creating per-messeage private data structures inside global per-connection structure (there may be more than one email delivered in single connection). Then in EOM callback, change the list of recipients so that you add first.last at example.com and campain at example.com, and then if operation was successfull remove first.last.campain at example.com from the list of recipients. Dealocate per-message private data structure and free allocate memory. You should be carefull in this step. You don't want to add non-existing addresses, or do this for non-existing campains, and so on... You should also have abort callback, that would do cleanup in case message is aborted somewhere in the middle, before EOM callback was called (dealocate private data structure and free memory). And of course a callback for close to clean up global per-connection pointers (smfi_setpriv(ctx, NULL) followed by free() to dealocate memory back to the system). Don't forget that Milter based filters are multithreaded applications, and care should be taken when writing them. If you don't feel comfortable programming something like this, hire an experienced programmer. For somebody with experience with Milter API, it should take about hour or two to write simple filter like this and have it fully debugged (provided you give correct specifications of job to the programmer). No, I'm not going to do it for a fee, I already have too many other (more fun) things to do ;-) Of course, you don't need to use C to write a filter. There are good Perl modules that allow you to write filters in Perl too. -- Aleksandar Milivojevic <amilivojevic at pbl.ca> Pollard Banknote Limited Systems Administrator 1499 Buffalo Place Tel: (204) 474-2323 ext 276 Winnipeg, MB R3T 1L7