参考原文网址:https://workaround.org/ispmail/lenny/virtual-domains-in-db
可能有些翻译问题
数据库中的虚拟域名(Virtual domains)
在开始进一步配置之前,需要先了解下面的一些概念:
  • 本地域名(Local domains)
Postfix 从互联网接收邮件。通常,Postfix 通过设置 “mydestination”的值了解本地域名和本地用户(Linux系统中默认在 /etc/passwd 文件下)。这表明,所有的用户都能够采用任何本地域名接收邮件。以下面的设置为例:
mydestination = example1.com, example2.com, example3.com
假设系统中的用户为 “johndoe”则有 Postfix可以接受收件名称为如下的电子邮件:
johndoe@example1.com
johndoe@example2.com
johndoe@example3.com
  • 虚拟域名(Virtual domains)
本地域名和用户名称可以存放在 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)来说,右侧的列是无关紧要的。

通过上面的介绍可以知道,通过表的映射,可以使不同的值关联起来。因此,对数据库进行查询的时候,还需要向 Postfix 解释所查询的哪两列。当然,了解了这些,还尚未解释清楚 Postfix 是如何实现与数据库连接,协同工作的。关于如何配置 Postfix 与 数据库,可以参照网址:http://www.postfix.org/MYSQL_README.html。下面是一个简单的说明实例:
在 /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 的概念相关推荐

  1. Spring的任务调度和邮件发送

    感谢网友 网络时空 兄弟对我的提醒,我已经把邮件发送中加上了邮件嵌入图片和增加附件方面的内容.谢谢 8.1.1任务调度简介 Spring包含了对定时调度服务的内置支持类.当前,Spring支持从JDK ...

  2. 企业怎样大批量的发送邮件?选择专业的邮件发送平台很重要!

    在生活中,企业给许多客户发送相同内容的营销活动或者通知邮件时,由于客户数量太多,而又需要给每个客户发一封邮件,对应相应的名字.相应的数据内容,是非常很繁琐的.因此,怎样大批量的发送邮件就成了许多企业的 ...

  3. 在EDM邮件营销中是如何运用病毒式营销

    在EDM邮件营销中运用病毒式营销可以带来很好的效果.先来了解一下病毒式营销的概念. 病毒式营销是一种惯用的网络营销方法,常用于进行网站推广.品牌推广等,病毒式营销利用的是用户口碑传播的原理:在互联网上 ...

  4. 你有没有觉得邮件发送人固定配置在yml文件中是不妥当的呢?SpringBoot 动态设置邮件发送人

    明月当天,不知道你有没有思念的人 前言 之前其实已经写过SpringBoot异步发送邮件,但是今天在一个小项目中要用到发送邮件时,我突然觉得邮件发送人只有一个,并且固定写在yml文件中,就是非常的不妥 ...

  5. exchange无法收发邮件_SpringBoot2.x系列教程69--SpringBoot中整合邮件发送

    SpringBoot2.x系列教程69--SpringBoot中整合邮件发送 作者:一一哥 注: 本文案例以QQ邮箱发送的实现为例! 一. 邮件发送概述 1. 概述 在Spring框架中提供了一个Ja ...

  6. php邮件发送tp,在Thinkphp3.2 中使用PHPMailer 发送邮件

    phpmailer发送邮件是php开发者首选的一个邮件发送插件了,下面我来介绍怎么集成phpmailer到thinkphp框架了,有需要了解的朋友可参考. phpmailer发送邮件功能很强大,今天真 ...

  7. Linux中Postfix邮件发送配置(三)

    部署DNS服务器 postfix根据域名和地址做一个MX记录,A记录,PTR记录(一般在互联网上邮件服务器都要反解,没有PTR记录会认为是垃圾邮件) $ service iptables stop $ ...

  8. 邮件发送---在.net2003和2005中

    smtpClient发邮件错误:不允许使用邮箱名称. 服务器响应为: You are not authorized to send mail, authentication is required 使 ...

  9. exchange无法收发邮件_SpringBoot2.x系列教程69--SpringBoot中整合Mail实现邮件发送

    SpringBoot2.x系列教程69--SpringBoot中整合邮件发送 作者:一一哥 注: 本文案例以QQ邮箱发送的实现为例! 一. 邮件发送概述 1. 概述 在Spring框架中提供了一个Ja ...

最新文章

  1. wps电脑版_WPS的前前前前身,是一根绳子?懂点历史没坏处
  2. Redis进阶-布隆过滤器
  3. 超牛逼的异步协程爬虫
  4. CSS3实现漂亮ToolTips
  5. lucky前面加a还是an_lucky的用法
  6. word域变成正常文本_超级干货|最全的PPT、Excel、Word实用宝典,助你办公效率翻倍!...
  7. Access 时间比较错误
  8. B. File List
  9. 活动目录(Active Directory)域故障解决实例(转载)
  10. 小程序canvas转base64方法 使用upng库 亲测没问题
  11. Java基础Character类、Math类、Date类、DateFormat类、Calendar类
  12. Java日志框架 -- Logback(Logback入门案例、logback配置(FileAppender、异步日志、拆分Appender、过滤器)、logback-access)
  13. Tango学习笔记(1)
  14. 计算机上的360云盘派啥用,如何使用360云盘
  15. 【知识点和练习题】心田花开:二年级语文汉语拼音补习
  16. 谷歌浏览器安全证书不受信任_windows7系统下谷歌浏览器提示该网站的安全证书不受信任如何解决...
  17. 第16届重型车辆运输技术国际大会(HVTT16) 2021中国国际道路运输装备科技博览会(RTET)
  18. idea连接数据库测试
  19. 【机器学习】集成学习及算法详解
  20. u盘自动打开html,手机怎样读取u盘文件

热门文章

  1. MATLAB实现PCA去除眼电信号
  2. 微信支持聊天图片搜索;任天堂社长称暂不入局元宇宙,因为没弄懂;英特尔开放x86内核授权 | EA周报...
  3. 视频点播直播推流EasyDSS如何生成可自动播放的分享链接?
  4. CP2102和CP2104的区别
  5. 嵌入式没前途,做app更吃香
  6. C语言制作一个五子棋小游戏【附代码】
  7. java中elapseTime设置新时间,Jmeter系列(44)- 详解 Elapsed time、Latency、Connect Time的含义...
  8. 微波消解仪的工作原理是什么?
  9. UTC时间格式化(JAVA) 时间带T Z
  10. 数位dp 最高位和最低位差值_西门子S7300/400与SINAMICS S120 之间的DP总线通讯