Linux搭建邮件服务器收发邮件详细步骤

主要用到SMTP和POP3协议:
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):用于发送和中转发出的电子邮件,占用服务器的25/TCP端口。
邮局协议版本3(Post Office Protocol 3):用于将电子邮件存储到本地主机,占用服务器的110/TCP端口。

我们要做的就是打开这两个端口,并且配置文件。

一、开放25和110端口

防火墙开启端口:

firewall-cmd --add-port=25/tcp --permanent

firewall-cmd –-add-port=110/tcp --permanent

firewall-cmd --reload

或者直接把防火墙整个关了也行。。。

二、安装配置postfix

postfix是提供发件服务的,如果本机存在sendmail,会与postfix冲突,需要先卸载:

rpm -qa|grep sendmail 查看是否安装sendmail

卸载sendmail:

rpm -e sendmail 或者 yum remove sendmail

在centos7里自带postfix,可以rpm -qa|grep postfix 一下,如果没有的话,可以直接yum安装(前提机器通了外网或者配置了yum源):

yum install postfix

修改配置文件:

vim /etc/postfix/main.cf

修改内容:(有点多,不用vim不好找,取消注释的意思就是将注释里的内容改成现在这个字段,为其赋值)

# 75行: 取消注释,设置hostname 
myhostname = mail.abc.com 
# 83行: 取消注释,设置域名 
mydomain = abc.com 
# 99行: 取消注释 
myorigin = $mydomain 
# 116行: 默认是localhost,我们需要修改成all
inet_interfaces = all 
# 119行: 推荐ipv4,如果支持ipv6,则可以为all 
inet_protocols = ipv4 
# 164行: 添加 
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain 
# 264行: 取消注释,指定内网和本地的IP地址范围,以网段格式 
mynetworks = 127.0.0.0/8
# 419行: 取消注释,邮件保存目录
 home_mailbox = Maildir/ 
# 571行: 添加 
smtpd_banner = $myhostname ESMTP 
# 添加到最后 
# 规定邮件最大尺寸为10M 
message_size_limit = 10485760 
# 规定收件箱最大容量为1G 
mailbox_size_limit = 1073741824 
# SMTP认证 
smtpd_sasl_type = dovecot 
smtpd_sasl_path = private/auth 
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous 
smtpd_sasl_local_domain = $myhostname 
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

开启postfix服务并自启动

systemctl  restart  postfix
systemctl  enable  postfix

三、安装配置dovecot

安装:

yum install dovecot 

配置dovect

vim /etc/dovecot/dovecot.conf 
# 26行: 如果不使用IPv6,请修改为* 
listen = *
#在主配置文件中的第48行,设置允许登录的网段地址,也就是说我们可以在这里限制只有来自于某个网段的用户才能使用电子邮件系统。如果想允许所有人都能使用,则不用修改本参数
login_trusted_networks = 192.168.10.0/24更改内容

编辑文件10-auth.conf

vim /etc/dovecot/conf.d/10-auth.conf 
# 9行: 取消注释并修改 disable_plaintext_auth = no 
# 97行: 添加 auth_mechanisms = plain login 

编辑文件10-mail.conf

vim /etc/dovecot/conf.d/10-mail.conf
# 30行: 取消注释并添加 mail_location = maildir:~/Maildir

编辑文件10-master.conf

vim /etc/dovecot/conf.d/10-master.conf
# 88-90行: 取消注释并添加 # Postfix smtp验证 
unix_listener /var/spool/postfix/private/auth { 
mode = 0666 
user = postfix
group = postfix
}

编辑文件10-ssl.conf(不使用ssl情况下需要修改)

vim /etc/dovecot/conf.d/10-ssl.conf
# 8行: 将ssl的值修改为 ssl = no

启动dovecot并自启动

systemctl restart dovecot
systemctl enable dovecot

四、添加收发邮件账户

邮件的用户是和系统用户一致的,也就是说系统用户可以当做邮件用户,所以直接添加系统用户就行,我在这里配置了一个发送邮件的用户,一个接收邮件的用户。

[root@smtp ~]# useradd sendroot
[root@smtp ~]# passwd sendroot
[root@smtp ~]# useradd receive
[root@smtp ~]# passwd receive

