In Sendmail configuration, both /etc/aliases
and /etc/mail/virtusertable
handle email routing, but serve fundamentally different purposes:
# /etc/aliases example:
webmaster: john,sarah
support: |/usr/local/bin/support_script
info: /dev/null
The virtusertable
shines when dealing with multiple domains on a single server:
# /etc/mail/virtusertable entries:
user@aaa.com localuser1
@bbb.com localuser2
sales@ccc.com external@otherdomain.com
Feature | /etc/aliases | virtusertable |
---|---|---|
Domain-based routing | No | Yes |
Pipe to programs | Yes | No |
File output | Yes | No |
Cross-domain forwarding | Limited | Full support |
After modifying either file, remember to:
# For aliases:
newaliases
# For virtusertable:
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
Combine both for powerful routing scenarios:
# virtusertable entry:
@special.com internal-list
# aliases entry:
internal-list: ":include:/path/to/member/list",
|/usr/local/bin/process_special
In Sendmail configuration for multi-domain mail servers, both /etc/aliases
and /etc/mail/virtusertable
handle email routing but serve fundamentally different purposes:
# Typical virtusertable entry: info@aaa.com localuser1 sales@bbb.com localuser2 @ccc.com localuser3 # Typical aliases entry: webmaster: admin postmaster: root abuse: security-team
virtusertable specializes in:
- Domain-based virtual hosting (multiple domains on one server)
- Catch-all addresses handling (@domain.com mappings)
- Cross-domain forwarding between virtual domains
aliases excels at:
- System-wide local mail routing (regardless of domains)
- Mailing list expansions (multiple recipients per alias)
- Special system addresses (postmaster, abuse, etc.)
When configuring a multi-domain setup, you might combine both:
# virtusertable (domain-specific routing) support@company.com support-team @clientdomain.com client-mails # aliases (system-wide routing) support-team: john,mary,bob client-mails: "/var/mail/client_processor"
For proper virtual domain handling:
- Always rebuild maps after changes:
makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable newaliases
- Enable virtual hosting in sendmail.mc:
FEATURE(virtusertable', hash -o /etc/mail/virtusertable.db')dnl
The virtusertable lookup occurs before aliases processing, making it more efficient for domain-based routing. Aliases processing includes additional features like:
- Pipe delivery to programs
- File appending
- Include file expansion
For high-volume servers, consider moving frequently accessed aliases to virtusertable where possible.