热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SPF与邮件头简述

SPF(SenderPolicyFramework)工作原理首先声明,SPF记录其实是DNS上的一条TXT记录SPF是跟DNS相关的一项技术,它的内容
SPF(Sender Policy Framework)工作原理

首先声明,SPF记录其实是DNS上的一条TXT记录

SPF是跟DNS相关的一项技术,它的内容写在DNS的txt类型的记录里面。mx记录的作用是给寄信者指明某个域名的邮件服务器有哪些。SPF的作用跟mx相反,它向收信者表明,哪些邮件服务器是经过某个域名认可会发送邮件的。



任何组织或者企业一般都会有一个邮件服务器。倘若这个服务器开启了SPF且接收到了邮件,那么就会按照如下流程工作。

1.当前邮件服务器接收到了一封邮件,邮件头内容是声称ip为123.123.123.123,发件人为zhangsan@cow.com。
2.这时候邮件服务器就会去查询cow.com的SPF记录看是否允许123.123.123.123这个ip发邮件。根据SPF记录值作出后续的决断例如是否拦截。




SPF语法

每条SPF记录开始都会是:
v=spf1
且都会有自己的前缀,默认是"+"。

前缀意义
“+”Pass(通过)
“-”Fail(拒绝)
“~”Soft Fail(软拒绝)
“?”Neutral(中立)

例如下图为一个拦截实例:
在这里插入图片描述




all

表示所有 IP,肯定会命中。因此通常把它放在 SPF 记录的结尾,表示处理剩下的所有情况。例如:

“v=spf1 -all”
拒绝所有ip发送邮件,或者说这个域名不会发邮件。
“v=spf1 +all”
接受所有




ip4

指定一个IPv4地址或者地址段。例如:

“v=spf1 ip4:123.123.123.1/24 -all”
只允许在 123.123.123.1 ~ 123.123.123.255 范围内的 IP




ip6

格式和ip4的很类似,例如:

“v=spf1 ip6:1080::8:800:200C:417A/96 -all”
只允许在 1080::8:800:0000:0000 ~ 1080::8:800:FFFF:FFFF 范围内的 IP



a 和 mx

这俩的格式是相同的,以a为例,格式为以下四种之一:

a
a/x #这个x就类似于123.123.123.123/23中的23.
a:test.com
a:test.com/24

会命中相应域名的a记录(或mx记录)中包含的IP地址(或地址段)。如果没有提供域名,则使用当前域名。例如:

“v=spf1 mx -all”
允许当前域名的mx记录对应的所有IP地址,也可以说是当前域名的邮件服务器发出的所有邮件都是合法的,只要查找邮件服务器ip进行判断就好。


“v=spf1 mx mx:demo.test.com -all”
允许当前域名和 demo.test.com 的 mx 记录对应的IP地址。


“v=spf1 a/24 -all”
类似地,这个用法则允许一个地址段。

在这里插入图片描述
上图就表示此域名发去出去的ip为123.59.170.202与后面的那个ip这两个是合法的。其余的生成是此域名发出去的都软拒绝。



include

格式为include:test.com,表示引入test.com域名下的SPF记录,如果该域名下不存在 SPF记录,则会出现一个PermError结果。例如:

“v=spf1 include:test.com -all” 继承test.com的SPF记录。
在这里插入图片描述




exp

格式为exp=test.com,目的是如果邮件被拒绝,可以给出一个消息。而消息的具体内容会首先对test.com执行TXT查询,然后执行宏扩展得到。



redirect

格式为redirect=test.com

类似于include。

++SPF相关的介绍在这里就结束了++




邮件头相关知识

++在无SPF的前题下++

假设A的邮箱为a@test.com,邮件服务器为mail.test.com,主机名为xiaokeai。
假设B的邮箱为b@demo.com,邮件服务器为mail.demo.com,主机名为fffff。

此时A给B发了封邮件内容如下

From: a@test.com.cn
To: b@demo.com
Date: …
X-Mailer: Outlook
Subject: hello

邮件先被上传到了mail.test.com,被这个邮件服务器加上一个邮件头信息,最终结果如下:

Received: from xiaokeai(xiaokeai [xiaokeaid的ip]) by mail.test.com (8.8.5) id 004A21; Tue, Mar 18 2003 14:36:17 -0800 (PST)
From: a@test.com.cn
To: b@demo.com
Date: …
X-Mailer: Outlook
Subject: hello

这时候mail.test.com把邮件又转发了mail.demo.com,这时候邮件头变为了:

Received: from mail.test.com (mail.test.com [mail.test.com的ip]) by mail.demo.com (8.8.5/8.7.2) with ESMTP id LAA20869 for b@demo.com; Tue, 18 Mar 2003 14:39:24 -0800 (PST)
Received: from xiaokeai(xiaokeai [xiaokeaid的ip]) by mail.test.com (8.8.5) id 004A21; Tue, Mar 18 2003 14:36:17 -0800 (PST)
From: a@test.com.cn
To: b@demo.com
Date: …
X-Mailer: Outlook
Subject: hello



这时候B就可以看自己的mail.demo.com这个邮件服务器上A发给自己的邮件了。

++from mail.test.com(mail.test.com[ip])++

这句话表示,有邮件声称是mail.test.com发送来的,看了看邮件的ip后发现确实是。

++with ESMTP id LAA20869++

邮件的ID号。

++by mail.test.com (8.8.5)++

表示邮件服务器运行的程序的版本号。

参考
email邮件头详解


推荐阅读
  • 三小时掌握计算机网络基础(通俗易懂)
    目录1.网络层次划分2.OSI七层网络模型3.IP地址4.子网掩码及网络划分5.ARPRARP协议6.路由选择协议7.TCPIP协议8.UDP协议 9.DNS协议 ... [详细]
  • c# java socketn 字节流_C#Socket编程详解(一)TCP与UDP简介
    一、TCP与UDP(转载)1、TCP1.1定义TCP(TransmissionControlProtocol)传输控制协议。是一种可靠的、面向连接的协议(eg:打电话)、传输效率低 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • 邮件服务在网络里的角色是越来越重要,不管是因特网上还是在局域网内部,用户都习惯使用电子邮件来处理日常的工作。而越来越多的企业和单位,也都急切希望能拥有自己的内部邮件服务器,以加强员 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • hosts文件是什么意思
    hosts文件是什么意思:hosts文件是每一台电脑中都必须要拥有的重要文件,hosts文件的作用有很多,今天小编为大家带来的就是hosts文件存在的作用,感兴趣的话就快来看看吧。 ... [详细]
  • linux6.5 配置邮件服务,centos 6.5服务器搭建邮件服务postfix和dovecot
    centos6.5搭建邮件服务postfix和dovecot------------------------------------------------安装DNS指定邮件交换记 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
author-avatar
wumu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有