SMTP

SMTP基本电子邮件发送前端

1.电子邮件发送linux

 

客户端发送给服务器端,postfix软件提供MTA,MDA.vim

MTA 提供SMTP服务,接受邮件(读取DNSMX记录)--》保存MDA 传送邮件数组

MUA 用户代理安全

 

1-1服务器使用SMTP协议将电子邮件提交至TCP端口25,或由本地客户端经过/usr/bin/sendmail程序进行提交。若是该MTA是最终目标位置,邮件将传递至MDA。不然,将使用MX记录在DNS中查找下一个MTA,并使用SMTP进行转发。服务器

1-2.MDA:“邮件发送代理MDA将邮件发送至收件人的本地邮件存储位置(默认状况下是/var/spool/mail/user)Postfix提供本身的MDA,以发送至基于文件的本地默认邮件存储位置/usr/libexec/postfix/local.网络

1-3.转发:电子邮件服务器(MTA)将提交的邮件转发至另外一个服务器,以进行发送dom

1-4.排队:失败的发送或转发尝试排队等待,并由MTA定义重试。(默认状况下,Postfix每小时执行此操做一次)编辑器

1-5.拒绝:在首次提交期间,电子邮件被电子邮件服务器拒绝ide

1-6.退回:远程服务器接受电子邮件以进行发送之后,又将该电子邮件退回给始发电子邮件服务器和/或用户电子邮件以进行发送之后,又将该电子邮件退回给始发电子邮件服务器和/或用户

 

 

2-1Postfixpostfix RPM包提供,并经过postfix服务脚本控制。它是一个由多个协同操做程序构成的模块化程序,它的组件由master进程控制。

2-2Postfix的主配置文件是/etc/postfix/main.cf,可使用文本编辑器或postconf命令进行编辑。postconf命令还可用于肯定Postfix的全部当前和默认配置设置或逐项肯定这些设置。

2-3默认状况下,Postfix仅侦听来自本地主机的传入电子邮件。若要从新配置postfix以接收从远程主机发送的本地邮件,必须在/etc/postfix/main.cf中设置inet_interfaces = all

2-4对电子邮件进行故障排除时,将在/var/log/maillog中保留全部与邮件相关的操做日志,其中包括关于被事件和成功事件的信息。mailq命令(postqueue -p)显示已排队的全部传出邮件的列表。若要尝试再次当即发送全部已排队的邮件,能够运行postfix flush命令(postqueue -f);不然,postfix将大约每小时尝试从新发送一次,直至邮件被接受或过时

 

 

3.重要的Postfix配置指令

  能够在/etc/postfix/main.cf文件中找到如下全部指令。

3-1 myorigin

    重写本地发布的电子邮件,使其显示为来自该域。这样有助于确保响应返回入站邮件服务器

    默认:myorigin = $myhostname

3-2 inet_interfaces

    控制Postfix侦听传入电子邮件的网络接口。若是设置为loopback-only,仅侦听127.0.0.1::1,

    若是设置为all,则侦听全部网络接口。还能够指定特定地址。

    默认:inet_interfaces = localhost

3-3 mydestination

    收到地址为这些域的电子邮件将传递至MDA,以进行本地发送。

    默认:mydestination = $myhostname, localhost.$mydomain, localhost

3-4 mynetworks

    IP地址和网络的逗号分隔列表(采用CIDR表示法)。这些地址和网络能够经过此MTA转发至任何位置,无需进一步身份验证。

    默认:mynetworks = 127.0.0.0/8

3-5 relayhost

    relayhost转发全部经过的出站邮件。一般用方括号指定,以阻止MX记录查找。

    默认:relayhost =

3-6 local_transport

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

    默认:local_transport = local:$myhostname

3-7

    postconf -d 显示默认值。

    postconf -n显示不一样于默认值的更改。

 

 

4.空壳邮件客户端(给服务端新建空壳,保护数据安全。)

    实际上,大多数组织再也不只用一个邮件服务器来处理全部入站和出战电子邮件。相反,出于安全方面的考虑邮件服务器专门针对特定角色进行了设置,以即可以面向其具体针对的应用程序更好标准角色包括:

   1null客户端:运行本地MTA的客户端计算机,使全部电子邮件均可以转发至中央邮件服务器以进行发送,null客户端不接受任何电子邮件的本地发送。

   2)仅入站邮件服务器:在站点处理用户的全部传入电子邮件,并将之传递给MDA以发送至用户邮件存储位置的邮件服务器。在实际状况中,一般会在仅入站邮件服务器前端安装反垃圾邮件服务器或备,以过滤垃圾邮件而且仅将 正常邮件转发至入站邮件服务器。

   3)出站邮件转发:出站邮件转发(“smarthost”)接收全部出站邮件,并使用MX

录和SMTP协议将邮件转发至目标位置 。

 

 

#################环境配置

