1 {{E-mail aliases (AKA, redirects)}}
4 {{A valid username to appear before the "@" in an e-mail address}}
7 {{A valid e-mail address.
8 It may also be a username only, in which case it is interpreted as a local
11 extern type aliasSource;
12 {{An e-mail recipient whose mail you want to redirect}}
13 extern val userSource : emailUser -> aliasSource;
14 {{The part appear before the "@" in your desired source address}}
15 extern val defaultSource : aliasSource;
16 {{Matches any mail to this domain that doesn't match any other rule.}}
18 extern type aliasTarget;
19 {{A place to redirect messages}}
20 extern val addressTarget : email -> aliasTarget;
21 {{Redirect to this e-mail address.}}
22 extern val addressesTarget : [email] -> aliasTarget;
23 {{Redirect to all of these addresses.}}
24 extern val dropTarget : aliasTarget;
25 {{Silently delete all mail to the associated source.}}
27 extern val aliasPrim : aliasSource -> aliasTarget -> [Domain] {MailNodes: [mail_node]};
28 {{Request redirection of all mail from the source to the target, specifying on
29 which nodes this redirection should be applied.}}
31 val emailAlias = \user -> \email -> aliasPrim (userSource user) (addressTarget email);
32 {{Redirect mail for the user at the current domain to the e-mail address.}}
33 val aliasMulti = \user -> \emails -> aliasPrim (userSource user) (addressesTarget emails);
34 {{Redirect mail for the user at the current domain to all of the e-mail
36 val aliasDrop = \user -> aliasPrim (userSource user) dropTarget;
37 {{Silently delete mail to the user at the current domain.}}
39 val defaultAlias = \email -> aliasPrim defaultSource (addressTarget email);
40 {{When a message to the current domain doesn't match any other rule, send it to
41 this e-mail address.}}