On Tue, Dec 10, 2013 at 10:05:26AM +0000, John Cox wrote: > Hi > Hi,
> I'm clearly missing something here - it seems to me that virtual is a > pure superset of alias - why would you ever want to use alias? > > Thanks > Nope, virtual is not a superset of alias and it has different semantics. Think of it as follows: Whenever you send a mail to a mail system, you have an input and output. The input is the recipient mail address, the output is the end-user that can be local (including a program, a file, ...) or not. When dealing with aliases, you assume that the domain accept mails for all of its system users. The aliases mapping does not need to know about every user on the system, it only needs to know about some possible transformations it should apply before the envelope is attempted for a delivery. When dealing with virtual, you assume that the domain does not accept mail for all system users. The virtual mapping has to know about every single recipient for a domain. Real-life example, take opensmtpd.org: table aliases { root = gilles } accept for domain opensmtpd.org alias <aliases> deliver to mbox If you send mail to e...@opensmtpd.org it will work because he has a system account. If you send mail to root@, it will work because it's transformed to gilles@ who has a system account. table vmap { root = gilles } accept for domain opensmtpd.org vmap <vmap> deliver to mbox now, no one but root@ is an acceptable input, so sending mail to r...@opensmtpd.org delivers to the system user gilles... but if you send mail to gil...@opensmtpd.org, it's not part of the input list and it's rejected. -- Gilles Chehade https://www.poolp.org @poolpOrg -- You received this mail because you are subscribed to misc@opensmtpd.org To unsubscribe, send a mail to: misc+unsubscr...@opensmtpd.org