如何搭建邮件服务器

一、国内的邮件服务提供商:
   亿业科技  http://ui.easeye.com.cn/wiki/index.php/Webservice方法-SendMailListRequestByGroup接口
   EwoMail.com 深圳智沃科技有限公司
 
二、开源方案:
   Postfix+Amavisd+ClamAV+SpamAssassin  可以满足一般的需求,是比较简单的邮件反垃圾病毒解决方案。
  *** MX记录:MX记录存在于域名的 DNS文件中,用于将某个域名的电子邮件指向到对应的邮件服务器处理。
  *** A记录:是用来指定主机名(或域名)对应的IP地址记录。
 
三、你需要知道的软件及功能:
  ***postfix:  IBM的GPL协议之下开发的MTA(邮件传输代理)软件。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。主要竞争对手Exim,Qmail。
  ***Nginx:一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
     smtp:知道smtplib.SMTP里发生了什么,需要怎么样的邮件parts,尝试自己实现smtp服务器。
  ***dkim: 电子邮件验证标准——域名密钥识别邮件标准 。
  ***dmarc:DMARC协议是有效解决信头From伪造而诞生的一种新的邮件来源验证手段,(为邮件发件人地址提供强大保护),并在邮件收发双方之间建立起一个数据反馈机制。
     ptr:(Pointer Record ) PTR记录是电子邮件系统中的邮件交换记录的一种,常被用于反向地址解析。
       MX record:邮件交换记录,是域名系统(DNS)中的一种资源记录类型。
       SPF Record:(Sender Policy Framework)作用发送策略框架,是解决邮件防伪和垃圾邮件的一个新标准。http://ui.easeye.com.cn/EventMail/SPFRecord.aspx
  ***SSL/TLS证书:SSL/TLS证书是什么,证书怎么验证的、怎么申请、吊销。
       starttls:(简称OE)有时候也称非认证加密。是一种明文通信协议的扩展,能够让明文的通信连线直接成为加密连线(使用SSL或TLS加密),而不需要使用另一个特别的端口来进行加密通信,属于机会性加密。
  ***Amavisd :是介于MTA(邮件传输代理)和邮件分析直接的接口。常和clamav,spamssassin一起使用。
  ***ClamAV: 开源的杀毒软件,https://hacpai.com/article/1533785819461。
  ***spamassassin:  一种安装在邮件伺服主机上的邮件过滤器,用来辨识垃圾信。
       Python memoryview 调用 

