标签:virtual domains local domains 虚拟域名 本地域名 邮件服务器
可能有些翻译问题
数据库中的虚拟域名(Virtual domains)
在开始进一步配置之前,需要先了解下面的一些概念:
Postfix 从互联网接收邮件。通常,Postfix 通过设置 “mydestination”的值了解本地域名和本地用户(Linux系统中默认在 /etc/passwd 文件下)。这表明,所有的用户都能够采用任何本地域名接收邮件。以下面的设置为例:
mydestination = example1.com, example2.com, example3.com
假设系统中的用户为 “johndoe”则有 Postfix可以接受收件名称为如下的电子邮件:
本地域名和用户名称可以存放在 MySQL、PostgreSQL等数据库中。以这种方式配置的话,Postfix需要了解如何接入数据库,并能够操作数据库的信息。这种配置下的邮件地址被称为虚拟域名(virtual domains),邮件用户被称为虚拟用户(virtual users)。它们都是存放在数据库中。
Postfix 能够识别两种基本的虚拟域名——“Virtual alias domains”和“virtual_alias_maps”。具体来说,“Virtual alias domains”用于将邮件从一个地址,转发到另外一个或者多个地址。它无法为任务用户接收邮件,只是转发邮件。“Virtual_alias_maps”包含用户的收、发邮件地址信息、收件人域名或者是全部的域名。同样,“Virtual_alias_map”同样可以用于本地的地址管理。
还有一种虚拟域名(Virtual domains)被称为“Virtual mailbox domains”,是用于实际接收邮件的。
上面的描述过于抽象,以一个例子来说明。假如在你的系统中,假如有一个“Virtual_mailbx_maps”内容如下:
Virtual user |
Virtual mailbox location |
john@doe.org |
/var/mail/doe.org/john/Maildir |
jack@doe.org |
/var/mail/doe.org/jack/Maildir |
jeff@foo.org |
/var/mail/foo.org/jeff/Maildir |
如上表所示,虚拟用户(Virtual user)john 对应的邮箱地址为 /var/mail/doe.org/john/Maildir 。因此,所有发给这个用户的邮件,均是存放在相应的邮箱下面(以上这段是个人理解)
。然而,上面的收件地址中出现了 “doe.org”、“foo.org”这两个域名。但是,二者代表的意义难以理解。因此,解释这两者的意义在名为“Virtual_mailbox_domains”的表中解释,如下所示:
Virtual domain |
Just some dummy string |
doe.org |
banana daiquiri |
foo.org |
tequila sunrise |
即是说,doe.org 代表 “Virtual domain”列中的 doe.org;foo.org 代表“Virtual domain”列中的 foo.org。在上面的表中,右侧的列是没有意义的。有两列是因为 Postfix 在进行关联的时候,需要两列进行关联。左侧的列(“left-hand side”=LHS)通常为键(key),包含有 Postfix 查找的信息;右侧的列(“right-hand side”=RHS)是告诉 Postfix 如何实现所需功能。对于虚拟域名(Virtual domain)来说,右侧的列是无关紧要的。
在 /etc/postfix/mysql-virtual-alias-maps.cf 中有如下的代码:
# Information on how to connect to your MySQL server
user = someone
password = some_password
hosts = 127.0.0.1
# The database name on the servers.
dbname = mailserver
# The SQL query template.
query = SELECT destination FROM virtual_aliases WHERE source=‘%s‘
那么,在 Postfix 的配置文件中(/etc/postfix/main.cf)中,将“virtual_alias_maps”配置成为如下格式即可:
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_alias_maps.cf
则,假如 Postfix 要将一封电子邮件发送给 john@doe.net,然后需要去检查 virtual alias map。Posfix 首先连接到 IP 地址为 127.0.0.1 的 MySQL 数据库,并用“user”和“password”变量提供的用户名称和密码登陆。之后,Postfix 会打开变量“dbname”指向的数据库,并执行 query 命令。在执行指令的过程中,将 source 的“%s”用邮件名称代替,所以在 MySQL 中执行的查询指令是:
SELECT destination FROM virtual_aliases WHERE source=‘john@doe.net‘
假如这个查询返回以下的数值:
- jack@example.com
- jeff@example.com
- kerstin@example.com
这意味着,
john@doe.net 是下面邮件的别名:jack@example.com,jeff@example.com,kerstin@example.com。
邮件发送中Virtual domains 和 Local domains 的概念
标签:virtual domains local domains 虚拟域名 本地域名 邮件服务器
原文地址:http://blog.csdn.net/shiyuan0/article/details/43853359