首页 > 代码库 > Mail

Mail

############################

#######   postfix #######

############################

·准备

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享




1.

postfix提供smtp协议用来投递邮件

默认端口25

/var/log/maillog##服务日志

mail root@westos.com

Subject: hello

hello world

.#用"."来结束录入内容并发送

mailq##查看邮件队列

postqueue -f##重新处理邮件队列

 

默认情况下邮件端口只在127.0.0.1上开启

 

2.

配置

vim /etc/postfix/main.cf

116 inet_interfaces = all##25端口开启的网络接口

76 myhostname = westos-mail.westos.com##指定mta主机名称

83 mydomain = westos.com##指定mta的域名

99 myorigin = westos.com##指定邮件来源结尾(@后面的字符内容)

164 mydestination = $myhostname, $mydomain, localhost##接收邮件结尾字符的指定

 

systemctl restart postfix.service

systemctl stop firewalld

 

技术分享

 


 

3.邮件别名

[root@qq-mail ~]# vim /etc/aliases

别名:真名##邮件别名

别名::include:filename##邮件群发

 

vim filename

user1

user2

 

postalias /etc/aliases

 

mail 别名

 

技术分享

技术分享


 

4.通过远程主机测试邮件服务

[kiosk@foundation0 Desktop]$ telnet 172.25.254.100 25

Trying 172.25.254.100...

Connected to 172.25.254.100.

Escape character is ‘^]‘.

220 westos-mail.westos.com ESMTP Postfix

ehlo hello

250-westos-mail.westos.com

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

mail from:root@westos.com

250 2.1.0 Ok

rcpt to:root@qq.com

250 2.1.5 Ok

data

354 End data with <CR><LF>.<CR><LF>

adsf

asdf

asdf

.

 技术分享

5.邮件客户端的访问控制

#限制客户端

mta上

postconf -e "smtpd_client_restrictions = check_client_access hash:/etc/postfix/access"

 

vim /etc/postfix/access

172.25.254.22REJECT

 

postmap /etc/postfix/access

 

systemctl restart postfix

 

测试

[root@foundation22 ~]# telnet 172.25.254.100 25

Trying 172.25.254.100...

Connected to 172.25.254.100.

Escape character is ‘^]‘.

220 westos-mail.westos.com ESMTP Postfix

mail from:root@westos.com

250 2.1.0 Ok

rcpt to:root@qq.com

554 5.7.1 <unknown[172.25.254.22]>: Client host rejected: Access denied

 技术分享

##限制用户发送

postconf -e "smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender"

 

vim /etc/postfix/sender

student@westos.comREJECT

 

postmap  /etc/postfix/sender

 

systemctl restart postfix

 

测试

[kiosk@foundation0 Desktop]$ telnet 172.25.254.100 25

Trying 172.25.254.100...

Connected to 172.25.254.100.

Escape character is ‘^]‘.

220 westos-mail.westos.com ESMTP Postfix

mail from:student@westos.com

250 2.1.0 Ok

rcpt to:root@westos.com

554 5.7.1 <student@westos.com>: Sender address rejected: Access denied

 

 技术分享

##限制用户接收

postconf -e "smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recip"

 

vim /etc/postfix/recip

westos@westos.comREJECT

 

postmap /etc/postfix/recip

 

systemctl restart postfix

 

测试

 

[kiosk@foundation0 Desktop]$ telnet 172.25.254.100 25

Trying 172.25.254.100...

Connected to 172.25.254.100.

Escape character is ‘^]‘.

220 westos-mail.westos.com ESMTP Postfix

mail from:westos@westos.com

250 2.1.0 Ok

rcpt to:root@westos.com

250 2.1.5 Ok

data

354 End data with <CR><LF>.<CR><LF>

adsf

adsf

asdf

.

250 2.0.0 Ok: queued as DE17D2461EA

qiut

502 5.5.2 Error: command not recognized

mail from:root@westos.com

250 2.1.0 Ok

rcpt to:westos@westos.com

554 5.7.1 <westos@westos.com>: Recipient address rejected: Access denied

 技术分享

 

##出站地址伪装

postconf -e "smtp_generic_maps = hash:/etc/postfix/generic"

 

vim /etc/postfix/generic

westos@westos.comhello@sb.com

 

postmap /etc/postfix/generic

 

systemctl restart postfix

 

测试

su - westos

mail root@qq.com

 

##入战地址转换

dns mx 记录解析先做好

postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"

 

/etc/postfix/virtual

虚拟名字真实用户

hello@sb.comwestos@westos.com

 

postmap /etc/postfix/virtual

 

systectl restart postfix

 

测试

mail hello@sb.com



####################################

#########   dovecot  ###############

####################################

1.

dovecot 用来提供收件协议

pop3   110

imap   143

pop3s  995

imaps  993

 

/etc/services   ###所有服务的所有端口

 

2.

yum install dovecot y  

 

 

3.

vim /etc/dovecot/dovecot.conf

24 protocols = imap pop3 lmtp

48 login_trusted_networks = 0.0.0.0/0

49 disable_plaintext_auth = no

 

vim /etc/dovecot/conf.d/10-mail.conf

30 mail_location = mbox:~/mail:INBOX=/var/mail/%u

 

systemctl restart dovecot

mkdir /etc/skel/mail/.imap -p           ###在用户骨架文件中建立所需目录及文件

touch /etc/skel/mail/.imap/INBOX

 

useradd westos

passwd westos

测试

yum install mutt -y

mutt -f pop://westos@172.25.254.116

 

 技术分享

###################

thunderbrid

####################

thunderbird

收发邮件应用

 

 

 技术分享

 

 

 

 

 

#########################

postfix + mariadb

#########################

准备工作

yum install httpd php php-mysql mariadb-server -y

config mariadb

mysql_secure_installation

create databs

create table

 

1.

vim /etc/postfix/mailuser.cf  ##用户名称查询

host = localhost##数据库所在主机

user = postuser##登陆数据库的用户

password = 123##登陆数据库的密码

dbname = email##postfix要查询的名称

table = emailuser##postfix要查询的表的名称

select_field = username##postfix要查询的字段

where_field = username##用户给定postfix的查询条件

 

 

vim /etc/postfix/maildomain.cf      ##用户域名查询

host = localhost

user = postuser

password = 123

dbname = email

table = emailuser

select_field = domain

where_field = domain

 

vim /etc/postfix/mailbox.cf     ##用户邮箱位置查询

host = localhost

user = postuser

password = 123

dbname = email

table = emailuser

select_field = maildir

where_field = username

 

postmap -q "mmm@mmm.com" mysql:/etc/postfix/mailuser.cf

mmm@mmm.com

postmap -q "mmm.com" mysql:/etc/postfix/maildomain.cf

mmm.com

postmap -q "mmm@mmm.com" mysql:/etc/postfix/mailbox.cf

/mnt/mmm.com/mmm

 

配置postfix

groupadd -g 666 vmail

useradd -s /sbin/nologin -u 666 -g 666 vmail

 

postconf -e "virtual_mailbox_base = /home/vmail"##设定虚拟账户的邮件目录

postconf -e "virtual_uid_maps = static:666"##虚拟账户建立文件的uid

postconf -e "virtual_gid_maps = static:666"##虚拟用户建立文件的gid

postconf -e "virtual_alias_maps = mysql:/etc/postfix/mailuser.cf"

postconf -e "virtual_mailbox_domains = mysql:/etc/postfix/maildomain.cf"

postconf -e "virtual_mailbox_maps = mysql:/etc/postfix/mailbox.cf"


Mail