postfix邮件服务

https://pan.baidu.com/s/1kEEbLAybquN5IVsDgwgqTg
以上链接是会用到的安装包

实现的功能:
1、通过设置配置文件,测试postfix基本发信功能
2、通过用字符端测试收信,并用microsoft outlook 配置测试
3、通过发信认证配置,用字符端测试普通发信测试认证发信,并用microsoft outlook 配置测试
4、通过设置LAMP设置WEB邮箱,登录网页邮箱
5、实现群发邮件
6、限制发送邮件的大小
7、通过配置用户磁盘配额实现限制用户邮箱空间

—以下是postfix常用目录----
/etc/postfix/main.cfg //配置文件主目录
/usr/libexec/postfix/ //可用程序目录
/var/spool/postfix/ //邮件队列目录

--------------------vi编辑器永久显示行数------------

vi ~/.vimrc

set nu

---------检测postfix是否安装以及认证是否支持--------

postconf -a // 验证是否支持cyrus dovecot功能

systemctl start postfix 

netstat -anpt | grep 25   postfix工作在tcp的25端口

systemctl status postfix  

-------第一步是配置DNS解析配置----

systemctl stop firewalld

setenforce 0

yum  install bind bind-utils -y

vi /etc/named.conf 修改dns的主配置文件

将修改成以下内容:

13行        listen-on port 53 { any; };
19行        allow-query     { any; };

vi /etc/named.rfc1912.zones //配置dns的区域配置文件

zone "lq.com" IN {   正向解析
        type master;
        file "lq.com.zone";
};

zone "80.168.192.in-addr.arpa" {   反向解析
        type master;
        file "lq.com.local";
};

vi /var/named/lq.com.zone  dns服务的正向区域数据配置文件

        NS      mail.lq.com.
        MX 10   mail.lq.com.    //邮件服务器必须配置
mail    A       192.168.80.110

vi /var/name/lq.com.local dns服务的正向区域数据配置文件

    NS      mail.lq.com.
    MX 10   mail.lq.com.
110     PTR     mail.lq.com.

rndc-confgen -r /dev/urandom -a //解决启动卡顿问题

systemctl start named
systemctl enable named

vi /etc/resolv.conf
nameserver 192.168.80.189

-------------------测试------------------------------
nslookup mail.lq.com //得出解析结果才可以
nslookup 192.168.80.110

--------------配置postfix基本发信功能----------------

`vi /etc/postfix/main.cf` //编辑postfix服务主配置文件
末尾添加以下内容:(也可以查找修改)
`76  myhostname = mail.bt.com`    //邮件名
`83  mydomain = bt.com`          //邮件域名
`99  myorigin = $mydomain`       //邮件资源起始域,往外发文件所填写的邮件域
`116 inet_interfaces = all`   //监听的网络接口 
`164 mydestination = $myhostname, $mydomain`  //目标域,可以收发邮件的客户端(服务的对象)
`418 home_mailbox = Maildir/`     //邮件存放的目录和格式
默认在接收方用户的家目录里面/home/用户名/Maildir/

postfix check   检查配置文件内有没有语法错误

    syst

emctl reload postfix
systemctl restart postfix

postconf //查看postfix的当前配置
postconf -n //查看postfix非默认配置

-----------------增加邮件测试账号--------------------

`groupadd mailusers`    //创建邮件使用者组
`useradd -g mailusers jack`  //创建基本组mailusers的用户  

    useradd -g mailusers tom

`echo "123" | passwd --stdin jack`    //设置密码

    echo "123" | passwd --stdin tom

注:pos

tfix和vsftpd服务一样,都可以调用本地系统的账户和密码

----------连接服务器的25端口进行简单发信测试----------

yum install telnet

telnet mail.lq.com 25

helo mail.lq.com //声明本机的主机名

mail from:[email protected] //声明发件人地址

rcpt to:[email protected] //声明收件人地址

data //写正文

i am jack!!
.

quit // 退出

----------使用root查看tom用户是否收到测试邮件----------

cat /home/tom/Maildir/new/

后面内容可用Tab键补全


到此基本发信功能已完成。

------第二步:安装dovecot提供收信服务------

    yum install dovecot -y

vi /etc/dovecot/dovecot.conf`   //编辑dovecot配置文件

24  protocols = imap pop3 lmtp`  把#去掉让其生效,协议为imap pop3 imtp协议
30  listen = *`  把#去掉让其生效,作用监听所有的110,143端口

48  login_trusted_networks = 192.168.80.0/24`  允许登录的网段地址,可不写

末尾添加以下内容:
disable_plaintext_auth =` no  启用明文认证

ssl = no`  管理加密,no是不加密

cd /etc/dovecot/conf.d/`   dovecot子配置文件存放目录

vi 10-mail.conf` //编辑dovecot子配置文件
 

    24  mail

_location = maildir:~/Maildir
指定本地邮箱的存放位置

service dovecot start //启动服务

netstat -anpt | grep dovecot // 110 143端口需要监听

---------------------以下测试收信---------------------

telnet mail.lq.com 110   //连接mail.aa.com 的110端口

user tom   登录tom账号

pass 123123   密码输入

list   列表已收邮件

retr 1   读取邮件1

quit   退出

—以上收信方式太不友好,安装MUA软件连接服务器收发邮件—

outlook 或者 Foxmail软件 配置测试。

---------------以下进行发信认证配置--------------

yum install cyrus-sasl* 


vi /etc/sasl2/smtpd.conf  //编辑配置文件

pwcheck_method: saslauthd   //认证方法
mech_list: plain login   //机械列表:普通登录
log_level:3    日志级别

vi /etc/sysconfig/saslauthd
7  MECH=shadow   使用本地账号密码验证

service saslauthd start
systemctl enable saslauthd

