自建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-04-30 11:23:36

    elasticsearch和analysis-ik的安装使用

    全文搜索和中文分词主要介绍了两组全文搜索加中文分词方案; TNTSearch+jieba-php这套组合对于博客这类的小项目基本够用了;

  • 2019-04-30 11:42:24

    php7+laravel+coreseek(sphinx)中文搜索初步实现(Linux)

    官网www.coreseek.cn已不能下载,所以需从网上找资源, 注意的一点是,笔者安装coreseek-3.2.14版本后,使用时提示client版本高于server版本的错误, php的sphinx扩展,为使用者,为client;coreseek是系统服务,为server

  • 2019-04-30 13:55:13

    浅谈mysql fulltext全文索引优缺点

    为什么会注意到mysql的fulltext? nima, 还是上次innodb转成tokudb引擎的事,这次alter修改表引擎的时候,提示percona tokudb是不支持fulltext索引的.

  • 2019-04-30 18:56:52

    elasticsearch文档操作

    使用了Elasticsearch提供的一整套强大的REST API,本文继续来看通过这一套API如何完成文档的基本操作。

  • 2019-05-05 14:04:11

    PHP使用CURL模拟POST/GET/PUT/DELETE方式提交数据

    最近因为工作需要,调用网盘接口来上传文件,我用了CURL库, 当然在用CURL库之前必须要在php中启用 cURL 设置 可以通过使用php_info()函数来得到cURL信息,如果看不到cURL信息的话,那么需要设置PHP并开启这个库。在Windows平台下,需要改一改php.ini文件的设置,找到 php_curl.dll,并取消前面的分号注释就行了。