一、Postfix[安装与配置、smtp认证、Python发送邮件以及防垃圾邮件方法、使用腾讯云邮件服务]
Debian 11
一、安装
apt install postfix
二、配置
1.dns配置
解释:搭建真实的邮件服务器需要在DNS提供商那里配置下面的dns
- 配置A记录
mail.www.com-1.x.x.x - 配置MX记录
www.com-mail.www.com
解释:按照上面的配置通常邮件格式就是admin@www.com其通过www.com的MX记录找到mail.www.com再通过其A记录来找到对应服务器完成通讯
2.基础配置
解释:配置main.cf文件(位置/etc/postfix/main.cf),下面的配置包括上面的按照自己实际的域名来配置
假设
- 域名为
www.com - 邮件地址(主机名):
mail.www.com
修改里面的内容:
myhostname = mail.www.commydomain = www.commyorigin = $myhostname #在上面配置的下面home_mailbox = Maildir/
重启:service postfix restart
查看25端口是否开启:netstat -lnpt(特别提醒一般的服务器25端口并不会开启,可能需要向服务器提供商进行申请)
测试邮件发送:echo "测试邮件正文" | sendmail xxxxx@qq.com (一般会发送到垃圾邮件里面)
三、smtp认证
安装:安装sasl认证模块apt-get insatll sasl2-bin
解释:配置main.cf文件(位置/etc/postfix/main.cf),下面的配置写入到该文件内
#配置smtp认证
#开启SMTP服务器的SASL认证功能
smtpd_sasl_auth_enable = yes
#设置SASL认证的本地域名为服务器的域名
smtpd_sasl_local_domain = $mydomain
#设置接收方限制条件,允许来自本地网络的请求和经过SASL认证的请求,拒绝未认证的目标
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_client_restrictions = permit_sasl_authenticated
# 允许不完全符合SASL规范的认证客户端连接
broken_sasl_auth_clients = yes
#设置SMTPD的SASL路径
smtpd_sasl_path = smtpd
#禁用匿名访问SASL认证
smtpd_sasl_security_options = noanonymous
# 在邮件头中包含经过SASL认证的用户名信息
smtpd_sasl_authenticated_header = yes
# 设置邮件大小限制为15MB
message_size_limit = 15728640
创建用户:saslpasswd2 -c -u baidu.com(你的域名) admin(用户) #回车后要输入两次密码
查看用户列表:sasldblistusers2 -f /etc/sasldb2
重要配置:
- 将sasl用户数据库放在postfix可以打开的目录里面(postfix所能浏览的目录有限制故必须把数据库文件复制到postfix的运行目录下不然在用户验证的时候会出错)(每次创建新用户后都要执行一遍):
cp -a /etc/sasldb2 /var/spool/postfix/etc/ - 将postfix添加到sasl组(这样就有了对/var/spool/postfix/etc/读取的权限):
gpasswd -a postfix sasl
四、Python发送邮件以及防垃圾邮件方法
1.发送格式
标准代码:设置好发送者,送达人,发送时间等标准格式避免被勿任为垃圾邮件
import smtplibfrom email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMETextfrom email.utils import formatdate
def sendmail(email_, header, content):from_addr = 'd@admin.xxx'passwd = 'g'# 邮件内容message = MIMEMultipart()message.attach(MIMEText(content, 'plain', 'utf-8'))# 设置发件人和主题message['From'] = f'FreeAi<{from_addr}>' # 发件人message['To'] = email_ # 发给谁message['Subject'] = Header(header, 'utf-8') # 主题message['Date'] = formatdate(localtime=True)smtp = smtplib.SMTP("mail.admin.xxx", 25) # 创建安全的smtp对象,依赖smtp服务器的安全配置smtp.login(from_addr, passwd)smtp.sendmail(from_addr, to_addrs=email_, msg=message.as_string())smtp.quit()
content = '''
诚挚的问候,
您的名字 Jack
'''
sendmail('88@qq.com','关于',content)
2.SPF
解释:发件人策略框架(SPF)是一种以IP地址认证电子邮件发件人身份的技术,是非常高效的垃圾邮件解决方案
步骤:
- 打开DNS服务器进行更改:TXT-(名称)yourdomain.com-(内容)v=spf1 a mx ip4:8.8.0.0 ~all
注意:yourdomain.com应填自己的域名;8.8.0.0应填自己的ip
3.RDNS
解释:反向DNS查找或者反向DNS解析(rDNS)用于判定一个域名与给定IP是否互相关联。有些公司例如AOL会拒绝没有进行反向解析的发件服务器发出的所有消息,所以你必须确保你进行了反向解析。
可能1(自建服务器):
- 打开DNS服务器进行更改:PTR-(名称)8.8.0.0-(内容)mail.yourdomain.com
- 注意:
mail.yourdomain.com应填自己的子域名;8.8.0.0应填自己的ip
可能2(云服务器):
- 在控制台更改Reverse DNS,改为
mail.yourdomain.com(自己的子域名)
4.DKIM
解释:DKIM是一种电子邮件身份验证协议。它使用公钥密码学来验证发送的电子邮件的完整性和来源。发件服务器使用私钥对邮件进行签名,而邮件接收服务器使用公钥来验证签名的有效性。DKIM的目标是证明邮件确实是由所声明的发件人发送,并且未被篡改
下载:sudo apt install opendkim opendkim-tools
Linux中执行命令:opendkim-genkey -b 2048 -s selector1 -d example.com(其中selector1 比较重要下面还要用(可自定义);example.com是自己的域名)
获取公钥:openssl rsa -in selector1.private -pubout -out selector1.public(其中selector1与上面要保持一致,公钥就生成在selector1.public文件)
步骤:
- 打开DNS服务器进行更改:TXT-(名称)selector1._domainkey.mail.yourdomain.com-(内容)v=DKIM1;p=MII…
注意:selector1还是要与上面保持一致;p对应上面的公钥
5.DMARC
解释:DMARC 是一个域基础的邮件身份验证和反欺骗协议。它结合了两个其他协议,即DKIM和SPF(Sender Policy Framework),以确保发件人的域名身份验证和防止邮件欺骗
步骤:
- 打开DNS服务器进行更改:TXT-(名称)_dmarc-(内容)v=DMARC1; p=none; pct=100
五、使用腾讯云邮件服务
解释:自建的邮件服务器,不仅25端口申请很麻烦,而且邮件容易变成垃圾邮件,这个还不是最麻烦的,最麻烦的是比如向QQ邮箱发邮件,本人亲测,发了十几封后,几十分钟或数小时再次向QQ邮箱发的邮件因为频率限制被拒收,这种情况不如使用腾讯云邮件服务,其也可以用自己的域名,只需在DNS上配置即可,而且价格相对比较低
使用方法:按下图成功配置后,就去新建发信地址,那里面有可以获取邮箱,和SMTP密码,此时就能很方便的去发邮件了,如直接用上面的python代码,把账号和密码换成腾讯云邮件推送里面的邮箱和SMTP密码即可
网址:https://console.cloud.tencent.com/


