代码改变世界

linux centos7 完整邮件服务器搭建及调用_2018_lcf

2020-09-21 21:59  狼人:-)  阅读(1248)  评论(0编辑  收藏  举报

我的系统是centos7.5(7以上的应该都适用、这里再补充下,线上服务器的话要开能25端口可能要申请)

—1—设置域名、主机名、开云上服务器25端口

-A- 域名或自建DNS照下面方式设置即可

 -B- 修改主机名和设置本地hosts文件地址 

  1.  
    [root@mail ~]# hostnamectl set-hostname mail.ald8.cn
  2.  
    [root@mail ~]# cat /etc/hostname
  3.  
    mail.ald8.cn
  4.  
     
  5.  
    [root@mail ~]# vim /etc/hosts //添加下面一行
  6.  
    127.0.0.1 mail.ald8.cn

  -C-改25端口(要确保你服务器上的110、143、25的端口是对外开放的)

- 也可以采用多端口方式来防止上面端口的不可用 , 配置方法查后最后面(修改端口)部分

我这里的是腾讯云服务器,110、143已开启,但25这个端口在腾讯云上要申请才能开通的。如下图方式

—2—安装软件,配置基本收发信功能

-A- 安装软件

  1.  
    [root@mail ~]# yum -y install postfix.x86_64 dovecot.x86_64 cyrus-sasl
  2.  
     
  3.  
    [root@mail ~]# postconf –a        //验证是否支持cyrus dovecot功能
  4.  
     
  5.  
    cyrus
  6.  
    dovecot
  7.  
     
  8.  
    (postfix主要是为发件服务25,devocot为收件服务110、145, cyrus-sasl登陆验证服务)

-B-修改postfix主配置文件,启动服务

  1.  
    [root@mail ~]# vim /etc/postfix/main.cf
  2.  
    #修改以下配置
  3.  
    myhostname = mail.ald8.cn //邮件服务器的主机名
  4.  
    mydomain = ald8.cn //邮件域
  5.  
    myorigin = $mydomain //往外发邮件的邮件域
  6.  
    inet_interfaces = all //监听的网卡
  7.  
    inet_protocols = all
  8.  
    mydestination = $myhostname, $mydomain //服务的对象
  9.  
    home_mailbox = Maildir/ //邮件存放的目录
  10.  
     
  11.  
    #新添加以下配置
  12.  
    #--------自定义(下面可以复制粘贴到文件最后面,用于设置服务器验为主等)
  13.  
     
  14.  
    # 规定邮件最大尺寸为10M
  15.  
    message_size_limit = 10485760
  16.  
    # 规定收件箱最大容量为1G
  17.  
    mailbox_size_limit = 1073741824
  18.  
    # SMTP认证
  19.  
    smtpd_sasl_auth_enable = yes
  20.  
    smtpd_sasl_security_options = noanonymous
  21.  
    mynetworks = 127.0.0.0/8
  22.  
    smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
  23.  
     
  24.  
    [root@mail ~]# postfix check //修改保存后检查配置文件是否有错
  25.  
    [root@mail ~]# systemctl restart postfix.service
  26.  
    [root@mail ~]# systemctl enable postfix.service

--配置补充说明--

  •  smtpd_sasl_auth_enable = yes //开启认证
  • smtpd_sasl_security_options = noanonymous //不允许匿名发信
  • mynetworks = 127.0.0.0/8 //允许的网段,如果增加本机所在网段就会出现允许不验证也能向外域发信
  • smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
  • //允许本地域以及认证成功的发信,拒绝认证失败的发信

-C-修改dovecot主配置文件,启动服务

  1.  
    [root@mail ~]# vim /etc/dovecot/dovecot.conf
  2.  
    #修改以下配置
  3.  
    protocols = imap pop3 lmtp
  4.  
    listen = *, ::
  5.  
    !include conf.d/10-auth.conf
  6.  
     
  7.  
    #在最后面新添加以下配置
  8.  
    #-----------自定义------------
  9.  
    ssl = no
  10.  
    disable_plaintext_auth = no
  11.  
    mail_location = maildir:~/Maildir
  12.  
     
  13.  
    [root@mail ~]# systemctl restart dovecot.service
  14.  
    [root@mail ~]# systemctl enable dovecot.service
  15.  
     

-D-修改 cyrus-sasl主配置文件

  1.  
    [root@mail ~]# vim /etc/sasl2/smtpd.conf //这个是空文件,直接添加下面配置(配置认证方式)
  2.  
    pwcheck_method: saslauthd
  3.  
    mech_list: plain login
  4.  
    log_level:3
  5.  
     
  6.  
     
  7.  
    [root@mail ~]# vim /etc/sysconfig/saslauthd //修改下面配置项(本地用户认证)
  8.  
    MECH=shadow
  9.  
     
  10.  
    [root@mail ~]# systemctl restart saslauthd.service
  11.  
    [root@mail ~]# systemctl enable saslauthd.service

 

—3— 创建用户,安装telnet进行邮件收发 或使用linux mailx软件测试

  1.  
    [root@mail ~]# yum -y install telnet-server.x86_64 telnet.x86_64
  2.  
    [root@mail ~]# useradd lcf -s /sbin/nologin
  3.  
    [root@mail ~]# useradd zjc -s /sbin/nologin
  4.  
    [root@mail ~]# echo '123123' | passwd --stdin lcf
  5.  
    [root@mail ~]# echo '123123' | passwd --stdin zjc

(1) 使用telnet测试

-A-发送本地邮件测试

--------------连接服务器的25端口进行简单发信测试-----------
[root@mail ~]# telnet mail.ald8.cn 25
//连接成功,开始写信
helo mail.ald8.cn                //声明本机的主机
mail from:lcf@ald8.cn     //声明发件人地址
rcpt to:ald8cn@163.com       //声明收件人地址
data                                  //写正文
HI. This is Z.jc,Nice Good day!
.                                      //记住这里是以点作为正文结束标记
quit // 退出

如图所示:

 

 到这里信件就已经发送了,接下来是验证了。

-B-收取邮件验证

---------------收信验证---------------
[root@localhost ~]# telnet mail.aa.com 110
user lcf //收件人登录
pass 123 //邮箱密码
list //列表查看邮件
retr 1 //读取编号为1的邮件
quit //退出邮箱

如图所示:

查看到了发送的内容,那这里就算是收件成功了

(2) 安装mailx来测试

 -A-发送邮件到其它邮箱服务器

 这里用mailx这个软件来测试发送

# yum -y install mailx

  1.  
    [root@mail ~]# su - zjc
  2.  
    Last login: Sat Oct 20 16:20:01 CST 2018 from 193.112.217.131 on pts/2
  3.  
    [zjc@mail ~]$ echo '这是测试' | mail -s '你好,164' ald8cn@163.com

再登陆到163邮箱查看是否收到邮件

妥妥的收到了邮件

 到里邮箱的收发功能就都具备了。

—4— 调用邮箱(也就是调用这个服务器的smtp.pop3)

我这里用windows的163邮件代理接收发送客户端作演示

下载地址:http://mail.163.com/dashi/index.html     (支持多个不同账户的邮箱接收和发送邮件,支持建用户组群发)

下载安装后,用linux创建好的用户名和密码和为登陆和服务器设置

 我这是登陆设置好的了,收信和发信账号及密码就是在linux系统那里创建的账号和对应的密码。

设置验证成功后就可以畅发邮件了,记得别乱发垃圾邮件哦!

然后这里再贴上zabbix调用方式图

安全链接选“无”,认证选第二个,这里账号就是lcf,不像163那样账号名是完整邮件地址。密码是linux里设置lcf的那个密码。 

---修改端口
 

  1.  
    有的时候SMTP的默认25端口不能用会导致无法使用邮箱功能,解决办法就是添加多端口。
  2.  
     
  3.  
    1、修改postfix的配置文件
  4.  
     
  5.  
    vim /etc/postfix/master.cf
  6.  
     
  7.  
    在已有第一行:
  8.  
     
  9.  
    smtp      inet  n       -       n       -       -     smtpd
  10.  
     
  11.  
    之后添加:
  12.  
     
  13.  
    smtp2      inet  n       -       n       -       -     smtpd
  14.  
     
  15.  
    2、修改/etc/services文件,增加smtp2监听端口,本文以2525端口为例
  16.  
    vim /etc/services
  17.  
     
  18.  
    找到:
  19.  
     
  20.  
    smtp            25/tcp          mail
  21.  
     
  22.  
    其后添加:
  23.  
     
  24.  
    smtp2           2525/tcp        mail2
  25.  
     
  26.  
    smtp2           2525/udp        mail2
  27.  
     
  28.  
    3、重启postfix
  29.  
     
  30.  
    service postfix restart

 

----转自https://blog.csdn.net/cbuy888/article/details/83212810