自建SMTP服务器完成发信,垃圾邮件拦截相关域名处理

2021-01-21 13:39:32

自建SMTP服务器完成发信,垃圾邮件拦截相关域名处理

文章目录


介绍

由于目前阿里企业邮箱,腾讯企业邮箱都有每日发信频率要求,因此需要自己搭建一个邮件系统完成邮件发送任务.
这篇文章记录服务器搭建过程遇到的问题与解决方法
实际搭建步骤请查看其它作者的文章

服务器安装配置

这里使用的是windows2019操作系统,使用服务器自带的SMTP服务作为邮件发送系统
安装步骤与账户配置这里不做介绍,可以参看其它作者的文章
这里只说明遇到的问题

554 5.5.2 No valid recipients

发送邮件的时候报错554 5.5.2 No valid recipients,需要进行以下设置
单击“访问”选项卡,点击“连接”和“中继”,选中“仅以下列表除外”.
在这里插入图片描述

垃圾邮件处理

现象与原因

发送的邮件会被腾讯邮箱识别为垃圾邮件并直接拦截
原因是没有添加mx,spf,DMARC记录

添加相关域名记录

mx

这个是邮件记录解析,并且只能解析cname域名,因此还需要添加一个A记录的普通域名

spf

这个是用于垃圾邮件识别的域名记录

相关介绍

https://www.renfei.org/blog/introduction-to-spf.html?spm=a2c6h.13066369.0.0.76e0589cbypk7q
检测地址
http://spf.myisp.ch/

DMARC

相关介绍
https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=16&&no=1001508

最终结果

这里假设邮箱发送后缀为 mail.hi.com ,
服务器外网IP为127.145.27.46
那么我添加了以下记录

_dmarc	
TXT
v=DMARC1; p=none; sp=none;
10 分钟

mail	
A	
127.145.27.46
10 分钟

mail	
TXT
v=spf1 a mx ip4:127.145.27.46 -all
10 分钟



mail	
MX
mail.hi.com | 10
10 分钟123456789101112131415161718192021

并且通过http://spf.myisp.ch/检测得

1.Allow if the IP matches an A or AAAA record of mail.hi.com
	127.145.27.46
2.Allow if the IP matches an MX record of mail.hi.com
	mail.hizhanhui.com.
		127.145.27.46
3.Allow all from the ip 127.145.27.46
4.Deny all IPs which do not match any previous rule1234567

通过测试以后,邮件内容不再被腾讯邮箱拦截,并且163,126也能正常接收邮件

也可以使用这个进行测试
http://www.mail-tester.com/12

一些错误解决

SMTP Error: The following recipients failed: Temporary lookup failure
运行命令:
postalias hash:/etc/aliases

Recipient address rejected: User unknown in local recipient table
设置 
local_recipient_maps =


  • 2019-12-10 11:13:50

    前端实战-基于Nuxt的SVG使用

    虽然我们在日常开发的时候,在使用iview 或者element ui等组件时,通常会包含一些常用icon;但是在面对一些特定的需求时,或者自己想high一下,这些通用的icon并不能很好的满足我们。这个时候我们可能会拿到一些SVG适量图,但是怎么去使用这些矢量图呢。

  • 2019-12-10 11:15:08

    用CSS给SVG 的内容添加样式

    SVG图形的一个最常见用例是图标系统,其中最常用的SVG sprite技术就是使用SVG<use> 元素在文档中任意位置“实例化”图标。 使用<use>元素实例化图标或任何其它的SVG元素或图像,给元素添加样式时经常会碰到一些问题。这篇文章的目的是尽可能给你介绍一些方法来解决:使用<use>引入的内容添加样式受限的问题。 但是在开始之前,我们先快速浏览一下SVG的主要结构和分组元素,然后慢慢进入use的世界中,以及shadow DOM,然后重回CSS的怀抱。我们会逐步讲解为什么给<use>内容添加样式会比较麻烦,以及有什么好的解决方案。

  • 2019-12-10 16:21:05

    display:flex的子元素无法设置宽度

    子元素有个flex-shrink属性,表示在父元素宽度不够的情况下是自动收缩不?0表示不自动收缩,1表示自动收缩;所以将子元素(图片)添加属性:flex-shrink:0;即

  • 2019-12-10 21:14:11

    axios文件上传功能+formData

    在项目中使用axios上传文件,记得new一个纯净的axios或者考虑用ajax请求。因为axios在项目估计已经用了全局配置请求头等信息,这里的配置可能被全局请求头拦截,导致请求失败。 2.1构造formData 作者:exmexm 链接:https://www.jianshu.com/p/9c708a47d8a5 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 2019-12-11 16:04:15

    CSS中的 “var()” 和 “:root”

    var() var()函数可以代替元素中任何属性中的值的任何部分。var()函数不能作为属性名、选择器或者其他除了属性值之外的值。(这样做通常会产生无效的语法或者一个没有关联到变量的值。)

  • 2019-12-11 16:18:51

    npm发布vue组件

    开发之前先看看官网的 开发规范 我们开发的之后期望的结果是支持 import、require 或者直接使用 script 标签的形式引入,就像这样