相关文章:
一、Postfix[安装与配置、smtp认证、Python发送邮件以及防垃圾邮件方法、使用腾讯云邮件服务]
Debian 11 一、安装 apt install postfix 二、配置 1.dns配置 解释:搭建真实的邮件服务器需要在DNS提供商那里配置下面的dns 配置A记录mail.www.com-1.x.x.x配置MX记录www.com-mail.www.com 解释:按照上面的配置通常邮件格式就是adminwww.com其通过…...
React哲学——官方示例
在本篇技术博客中,我们将介绍React官方示例:React哲学。我们将深入探讨这个示例中使用的组件化、状态管理和数据流等核心概念。让我们一起开始吧! 项目概览 React是一个流行的JavaScript库,用于构建用户界面。React的设计理念是…...
设计模式之开闭原则
什么是开闭原则? 开放封闭原则称为OCP原则(Open Closed Principle)是所有面向对象原则的核心。 “开闭原则”是面向对象编程中最基础和最重要的设计原则之一。 软件设计本身所追求的目标就是封装变化、降低耦合,而开放封闭原则正是对这一…...
Linux中的file命令:查看文件类型
2023年8月1日,周二上午 目录 简要说明使用方法MIME类型举例说明 简要说明 在Linux中,file命令用于识别文件类型。 file命令可以识别各种类型的文件,包括普通文件、目录、符号链接、设备文件、压缩文件、二进制可执行文件等。 它是一个非常…...
使用WiFi测量仪进行机器人定位的粒子过滤器研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
【vue】vue 里面使用 v-html 插入的文本带有换行符‘\n‘不换行
最近开发vue2 项目 ,接口返回的是类似于这样的数据:我是第一行的哦\n我是第二行的哦 我是直接这样渲染的, //html <p v-htmltext></p>//渲染值 this.text "我是第一行的哦\n我是第二行的哦"但结果却是不如意&#x…...
Java失效算法与应用(FIFO、LRU、LFU)
文章目录 一、什么是失效算法二、先来先淘汰(FIFO)1、FIFO概述2、Java实现FIFO3、FIFO特点 三、最久未用淘汰(LRU)1、LRU概述2、Java实现LRU 四、最近最少使用(LFU)1、LFU概述2、Java实现LFU 五、应用案例 …...
Go语音介绍
Go语言介绍 Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言。 Go是静态强类型语言,是区别于解析型语言的编译型语言。 解析型语言——源代码是先翻译为中间代码,然后由解析器对代码进行解释执行。 编译型语言——源代码编…...
Vue2与Vue3响应式原理
Vue2的响应式 Vue3的响应式...
flask中写一个基础的sqlHelper类
写一个SQLHelper类: from flask_sqlalchemy import SQLAlchemydb SQLAlchemy()class SQLHelper:staticmethoddef add(record):db.session.add(record)return SQLHelper.session_commit()staticmethoddef add_all(records):db.session.add_all(records)return SQLH…...
opencv的Mask操作,选择图片中感兴趣的区域
最近做目标检测任务的时候,需要对固定区域的内容进行检测,要用到opencv的mask操作,选择图片固定的区域 代码 import cv2 import numpy as npimg cv2.imread(data/images/smoking.png)# 弹出一个框 让你选择ROI | x,y是左上角的坐标 x,y,w,…...
一次有趣的Webshell分析经历
一次有趣的Webshell分析经历 1.拉取源代码2.解密后门代码3.分析webshell逻辑4.分析404的原因5.附:格式化后的php代码 1.拉取源代码 在对某目标做敏感目录收集时发现对方网站备份源代码在根目录下的 backup.tar.gz,遂下载,先使用D盾分析有没有…...
【NLP概念源和流】 05-引进LSTM网络(第 5/20 部分)
一、说明 在上一篇博客中,我们讨论了原版RNN架构,也讨论了它的局限性。梯度消失是一个非常重要的缺点,它限制了RNN对较短序列的建模。香草 RNN 在相关输入事件和目标信号之间存在超过 5-10 个离散时间步长的时间滞时无法学习。这基本上限制了香草RNN在许多实际问题上的应用,…...
Vue没有node_modules怎么办
npm install 一下 然后再npm run serve 就可以运行了...
企业级高负载web服务器-Tomcat小项目
目录 web静态动态页面区别安装java环境安装Tomcat安装Tomcat包到目录查看Tomcat主目录结构查看Tomcat配置目录结构Tomcat管理Tomcat web管理功能 部署jpress应用 web静态动态页面区别 静态页面: 在网站设计中,纯粹HTML格式的网页(可以包含图…...
《golang设计模式》第一部分·创建型模式-03-建造者模式(Builder)
文章目录 1. 概念1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概念 1.1 角色 Builder(抽象建造者):给出一个抽象接口,以规范产品对象的各个组成成分的建造。ConcreteBuilder(具体建造者)&a…...
git 忽略掉不需要的文件
第一步:创建.gitignore文件 touch .gitignore 第二步:使用vi编辑器 输入不需要的文件,或用通配符*来忽视一系列文件 效果:...
摄像机sd卡格式化怎么恢复数据?简单五步轻松解决
在使用摄像机时,有时不慎将SD卡格式化,导致重要的照片或视频文件丢失。然而,不必惊慌,本文将详细解释如何恢复被格式化的摄像机SD卡上的数据,可通过下面提供的五步,轻松解决数据丢失问题,以确保…...
1-4 AUTOSAR方法论--开发流程
目录 一、方法论 二、单个ECU开发流程 一、方法论 AUTOSAR 方法论(AUTOSAR Methodology)中车用控制器软件的开发涉及系统级、ECU 级的开发。 系统级:主要考虑系统功能需求、硬件资源、系统约束,然后建立系统架构; 输…...
Win10查询硬盘序列号
添加wmic命令 winR cmd命令 wmic diskdrive get model, serialnumber...
08-Spring 数据访问 - JDBC 详解
08. Spring 数据访问 - JDBC 详解 8.1 Spring JDBC 概述 Spring JDBC 是 Spring Framework 提供的数据访问抽象层,简化了 JDBC 的使用,消除了样板代码,同时保留了 JDBC 的完整控制能力。 8.1.1 传统 JDBC 的问题 // 传统 JDBC 代码 - 大量样板代码 public List<User&…...
终端设置显示项目的分支名
function parse_git_branch() {git branch 2> /dev/null | sed -n -e s/^\* \(.*\)/[\1]/p}setopt PROMPT_SUBSTexport PROMPT%F{grey}%n%f %F{green}$(parse_git_branch)%f %F{normal}$%f 在.zshrc中设置以上即可...
PyTorch 2.8镜像作品集:基于OpenCV+Torch的实时手势识别视频演示
PyTorch 2.8镜像作品集:基于OpenCVTorch的实时手势识别视频演示 1. 镜像环境与能力概览 PyTorch 2.8深度学习镜像是一个经过深度优化的专业级开发环境,专为现代AI应用设计。这个环境最吸引人的特点是它已经预装了所有必要的工具和库,让你可…...
[Python3高阶编程] - 横跨同步异步的利器: asgiref.sync
一、asgiref.sync 是什么?asgiref.sync 是 ASGI(Asynchronous Server Gateway Interface)参考实现库 asgiref 中的核心子模块,主要用于安全地桥接同步代码与异步代码。📌 一句话总结: 它让你在异步环境中调…...
OpenClaw版本升级指南:Qwen3-4B模型平滑迁移到v2.0
OpenClaw版本升级指南:Qwen3-4B模型平滑迁移到v2.0 1. 为什么需要这份升级指南 上周五晚上,当我准备将本地OpenClaw从v1.8升级到v2.0时,原本以为只需要简单执行npm update就能搞定。没想到这个看似常规的操作,却让我的Qwen3-4B模…...
cv_unet_image-colorization部署案例:RTX显卡5分钟搭建AI上色工作站
cv_unet_image-colorization部署案例:RTX显卡5分钟搭建AI上色工作站 1. 项目简介 你是否遇到过这样的情况:翻看老照片时,发现很多珍贵的黑白照片已经褪色发黄,想要恢复色彩却不知道从何下手?或者作为摄影师ÿ…...
DeepSeek-Coder-V2-Lite-Instruct社区案例集:开发者如何用AI改变编程方式
DeepSeek-Coder-V2-Lite-Instruct社区案例集:开发者如何用AI改变编程方式 【免费下载链接】DeepSeek-Coder-V2-Lite-Instruct 开源代码智能利器——DeepSeek-Coder-V2,性能比肩GPT4-Turbo,全面支持338种编程语言,128K超长上下文&a…...
python建筑工程项目管理系统设计与实现
目录同行可拿货,招校园代理 ,本人源头供货商功能模块分析资源与成本管理进度与质量管理技术实现要点扩展功能建议项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作同行可拿货,招校园代理 ,本人源头供货商 功能模块分析 项目管理…...
气象数据可视化实战:从雷达图到三维风场,前端技术栈全解析
气象数据可视化实战:从雷达图到三维风场,前端技术栈全解析 气象数据的可视化一直是前端开发领域最具挑战性的方向之一。想象一下,当你需要将每小时更新的全球气象数据转化为直观的动态图像,让气象学家一眼就能看出台风路径、让飞行…...
C++ 性能评测工程:基于 Google Benchmark 的 C++ 函数级性能基准测试方法论
各位技术同仁,下午好!今天,我们将深入探讨一个在C开发中至关重要的话题:C 函数级性能基准测试。尤其是在追求极致性能的C世界里,仅仅依靠经验和直觉来优化代码是远远不够的。我们需要一套科学、严谨的方法论来量化和评…...
