新闻动态

邮件服务器的搭建过程,详细教程!

发布日期:2020-12-01 14:10 | 文章来源:YINGSOO

  【内容声明】本文收集整理于互联网,不确保内容真实性和质量度,仅供参考!若有服务器产品相关问题,请咨询[YINGSOO]在线客服,获取专业解答!

  【推荐产品】免费试用免费测试在线测试在线试用

  【精选文章】 云主机免费试用的正确方式!

  邮件服务器的搭建过程,详细教程!

  0. 邮件系统介绍

  邮件系统角色:MUA(邮件用户代理)、MTA(邮件传输代理)、MDA(邮件分发代理 )

  MTA:一般被称为邮件服务器软件,负责接收客户端软件发送的邮件,并将邮件传输给其他的MTA程序,是电子邮件系统中的核心部分。例如Exchange、 Postfix都属于MTA类软件

  MUA:一般被称为邮件客户端软件,负责为用户提供发送、接收和管理电子邮件的界面。例如Outlook、Outlook Express、Foxmail等

  MDA:负责在服务器中将邮件分发到用户的邮箱目录(默认情况下是/var/spool/mail/user),它并不直接面向邮件用户,而是在后台默默的工作。有时候MDA的功能可以直接集成在MTA软件中,因此经常被忽略。

  rhel5默认采用sendmail做为MTA,rhel6则采用postfix,安装postfix和dovecot软件包,yum方式安装;

  配置DNS服务器,在正向区数据文件中创建邮件服务器的A和MX记录

  1. postfix安装配置

  rhel6默认已经安装好了postfix,所以只需要安装dovecot即可。如下图所示:

  postfix服务的配置文件:/etc/postfix/main.cf

  postfix系统提供了 postconf 工具可以用来辅助配置

  执行 postconf ,查看当前的有效配置,如postconf inet_interfaces

  执行 postconf -n ,查看非默认配置

  执行 postconf -d ,查看默认配置

  执行postconf -e ,修改自定义设置,如postconf -e inet_interfaces = all

  #postconf -n > main2.cf

  #mv main.cf main.cf.bak

  #mv main2.cf main.cf

  修改postfix主配置文件相关配置如下:添加或修改下图红色部分的配置

  参数解释:

  inet_interfaces = all //设置postfix服务监听的IP地址,设置为all表示监听所有IP

  mydomain=http://renet.com //设置postfix服务器使用的邮件域名

  myhostname = mail.peixun.wlmq //设置postfix服务器使用的主机名

  myorigin = $myhostname //外发邮件时发件人地址中的邮件域名, 指明发件人所在的域名

  mydesLucytion = $myhostname, $mydomain //允许投递到本地的邮件域名,可接收邮件的主机名或域名, 即您的postfix系统要接收到哪个域名的邮件

  mynetworks //设置可转发哪些网络的邮件, postfix系统根据其值来区别用户是远程的还是本地的,这些地址和网络可以通过此MTA转发邮件至任何地方,无需进一步身份验证

  relayhost //smarthost转发所有通过的出站邮件。通常用方括号指定,以避免MX记录查找

  local_transport //收件地址为$mydesLucytion的邮件的发送方式。默认情况下,设置为local:$myhostname(使用local MDA将传入的邮件发送到/var/spool/mail中的本地邮件存储位置)

  home_mailbox = Maildir/ //设置邮件存储位置和格式,postfix支持2种最常见的邮箱存储方式(当指定的存储位置最后一个字符为/时,自动使用Maildir存储方式)

  Mailbox //将同一用户的所有邮件内容存储在同一个文件中,例如 /var/spool/mail/username,这种方式比较古老,在邮件数量较多时查询和管理的效率较低

  Maildir //使用目录结构来存储用户的邮件内容,每一个用户对应有一个文件夹,每一封邮件作为一个独立的文件保存,例如/home/username/Maildir/*,这种方式存取速度和效率更好,而且对于邮件内容管理也更方便

  重启postfix服务

  #service postfix restart

  #chkconfig postfix on YINGSOO:https://www.yingsoo.com

  创建邮件账户,如下图所示:

  测试发邮件:

  验证收信人zhangsan是否收到邮件:

邮件服务器的搭建

  2. 修改dovecot主配置文件

  vi /etc/dovecot/dovecot.conf

  !include conf.d/*.conf //该配置项说明conf.d下的所以conf结尾的文件均有效,注意最前面的!号

  protocols = imap pop3 lmtp

  login_trusted_networks = 192.168.0.0/24 //指定允许登录的网段地址

  设置/etc/dovecot/conf.d/10-mail.conf配置文件

  如下图,将下图打勾处注释去掉

  设置完mail_location值后,需要重启dovecot服务.

  #service dovecot restart

  #chkconfig dovecot on 邮件服务器的搭建,

  测试接收邮件:

  可以使用mailq命令或postqueue -p命令显示已排队的所有传出邮件的列表,若要尝试再次立即发送所有已排队的邮件,可以运行postfix flush命令或postqueue -f命令;否则postfix将大约每小时尝试重新发送一次,直到邮件被接受或过期。

  3、设置邮件用户的别名和群发列表

  在/etc/postfix/main.cf文件中存在如下配置项(默认就存在,只需确认一下即可)

  修改/etc/aliases别名文件,中其中添加相关设置,如图所示:

  aliases别名文件解释:

  第一行是为zhangsan邮件用户起一个别名:admin;

  第二行是创建一个群发列表,群发列表名叫tech,列表中包含lisi和zhangsan两个邮件账户

  执行postalias或newaliases命令更新别名文件。

  #postalias /etc/alias 或#newaliases

  最后重启postfix服务

  4、虚拟别名域的配置

  使用虚拟别名域,可以将发给虚拟域的邮件实际投递到真实域的用户邮箱中;可以实现群发组邮递功能,即指定一个虚拟邮件地址,任何人发给这个邮件地址的邮件都将由邮件服务器自动转发到真实域中的一组用户的邮箱中。

  实际虚拟域是真实域的一个别名,是通过一个虚拟别名表virtual实现了虚拟域的邮件地址到真实域的邮件地址的重定向

  编辑postfix主配置文件/etc/postfix/main.cf,添加如下定义,如下图所示:

  参数解释

  第一行用来指定虚拟别名域的名称;

  第二行用来指定含有虚拟别名域定义的文件路径。

  编辑配置文件/etc/postfix/virtual,进行如下定义,如下图所示:

  参数解释:

  第一行的含义是将发送给虚拟域@http://accp.com,的邮件实际投递到真实的本地域@http://renet.com

  第二行的含义是发往虚拟域邮箱admin@accp.com的邮件将投递到邮件用户zhangsan的邮箱中

  第三行参数是发往虚拟域邮箱zhaopin@accp.com的邮件将投递到lisi和zhangsan的邮箱中

  在修改配置文件main.cf和virtual后。要使更改立即生效,应分别执行postmap和重启postfix服务

  #postmap /etc/postfix/virtual

  #service postfix restart

  5、webmail邮件界面(squirrelmail)

  Webmail是指提供给邮件用户发信、收信使用的网页操作界面,通过访问邮件系统提供的WEB界面,可以和邮件客户端软件实现类似的邮件管理功能。

  1)安装httpd和php相关的软件包并启动httpd服务

  #yum -y install httpd

  #yum -y install php-*

  #service httpd start

  #chkconfig httpd on

  注意:要确保以下两个软件包要安装,否则用户不能通过WEB方式登录邮箱

  2)释放并配置squirrelmail程序套件

  将squirrelmail程序套件和中文件语言包拷贝到邮件服务器本地(如/root目录),

  首先将SquirrelMail解压到WEB服务器的网页文档根目录(默认是/var/www/html),并改名

  # tar jxvf squirrelmail-1.4.13.tar.bz2 -C /var/www/html

  # cd /var/www/html

  # mv squirrelmail-1.4.13 webmail

  # cd webmail 邮件服务器的搭建,

  然后在SquirrelMail的网页文件目录中解压释放中文语言包

  # tar jxvf ~/zh_CN-1.4.13-20071220.tar.bz2

  创建及调整数据目录、附件目录

  # mkdir -p attach data

  # chown -R apache:apache attach/ data/

  # chmod 730 attach/

  建立并调整 config.php 配置文件

  # cp config/config_default.php config/config.php

  # vi config/config.php

  从样例文件复制生成配置文件,根据需要调整相关参数(只需改动少数几个参数即可)

  $squirrelmail_default_language = ‘zh_CN’; 默认语言

  $default_charset= ‘zh_CN.UTF-8’; 默认字符集

  $domain = ‘http://renet.com’; 邮件域名

  $smtpServerAddress =‘127.0.0.1’; 设置发信服务器地址

  $smtpPort = 25; SMTP服务器端口

  $imap_server_type = ‘dovecot’; 设置IMAP收信服务器类型

  $imapPort = 143; IMAP服务端口

  $data_dir= ‘/var/www/html/webmail/data/’; 数据目录位置

  $attachment_dir = ‘/var/www/html/webmail/attach/’; 附件目录位置

  3)在浏览器中登录squirrelmail系统

  开启httpd_can_sendmail布尔值为on状态

  访问

  http://WEB服务器IP或FQDN/webmail

  6、设备SMTP的用户认证

  当用户通过SMTP协议向外部邮件域发送邮件时,服务器会要求用户提供用户帐号和口令进行身份认证,只有成功通过身份认证的用户才被允许向外部发送邮件,否则将拒绝发信请求

  目前,比较常用的SMTP认证机制是通过Cyrus SASL包来实现的,Cyrus SASL最大功能是为应用程序提供了认证函数库。应用程序可以通过函数库所提供的功能定义认证方式,并让SASL通过与邮件服务器主机的沟通从而提供认证的功能。

  1)查看系统中是否安装了与cyrus相关的RPM软件包:

  2)验证

  使用以下命令验正postfix是否支持cyrus风格的sasl认证,如果您的输出为以下结果,则是支持的;

  默认情况下,Cyrus SASL使用saslauthd这个守护进程进行密码认证,而密码认证的方法有多种,使用下面的命令可查看当前系统中的Cyrus SASL所支持的密码验证机制

  这里准备采用shadow验证方法,也就是直接用/etc/shadow文件中的用户账户及密码进行认证,因此在配置文件/etc/sysconfig/saslauthd中,应确定当前系统所采用的密码验证机制为shadow,如下图:

  3)启动saslauthd服务并测试认证功能

  #service saslauthd start

  #chkconfig saslauthd on 邮件服务器的搭建,

  然后用下面的命令测试saslauthd进程认证功能,如下图:

  其中lisi为linux系统中的用户账户名,‘123456’为用户lisi的密码

  4)设置postfix启用SMTP认证

  在main.cf文件中添加有关SMTP认证的设置部分,下图所示:

  重启postfix服务

  5)测试SMTP发信认证

  通过下列命令获得 lisi的用户名及密码的加密字串:

  使用telnet命令进行发信认证:

  只要邮件服务器能通过DNS解析internet域名,就能向internet的其他邮件系统发送邮件;internet的其他邮件系统能解析本邮件系统的MX记录就可以接收INTERNET的邮件。

  7、邮件过滤功能配置

  1)基于主机名/IP地址的邮件过滤

  使用smtpd_client_restrictions配置参数,通过设置限制条件check_client_access指向一个含有IP地址、网络地址、主机名称、域名的查询表文件。网站如何选择服务器

  修改/etc/postfix/main.cf配置文件,添加如下配置项:

  smtpd_client_restrictions = check_client_access hash:/etc/postfix/access

  修改/etc/postfix/access文件,添加访问控制策略,拒绝192.168.1.0/24网段、192.168.0.11主机和http://bbc.com域中的主机发送的邮件,如下图所示

  使用postmap命令将access文件转换为hash数据库文件access.db

  REJECT:拒绝且退回信件

  DISCARD:丢弃(拒绝且不回馈信息)

  OK:允许

  RELAY:转发

  重启postfix服务,使修改生效

  测试:在192.168.0.11主机执行telnet postfix服务器IP 25进行发邮件测试,如下图:

  2)根据发件人的地址过滤邮件

  使用smtpd_sender_restrictions配置参数,通过设置限制条件check_sender_access指向一个含有发件人完整邮件地址、域名的查询表文件。

  修改/etc/postfix/main.cf配置文件,添加如下配置项:

  smtpd_sender_restrictions =check_sender_access hash:/etc/postfix/access

  修改/etc/postfix/access文件,添加访问控制策略,拒绝wang@sina.com邮件地址、任何域的market用户及来自http://qq.com域中任何用户发送的邮件

  如下图所示

  使用postmap命令将access文件转换为hash数据库文件access.db

  重启postfix服务,使修改生效

  在一台客户端模拟wang@sina.com

  发邮件,如下图所示:

  3)根据收件人的地址过滤邮件

  使用smtpd_recipient_restrictions配置参数,通过设置限制条件check_recipient_access指向一个含有收件人邮件地址的查询表文件。

  修改/etc/postfix/main.cf配置文件,添加如下配置项:

  permit_mynetworks //允许本邮件系统发出的邮件

  permit_sasl_authenticated //允许通过sasl认证的用户作为发件人

  reject_unauth_desLucytion //收件人地址域不包括在Postfix授权网络内时拒绝

  reject_non_fqdn_recipient //收件人地址域不属于合法FQDN时拒绝

  reject_unknown_recipient_domain //收件人地址域未知或不存在时拒绝

  修改/etc/postfix/access文件,添加访问控制策略,拒绝lisi@renet.com用户接收邮件,如下图所示

  使用postmap命令将access文件转换为hash数据库文件access.db

  重启postfix服务,使修改生效。

  关键词:邮件服务器的搭建,邮件服务器搭建

  YINGSOO有着经验丰富的技术团队和完善的售后支持,客服人员全年无休,7*24小时全天候待命,只要您有需求和疑问,客服能在最短的时间内答复您,不会让您长时间等待。全国统一服务热线:400-630-3752

  YINGSOO境外机房服务器租用_免备案_可试用_品质看得见

  境外机房服务器租用,选YINGSOO,自主平台更可靠,海外知名云服务品牌,可在线免费试用,专业境外机房服务器租用,1200家企业共同的选择,高达95%的续约率印证YINGSOO品质

  https://www.yingsoo.com/products/dedicated-us.html

  菲律宾 到服务器3天免费试用,品质保证

  菲律宾 到服务器免备案,控制面板自主管理,5分钟交付,BN高品质数据中心,安全稳定,3天免费测试

  https://www.yingsoo.com/products/cloud-ph.html

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部