四、实战,在Ubuntu 上安装Zimbra开源版(本部分转自https://cloud.tencent.com/developer/article/1344430)
   

  Zimbra是一个完整的邮件服务器,它提供配置的Postfix与OpenDKIM,Amavis,ClamAV和Nginx,准备处理一个或多个域的邮件。Linode上的Zimbra是您将找到的正常运行的邮件服务器的最快路径之一。本指南将指导您完成Zimbra安装过程。

注意本指南中所需的步骤需要root权限。请务必以root身份或使用sudo前缀运行以下步骤。有关权限的更多信息,请参阅我们的用户和组指南。

设置您的Linode

  1. 创建一个至少具有4 GB RAM的Linode。有关设置主机的帮助,请参阅“ 入门”
  2. 将Ubuntu 14.04 LTS映像部署到您的Linode。考虑使用少于一半的可用磁盘空间用于第一个映像,另一半用于在更新之前获取备份映像。您的分区大小取决于您希望处理的帐户数量和邮件量。部署后,启动新主机。使用Linode Manager中远程访问页面上显示的命令和创建Linode时输入的密码SSH进入终端。
  3. 您必须在安装Zimbra之前设置主机名和完全限定的域名(FQDN),并更新/ etc / hosts
  4. 在DNS提供程序中配置DNS条目以提供主机的A记录,并将域MX记录指向新服务器。强烈建议使用反向DNS指针,以防止服务器中的邮件被拒绝。有关设置DNS的详细信息,请参阅运行邮件服务器:DNS记录

下载Zimbra

  1. 下载最新版本的Zimbra开源版。在安装之前阅读发行说明并了解要求和警告是个好主意。选择Ubuntu 14.04 LTS 64位版本并将其下载到您的Linode wget。要执行此操作,请右键单击浏览器中的64位x86链接,然后从Zimbra页面复制该链接。将其粘贴到shell命令中并执行它。
    例如:

    wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz
    注意本指南是关于设置新的Zimbra Linode,但如果您要升级现有的Zimbra安装,请务必阅读Zimbra提供的发行说明!这些注释位于您找到该软件的下载页面上。升级之前或之后可能需要执行一些步骤。
  2. 以下载Zimbra tarball相同的方式下载SHA256校验。
  3. 测试校验。

    sha256sum -c zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz.sha256
    如果校验匹配,则此命令将输出“OK”。如果没有,您可能有一个损坏的下载。再次下载并重新检查。
  4. 将Zimbra应用程序文件解压缩到Linode root用户目录。

    tar xzf zcs-*.tgz

安装Zimbra

  1. 切换到解压缩的目录并运行安装脚本。

    cd zcs-*  ./install.sh
    检查一些先决条件后,系统会要求您接受许可协议。请注意,虽然Zimbra OSE是开源的,但它不是GPL。脚本显示的链接允许您阅读术语。如果您决定不安装,请将默认回复保留为N,然后按Enter键。否则键入Y并按Enter继续。(在运行安装脚本的任何时候,要接受括号中显示的默认答案,您只需按Enter键。)

    ...  License Terms for the Zimbra Collaboration Suite: http://www.zimbra.com/license/zimbra-public-eula-2-5.html  Do you agree with the terms of the software license agreement? [N]
    回答Y后,脚本会检查已安装的软件并报告任何差异。
  2. 满足缺少的依赖关系。
    Zimbra将通过MISSING:字段通知您任何缺少的依赖项,如下所示。

    Checking for prerequisites... FOUND: NPTL FOUND: netcat-openbsd-1.105-7ubuntu1 FOUND: sudo-1.8.9p5-1ubuntu1.1 FOUND: libidn11-1.28-1ubuntu2 FOUND: libpcre3-1:8.31-2ubuntu2.1 MISSING: libgmp10 FOUND: libexpat1-2.1.0-4ubuntu1 FOUND: libstdc++6-4.8.4-2ubuntu1~14.04 MISSING: libperl5.18 MISSING: libaio1 FOUND: resolvconf-1.69ubuntu1.1 FOUND: unzip-6.0-9ubuntu1.3  Checking for suggested prerequisites... MISSING: pax does not appear to be installed. FOUND: perl-5.18.2 FOUND: sysstat MISSING: sqlite3 does not appear to be installed.  ###WARNING###  The suggested version of one or more packages is not installed. This could cause problems with the operation of Zimbra.  Do you wish to continue? [N]
    必须先安装这些依赖项,然后再进一步安装,所以回答N退出安装程序并解决问题。例如,安装以下包将满足上面输出中指定的依赖项:

    sudo apt-get install libgmp10 libperl5.18 libaio1 pax sqlite3
  3. 选择安装选项。
    安装缺失的软件包后,再次启动安装程序。Zimbra将继续安装。接受所有默认值,zimbra-snmp如果您没有使用SNMP监视,则可能包含该例外。

    Checking for installable packages  ...  Install zimbra-snmp [Y] n  ...  The system will be modified.  Continue? [N]
    此时,您已经准备好允许安装,这样回答ÿ。将安装软件包,并将大多数Zimbra设置配置为默认设置。
  4. 配置MX记录。
    如果您收到有关缺少的MX记录的错误,如下所示,则表示您的域DNS记录与Zimbra期望找到的内容不匹配,具体取决于您之前配置的主机名。检查您的/etc/hostname文件和DNS记录以解决问题。

    DNS ERROR resolving MX for linodemail.example.com It is suggested that the domain name have an MX record configured in DNS Change domain name? [Yes]
    如果您只是测试Zimbra而不是部署,请继续回答N以跳过更改域名。
  5. 设置管理员密码和DNS。
    接下来,您将看到主菜单。安装程序显示Zimbra的当前设置,并允许您更改它们。输入要更改的主要部分的编号,将显示该部分的子菜单。输入要更改的部分中的项目编号,然后输入首选值。

    Main menu  1) Common Configuration: 2) zimbra-ldap:                             Enabled 3) zimbra-logger:                           Enabled 4) zimbra-mta:                              Enabled 5) zimbra-dnscache:                         Enabled 6) zimbra-store:                            Enabled     +Create Admin User:                    yes     +Admin user to create:                 admin@linodemail.computassist.net ******* +Admin Password                        UNSET     ...  Address unconfigured (**) items  (? - help)
    默认情况下,不设置管理密码。要设置密码,请输入6以显示zimbra-store菜单,然后输入4以在提示符下键入新密码。输入r返回主菜单。对于DNS,进入zimbra-dnscache菜单,然后更改Master DNSIP地址并返回主菜单。
    注意在UTC上运行邮件服务器是很常见的,因为它们经常接收来自世界各地的邮件。当夏令时启动或退出时,这有助于跟踪邮件流,并使查阅日志更容易。如果您愿意,您可以选择使用当地时间。
  6. 完成安装。
    输入a以将更改应用于设置。最后,输入Y继续安装。

    *** CONFIGURATION COMPLETE - press 'a' to apply Select from menu, or press 'a' to apply config (? - help) a Save configuration data to a file? [Yes] Save config in file: [/opt/zimbra/config.13935] Saving config in /opt/zimbra/config.13935...done. The system will be modified - continue? [No] y
    安装程序将开始完成Zimbra安装的最后步骤,并告知您每个步骤的进度。系统将询问您是否希望与Zimbra家庭办公室的人员分享您的新安装通知。

    You have the option of notifying Zimbra of your installation. This helps us to track the uptake of the Zimbra Collaboration Server. The only information that will be transmitted is:     The VERSION of zcs installed (8.6.0_GA_1153_UBUNTU14_64)     The ADMIN EMAIL ADDRESS created (admin@linodemail.example.com)  Notify Zimbra of your installation? [Yes] Notifying Zimbra of installation via http://www.zimbra.com/cgi-bin/notify.cgi?VER=8.6.0_GA_1153_UBUNTU14_64&MAIL=admin@linodemail.example.com
    安装完成后,您将看到输出:

    Configuration complete - press return to exit
  7. 访问您的邮件服务器。
    使用https访问浏览器中的Linode主机名或IP地址。例如,https://mail.example.com。这将打开登录页面。使用安装期间创建的管理员帐户和密码登录。
    警告由于您尚未安装受信任的证书,因此您可能会收到有关不受信任的站点的浏览器警告。现在绕过警告。稍后您可以将Zimbra的自签名证书添加到浏览器或在Zimbra中安装可信证书。
    


  如果您配置了相应的DNS记录(上面设置您的Linode的第4步),您应该能够使用此帐户发送和接收邮件。

 配置Zimbra服务器

  Zimbra提供了两种管理配置的方法:Web控制台和命令行。命令行界面超出了本指南的范围,但您可以在管理员指南的附录A中找到它,该指南通过管理控制台中的帮助中心进行链接。

