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

Reply via email to