一台主机:(IP:172.25.254.1450

hostnamectl set-hostname mailinux.linux.com

 

yum install bind

systemctl  start  named

systemctl stop firewalld.service

vim /etc/resolv.conf

wKioL1g-hHawBB6bAABR-tw8XRM381.png-wh_50 

 

vim /etc/named.conf

wKiom1g-hIKSL2b3AAFXbRQqQ_c006.png-wh_50 

 

wKioL1g-hI2RtRbxAABJTbdLksk595.png-wh_50 

 vim /etc/named.rfc1912.zones

wKioL1g-hJmDGinrAAF-hsW4Iy4005.png-wh_50 

 

cd  /var/named

cp -p named.localhost westos.com.zone

vim westos.com.zone

wKiom1g-hKSQV092AADz8yeoqJ0085.png-wh_50 

 

cp -p named.localhost linux.com.zone

vim linux.com.zone

wKioL1g-hLCzvnyfAADCfK8ttRI551.png-wh_50 

 

另一台主机

hostnamectl set-hostname mailwestos.westos.com

systemctl  stop  firewalld   关掉火墙

vim /etc/resolv.conf

wKiom1g-hLrQ8BWrAABjFfGlqC8623.png-wh_50 

 

测试

两台主机均可以做为测试端

dig -t mx linux.com

 

wKioL1g-hMeioIpeAAE8WtMKjc8693.png-wh_50 

 

dig -t mx westos.com

wKiom1g-hNWSL4jSAAFKFXDDNdw287.png-wh_50 

 

 

####################远程发送

一台主机

 vim /etc/postfix/main.cf

 

 mydomain = linux.com          #收件方看到的发送方邮件主机名

 myorigin = $mydomain

  inet_interfaces = all             #开启接口

  #inet_interfaces = localhost   #关闭只容许本地访问

  mydestination = $myhostname, $mydomain, localhost  #

wKiom1g-hN_RK9DOAAGWsVzMaqE149.png-wh_50 

 

 

wKiom1g-hO3RMyJ3AABVHjoc9xs575.png-wh_50 

 

wKioL1g-hPXzbGNQAACqL3yvdK4937.png-wh_50 

 

wKioL1g-hP-zORJjAAFe1w0IsG0604.png-wh_50 

 

重启服务 systemctl restart postfix.service

 

另一台主机

vim /etc/postfix/main.cf

配置相同,只是把全部的linux改成westos

 

重启服务 systemctl restart postfix.service

 netstat antlpe |grep master  #查看端口

测试(两台主机均可以)

lmailinux主机上测

wKiom1g-hQrQu0FgAAB5slrnClo230.png-wh_50 

 

在另一台主机上看发送结果

wKioL1g-hRWA4rrfAALnX6LqyYI323.png-wh_50 

 

 

##############################别名   

    1.vim /etc/aliasesmailinux主机)

      最后添加  root:  admin

wKiom1g-hSDTTQ-FAAAz8noVfMg849.png-wh_50 

    2.postalias /etc/aliases

    3.systemctl restart  postfix

4.mail admin     #可直接用别名给root发邮件

测试

mailwestos发送主机

发送

wKioL1g-hSrBS3QdAADOhsoxj94059.png-wh_50 

mailinux主机接收

wKiom1g-hTfigzU9AAQPPcoCAnA814.png-wh_50 

 

 

###############################群发

 

1.vim /etc/moreusersmailinux主机)

     root

     student

2.vim /etc/aliases

     最后添加 more:  :include:/etc/moreusers

wKiom1g-hUCCtWG-AABqa-_7qEE813.png-wh_50 

 3.postalias /etc/aliases

4.systemctl restart  postfix

 5.mail more

6.分别查看

   mail

   mail -u student

测试

mailwestos发送主机

wKiom1g-hUvhlJWnAABsAl_OsAk457.png-wh_50 

 

 

mailinux接收主机 (rootstudent用户都接收到了邮件)

wKioL1g-hVqwfLlyAANMwCcvU9M468.png-wh_50 

 

 

wKiom1g-hWaC510YAALTN_Uia0w682.png-wh_50 

 

############################出站地址假装

1.vim /etc/postfix/generic(mailinux主机)

wKioL1g-hW-yBPrTAAAydgrlqzM720.png-wh_50 

2.postmap /etc/postfix/generic

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

4.systemctl restart postfix.service

5.测试

mailinux发送端

wKiom1g-hXnRMU5_AACG8T-5nGc975.png-wh_50 

 

mailwestos测试端

wKioL1g-hYXA3jCNAAP1htmz_dI231.png-wh_50 

 

###########################远程发送

 

另一台主机上操做,从mailinux主机发送一份邮件到mailwestos主机

 

 

wKiom1g-hZPiQcbSAAHX52mfTnI328.png-wh_50 

 

mailwestos主机上查看

wKioL1g-haHwASRjAALZZsL-HKk919.png-wh_50

相关文章
相关标签/搜索