在管理控制台中,您可以配置新帐户的默认设置(Zimbra将其称为“服务等级”或“COS”),添加和管理帐户,更改密码以及通常管理邮件服务器。管理控制台具有大多数设置的内置说明。单击输入项的标签,将出现工具提示。单击右下方的“ 更多”按钮,将显示更详细的注释。

  
  

注意如果您已登录Zimbra Webmail页面,也可以访问管理控制台。窗口右上角的帐户名旁边的下拉菜单提供了指向管理控制台的链接。

 全局设置

  您的服务器在安装时已配置,大多数设置将按原样运行。您可能希望特别访问一些,以控制它愿意与谁交谈并消除某些类型的垃圾邮件。

  1. 从管理控制台的菜单中,单击配置,然后单击全局设置。左侧有一个页面菜单。随意浏览,这里有数百种选择。
  2. 单击MTA页面以配置一些可以控制您将接受邮件的Postfix设置。如果您在自己之外的其他网络上已知要接受邮件的服务器,则可以将它们添加到MTA可信网络。将它们作为带子网的IP地址输入,用空格分隔,例如“127.0.0.0/8 10.0.0.0/16 12.34.56.78/32”。
  3. 在“ 消息”部分中控制最大邮件大小。以KB为单位输入限制,因此25 MB将为25600 KB。
  4. 协议检查他们进入你的系统之前,可以阻止许多垃圾邮件。您可以将它们全部打开,但至少应检查发件人地址是否完全合格
  5. DNS检查使用实时黑名单来拒绝来自已知垃圾邮件服务器的邮件。zen.spamhuas.org是一个好的建议开始。在“客户端RBL列表”中输入域名。
  6. 单击AS / AV页面。在这里,您可以确定如何标记或拒绝邮件的“垃圾邮件”。Zimbra使用SpamAssassin为每条消息打分。得分为零或小于零意味着该消息可能值得传递。高于零的分数意味着有一些指标可能是不需要的电子邮件。所述杀死百分比是高于该Zimbra的不会在所有传递消息的分数。该标签%的是分数高于该Zimbra公司将让通过的消息,但它传递到垃圾邮件文件夹。
    这些百分比将根据您的传入邮件流而有所不同。您必须平衡控制垃圾邮件与获取好邮件的误报。此外,这些数字全球适用于您的所有帐户。实验将告诉你移动的方式。Zimbra以Kill = 75,Tag = 33开始。你可能会遇到相当多的垃圾邮件。经过大量的测试和超过一年的逐渐走下去,我到达Kill = 20,Tag = 4.请在您自己的条件下测试并学习您自己的最佳值!
  7. 单击“ 保存”按钮,然后单击左上角的“ 主页”按钮。
  8. 如果您对全局设置进行了更改,请在继续之前重新启动服务器。

 服务类

  Zimbra安装了一个默认的服务类,它将应用于所有新帐户。如果您不需要为不同的用户组提供不同的功能或设置,那么这个默认类就是您所需要的。您可以创建其他类,然后根据需要将其分配给用户,以控制其权限,功能访问权限,配额和默认设置。

  1. 要在控制台中管理COS,请单击“ 配置”菜单选项。将打开“配置”菜单,并且已选择“服务等级”

  

  2. 双击默认 COS,打开“服务等级”页面。左侧有一个页面菜单。每个页面都允许您修改此COS的设置。

  

  3. 您需要浏览“ 功能”页面,然后确定要为用户提供的内容。例如,如果您没有足够的存储空间,限制某些形式的共享或启用外部POP或IMAP访问,您可能希望关闭公文包(文件保存和共享)。

  4. 接下来,阅读首选项,按照您希望的方式为用户设置每个项目。请记住,所有这些设置仅适用于此类服务,您可以根据需要创建其他类。

  5. 最后,查看“ 高级”页面。建议设置帐户配额,即使它相当大,以防止一个用户占用所有磁盘空间。您可以在此处自定义配额警告消息模板。向下滚动以设置密码要求,锁定选项以及垃圾邮件和垃圾邮件保留策略。

  6. 如果需要,您可以继续添加更多服务类别,并为其他类型的用户定义所有这些设置。不同的类可以具有不同的配额,访问更多或更少的功能,或者可能一个组获得外部IMAP或访问公文包选项卡。请注意,单个用户帐户设置可以覆盖COS设置。除非您已定义另一个用户帐户并在创建帐户时选择它,否则将为新用户帐户分配默认COS。

 用户帐户

  您在安装Zimbra时收到了管理员帐户。开源版对您可以拥有的帐户数量没有限制。它仅受服务器处理流量的能力的限制。如果您已通过服务等级,则创建另一个帐户将是熟悉的区域之旅,因为大多数设置都相同,但适用于此个人帐户。

  创建帐户

  1. 主页单击“ 管理”。将显示“ 帐户”页面。
  2. 单击右上角的齿轮图标,然后单击“ 新建”
  
  

  3. 唯一需要的项目是电子邮件地址和姓氏,但您需要创建临时密码,如果您已设置其他密码,则可能会覆盖默认COS。

  4. 如果要在此帐户上显式设置其他属性,请单击“ 下一步”继续浏览页面。您可以随时选择“ 完成”以接受其余属性的默认值。

  5. 创建帐户后,即可立即使用。

  管理帐户

  当用户忘记密码时,可以轻松完成重置。

  1. 在“ 管理帐户”页面上,右键单击要更改的帐户,然后单击“ 更改密码”

  

  2. 输入您将发送给用户的临时密码,并单击必须更改密码。下次登录时,系统会提示他们选择新密码。

  

 安装SSL证书

  Zimbra在安装时创建并使用自签名SSL安全证书。如果您计划向其他人提供电子邮件服务,则需要从第三方证书颁发机构(CA)安装可信证书。

 创建证书签名请求(CSR)

  1. 登录Zimbra管理控制台
  2. 单击配置菜单,然后单击证书
  3. 单击工具栏中的齿轮图标,然后选择“ 安装证书”
  4. Zimbra证书安装向导将打开。选择主域,然后单击“ 下一步”
  5. 选择生成证书签名请求(CSR)的选项,然后单击“ 下一步”
  6. 有关如何正确填写表单的详细信息,请访问CA的网站并按照其建议操作。通常,您将输入您的FQDN作为通用名称,相应的国家/地区,州/省,城市和您自己的组织名称。如果您的证书仅用于主域,则将备用名称留空,或者如果您将获得通配符或多域证书,则输入域的其他形式(不同的主机,子域)。出于电子邮件的目的,您的证书只需要验证服务器的FQDN。
  7. 复制CSR文本并完成Zimbra向导,返回到CA的网站并按照其过程购买SSL证书。

 将您的证书安装到Zimbra。

  1. 在Zimbra管理控制台中,单击“ 配置”菜单,然后单击“ 证书”
  2. 单击工具栏中的齿轮图标,然后选择“ 安装证书”
  3. Zimbra证书安装向导将打开。选择主域,然后单击“ 下一步”
  4. 选择安装商业签名证书的选项,然后单击“ 下一步”
  5. 再次查看CSR中的信息,然后单击“下一步”。
  6. 上传从CA收到的文件。各种CA以不同方式提供证书,中间CA和根CA文件。您可能会收到包含所需内容的ZIP文件,或者您可能需要从其网站下载根CA和中间CA文件。再次,请咨询CA的网站以正确处理这些文件。获得所有需要的文件后,使用“证书安装向导”中的“浏览”按钮上载每个文件。然后单击下一步
  7. 该向导将安装新证书。完成后,您可以通过两种方式确认安装。在管理控制台中,转到“ 配置”,“ 证书”,然后双击您的服务器名称。将显示证书信息。或者,访问服务器的Zimbra webmail页面并在浏览器中显示证书信息。
原文地址:https://www.cnblogs.com/cmt110/p/11215060.html