vi /etc/postfix/main.cf

–在末尾新增–

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 
//允许本地域以及认证成功的发信,拒绝认证失败的发信

postfix check   检测配置文件内有没有语法错误

systemctl reload postfix
systemctl restart postfix

-----------------测试普通发信-------------------

telnet mail.lq.com 25

helo mail.lq.com   

mail from:[email protected]

rcpt to:[email protected] 

//提示:Relay access denied,说明认证正在执行。

quit

------测试认证发信,注意:一定要关闭SELINUX-----

------------以下将用户名密码生成密文-------------

printf "jack" | openssl base64
amFjaw==
printf "abc123" | openssl base64
YWJjMT

Iz

--------------字符终端测试认证发信-----------

telnet mail.lq.com 25

hello mai.lq.com //注意是ehlo不是helo

auth login //认证登录

amFjaw== //用户名

YWJjMTIz // 密码

mail from:[email protected]    //发件人

rcpt to:[email protected]    //收件人

data

this is test 
.

quit

配置OUTLOOK认证发信-在账户属性里-服务器-我的服务器要求身份验证
测试……

配置OUTLOOK:选择文件-账户设置-账户设置-选择账户-更改-其它设置-发送服务器-勾选-使用与接收邮件服务器相同设置

----------第四步:配置web邮箱网页收发邮件------------

注意:需要搭建好LAMP环境
--------RPM安装LAMP---------

yum install -y \
httpd \
mariadb-server mariadb \
php \
php-mysql \
php-gd \
libjpeg* \
php-ldap \
php-odbc \
php-pear \
php-xml \
php-xmlrpc \
php-mhash

vi /etc/httpd/conf/httpd.conf

修改成以下内容:
95  ServerName www.lq.com
164 DirectoryIndex index.html index.php

vi /etc/php.ini

878 date.timezone = PRC 日期时区=中华人民共和国

systemctl start httpd.service
systemctl start mariadb.service
systemctl enable httpd
systemctl enable mariadb

netstat -anpt | grep 80      
netstat -anpt | grep 3306

vi /var/www/html/index.php //php探针 验证Apache支持php语言

<?php   
phpinfo();  //php函数,解析显示php内容信息。
?>

注:/var/www/html是用软件包安装的httpd服务的网页根目录

php -i 检测

windows浏览器中输入以下:
http://192.168.80.181/

--------进入数据库,建立授权账号-----
mysql_secure_installation mysql安全初始化安装

mysql -u root -p 123 使用指定用户和密码登录mysql数据库

CREATE DATABASE abc; 创建新的空的数据库

GRANT all ON abc.* TO 'mail'@'%' IDENTIFIED BY '123456';   

授权,将abc数据库所有的权限授予用户mail,身份验证密码为123456,“%”表示任意主机

flush privileges; 刷新权限

--------下面测试数据库工作是否正常-----

vi /var/www/html/index.php  

删除所有内容后,添加以下内容:

<?php
$link=mysql_connect('192.168.80.181','mail','123456');
if($link) echo "<h1>Success!!</h1>";
else echo "<h1>Fail!!</h1>";
mysql_close();
?>

意思:用mail用户,密码123456,去连接192.168.80.110数据库,如果连接成功显示success!!,失败则显示Fail!!

下载一个网页邮箱的软件包。(小松鼠网页邮箱为例)
http://www.squirrelmail.org/download.php 下载地址

tar xzvf squirrelmail-webmail-1.4.22.tar.gz
tar xzvf all_locales-1.4.18-20090526.tar.gz -C squirrelmail-webmail-1.4.22

cp -rv squirrelmail-webmail-1.4.22 /var/www/html/mail
cd /var/www/html/mail

mkdir attach //创建附件目录,用于存放附件
chown -R apache:apache attach/ data///更改attach/ data/归属,让程序账号apache便于运行

cd config //切换到配置文件存放的目录

cp config_default.php config.php //创建squirrelmail配置文件

vi config.php //修改squirrelmail配置文件

118 $domain = 'lq.com'; /域名
231 $imap_server_type = 'dovecot'; //imap服务器类型设置为dovecot
499 $data_dir = '/var/www/html/mail/data'; //原件存放位置
517 $attachment_dir = '/var/www/html/mail/attach/'//附件存放位置;1012 $squirrelmail_default_language = ‘zh_CN’;//squirrelmail默认语言设置为中文1027 $default_charset = ‘zh_CN.UTF-8’;` //字符编码设置为中文

http://192.168.80.181/mail

------以下设置邮件组-----
vi /etc/aliases //别名配置文件

90 student:	jack,tom   

添加student别名,代表jack,tom

newaliases //生成hash数据库文件

vi /etc/postfix/main.cf
386 alias_maps = hash:/etc/aliases  

如果前面有“#”号,就把“#”去掉

postfix reload

测试向[email protected]发信的时候jack,tom都会收到。

----以下设置邮件大小------

vi /etc/postfix/main.cf
message_size_limit = 5120000 //定义每次发送邮件大小限制,单位是Byte
postfix reload

通过增加大附件测试效果。

----以下通过配置用户磁盘配额实现限制用户邮箱空间-----

umount /home

vi /etc/fstab
UUID=beec665d-7867-4133-8c3a-466ad6018413 /home           xfs     defaults,usrquota,grpquota        0 0

mount -a

quotaon -p  /home   查看有没有开启磁盘限额
   
edquota -u jack //对用户Jack做磁盘配额,使用过,才会出现

repquota /home/    //查看home目录使用情况

增加附件测试效果

/home/jack/Maildir/

new 新邮件
cus 已读邮件
tmp 草稿邮件

猜你喜欢

转载自blog.csdn.net/qq_35734972/article/details/86474170
今日推荐