如果想把所有经过SMTP服务器的邮件都归档到一个用户里,这个用户可以接收所有邮件,需要做个转发,接收到邮件就转发给这个用户可使用配置里的always_bcc字段:

 vi /etc/postfix/main.cf

增加下面一行

always_bcc = receive@abc.com

重启:

#/etc/init.d/postfix reload

五、telnet 端口进行收发邮件测试

发送邮件
IP换成你自己的邮件服务器IP,发邮件端口号为25

telnet  ip 25
Trying ip...
Connected to ip.
Escape character is '^]'.
220 mail.abc.com ESMTP

mail from:sendroot@abc.com
250 2.1.0 Ok
rcpt to:receive@abc.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject hello receive
my name is sendroot
.
250 2.0.0 Ok: queued as E7E082004AE8
quit
221 2.0.0 Bye
Connection closed by foreign host.

接收邮件
IP换成你自己的邮件服务器IP,收邮件端口号为110

telnet ip 110
Trying ip...
Connected to ip.
Escape character is '^]'.
+OK Dovecot ready.
user receive
+OK
pass receive
+OK Logged in.
list
+OK 1 messages:
1 307
.
retr 1
+OK 307 octets
Return-Path: <sendroot@abc.com>
X-Original-To: receive@abc.com
Delivered-To: receive@abc.com
Received: from unknown (unknown [])
        by mail.abc.com (Postfix) with SMTP id E7E082004AE8
        for <receive@abc.com>; Thu, 26 Nov 2020 16:14:31 +0800 (CST)

subject hello receive
my name is sendroot
.
QUIT
+OK Logging out.

六、使用Foxmail登陆邮箱

客户端配置:新建账号,选择其他邮箱:
在这里插入图片描述
在这里插入图片描述
选择手动设置,配置如下:
pop和smtp服务器写我们上面安装的postfix和dovecot的服务器ip
在这里插入图片描述
创建成功:
在这里插入图片描述
如果发现这里面有一些crontab发给root的系统邮件,不想要可以:

方法1:将MAILTO变量更改为空白

vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""

重启crontab:

service crond restart

方法2:修改crond服务禁用发送输出邮件:

vi /etc/sysconfig/crond
# Settings for the CRON daemon.
# CRONDARGS= :  any extra command-line startup arguments for crond
CRONDARGS=-s -m off

重启crond.service:

systemctl restart crond.service
  • 12
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
搭建Linux邮件服务器需要以下步骤: 1. 安装邮件服务器软件 可以选择Postfix、Exim、Sendmail等邮件服务器软件。这里以Postfix为例,在终端输入以下命令安装: ``` sudo apt-get update sudo apt-get install postfix ``` 2. 配置邮件服务器 Postfix的配置文件位于/etc/postfix/main.cf,可以使用vi编辑器打开进行编辑。具体配置可以参考官方文档。 3. 安装IMAP/POP3服务器 IMAP和POP3是接收邮件的协议,可以选择Dovecot、Courier等软件。这里以Dovecot为例,在终端输入以下命令安装: ``` sudo apt-get install dovecot-imapd dovecot-pop3d ``` 安装完成后需要编辑/etc/dovecot/dovecot.conf文件进行配置。 4. 安装Webmail界面 Webmail界面是一个方便用户查看邮件的界面,可以选择Roundcube、Squirrelmail等软件。这里以Roundcube为例,在终端输入以下命令安装: ``` sudo apt-get install roundcube roundcube-plugins ``` 安装完成后需要编辑/etc/roundcube/config.inc.php文件进行配置。 5. 安装防垃圾邮件软件 为了防止垃圾邮件的攻击,可以安装防垃圾邮件软件,可以选择SpamAssassin、ClamAV等软件。 6. 配置DNS记录 邮件服务器需要有MX记录和SPF记录,以便其他邮件服务器能够识别并接收邮件。需要在DNS服务器添加相应的记录。 7. 测试邮件服务器 可以使用telnet命令测试邮件服务器的功能。例如,使用以下命令测试发送邮件功能: ``` telnet localhost 25 EHLO example.com MAIL FROM: <test@example.com> RCPT TO: <recipient@example.com> DATA Subject: Test Email Hello World! . QUIT ``` 如果一切正常,就可以在收件人的邮箱接收到这封邮件了。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fancy橙子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值