通过SMTP协议实现Linux邮件发送配置指南

一、环境准备与基础配置

1. SMTP服务开通(以qq邮箱为例)

  1. 登录qq邮箱网页端,进入「设置」-「POP3/SMTP/IMAP」

  2. 开启「SMTP服务」并获取16位授权码(替代邮箱密码使用)

  3. 记录关键参数:

    • SMTP服务器地址:smtp.qq.com

    • 安全端口号:465

    • 加密类型:SSL


二、服务器端口验证

1. 网络连通性检测

# 使用nmap扫描开放端口
nmap -Pn smtp.qq.com -p 25,465,587# 快速验证SSL端口
nc -zv smtp.qq.com 465

典型输出

2. 端口选择建议

端口协议安全性适用场景
25明文SMTP不推荐使用
465SSL加密推荐配置
587STARTTLS兼容性要求场景

三、邮件客户端配置

1. mail.rc文件配置

编辑配置文件/etc/mail.rc添加以下参数:

# SMTP服务基础配置
set from="发件人 <yourname@qq.com>"
set smtp="smtps://smtp.qq.com:465"
set smtp-auth-user="yourname@qq.com"  #须与首行邮件地址一致
set smtp-auth-password="16位授权码"
set smtp-auth=login# SSL证书配置
set ssl-verify=ignore
set nss-config-dir=/etc/mail_certs  #需手动配置,详见--四、证书信任配置

2. 服务重启与状态检查

systemctl restart postfix
systemctl status postfix -l

四、证书信任配置

1. 证书目录创建

mkdir -p /etc/mail_certs
cd /etc/mail_certs

2. SSL证书获取与安装

# 提取邮件服务器证书
openssl s_client -connect smtp.qq.com:465 \| sed -n '/BEGIN CERTIFICATE/,/END CERTIFICATE/p' > qq.crt# 添加证书到信任列表
certutil -A -n "SMTP_qq_SSL" -t "P,P,P" -d . -i qq.crt

参数解析

  • -A:添加证书

  • -n:证书标识名称

  • -t:信任级别(P=受信任的CA)

  • -d:证书存储目录


五、邮件发送验证

1. 命令行发送测试

# 发送文本内容
echo "邮件正文" | mail -s "测试主题" recipient@example.com# 发送文件内容
echo -e "Subject: Test Mail\nThis is the mail body" > /tmp/mail.txt
mailx -v -s "测试主题" recipient@example.com < /tmp/mail.txt

2. 日志查看与排错

tail -f /var/log/maillog
# 成功发送的关键词:status=sent (250 Message accepted)

六、安全增强建议

1. 权限管理

chmod 600 /etc/mail.rc          # 配置文件权限
chown root:root /etc/mail_certs # 证书目录归属

2. 定期维护

  • 每90天更新授权码

  • 使用certutil -L -d /etc/mail_certs检查证书有效期

  • 清理旧日志:logrotate /etc/logrotate.d/maillog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/81559.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react中安装依赖时的问题 【集合】

目录 依赖升级/更新 1、 npm install --save-dev 与 npm install 的区别 1. ‌安装位置&#xff08;依赖类型&#xff09;‌ 2. ‌package.json 中的区别‌ 3. ‌示例 4. ‌何时使用哪种方式‌ 2、npm install 和 yarn add 有什么不一样吗 ‌命令语法‌&#xff1a; …

Coze 实战教程 | 10 分钟打造你的AI 助手

> 文章中的 xxx 自行替换&#xff0c;文章被屏蔽了。 &#x1f4f1; 想让你的xxx具备 AI 对话能力&#xff1f;本篇将手把手教你&#xff0c;如何用 Coze 平台快速构建一个能与用户自然交流、自动回复提问的 xxx助手&#xff0c;零代码、超高效&#xff01; &#x1f4cc;…

【Spring Cloud Gateway】Nacos整合遇坑记:503 Service Unavailable

一、场景重现 最近在公司进行微服务架构升级&#xff0c;将原有的 Spring Cloud Hoxton 版本升级到最新的 2021.x 版本&#xff0c;同时使用 Nacos 作为服务注册中心和配置中心。在完成基础框架搭建后&#xff0c;我使用 Spring Cloud Gateway 作为API 网关&#xff0c;通过 N…

宝塔面板屏蔽垃圾搜索引擎蜘蛛和扫描工具的办法

首先进入宝塔面板&#xff0c;文件管理进入/www/server/nginx/conf目录&#xff0c;新建空白文件kill_bot.conf。然后将以下代码保存到当前文件中。 #禁止垃圾搜索引擎蜘蛛抓取if ($http_user_agent ~* "CheckMarkNetwork|Synapse|Nimbostratus-Bot|Dark|scraper|LMAO|Ha…

Docker拉取镜像报错Error response from daemon: Get “https://registry-1.docker.io/v2/“

记一次Docker拉取镜像的报错 使用docker拉取镜像时&#xff0c;出现报错 [rootcentos8 ~]# sudo docker pull mysql:8.0 Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.T…

Ansible模块——文件内容修改

修改文件单行内容 ansible.builtin.lineinfile 可以按行修改文件内容&#xff0c;一次修改一行&#xff0c;支持正则表达式。 选项名 类型 默认值 描述 attributesstrnull 设置目标文件的 Linux 文件系统属性&#xff08;attribute bits&#xff09;&#xff0c;作用类似于…

如何用PDO实现安全的数据库操作:避免SQL注入

如何用PDO实现安全的数据库操作&#xff1a;避免SQL注入 在现代Web应用程序中&#xff0c;数据库操作是核心功能之一。然而&#xff0c;SQL注入是一种常见的安全漏洞&#xff0c;攻击者可以通过恶意输入来操控数据库&#xff0c;从而获取敏感信息或破坏数据。使用PHP的PDO&…

使用大语言模型从零构建知识图谱(中)

从零到一&#xff1a;大语言模型在知识图谱构建中的实操指南 ©作者|Ninja Geek 来源|神州问学 还没有看过上篇的读者可以阅读《使用大语言模型从零构建知识图谱&#xff08;上&#xff09;》了解整个系列的内容 通过创建一个自定义流程来自动上传业务数据 在这一节&#…

pycharm连接github(详细步骤)

【前提&#xff1a;菜鸟学习的记录过程&#xff0c;如果有不足之处&#xff0c;还请各位大佬大神们指教&#xff08;感谢&#xff09;】 1.先安装git 没有安装git的小伙伴&#xff0c;看上一篇安装git的文章。 安装git&#xff0c;2.49.0版本-CSDN博客 打开cmd&#xff08;…

uniapp在APP上如何使用websocket--详解

UniApp 在 APP 端如何使用 WebSocket以及常见问题 一、WebSocket 基础概念 WebSocket 是一种在单个TCP连接上进行全双工通信的协议&#xff0c;适用于实时数据传输场景&#xff08;如聊天室、实时游戏、股票行情等&#xff09;。 与传统HTTP对比 特性WebSocketHTTP连接方式…

物联网赋能7×24H无人值守共享自习室系统设计与实践!

随着"全民学习"浪潮的兴起&#xff0c;共享自习室市场也欣欣向荣&#xff0c;今天就带大家了解下在物联网的加持下&#xff0c;无人共享自习室系统的设计与实际方法。 一、物联网系统整体架构 1.1 系统分层设计 层级技术组成核心功能用户端微信小程序/H5预约选座、…

【Linux】ELF与动静态库的“暗黑兵法”:程序是如何跑起来的?

目录 一、什么是库&#xff1f; 1. C标准库&#xff08;libc&#xff09; 2. C标准库&#xff08;libstdc&#xff09; 二、静态库 1. 静态库的生成 2. 静态库的使用 三、动态库 1. 动态库的生成 2. 动态库的使用 3. 库运行的搜索路径。 &#xff08;1&#xff09;原因…

渗透测试流程-中篇

#作者&#xff1a;允砸儿 #日期&#xff1a;乙巳青蛇年 四月廿一&#xff08;2025年5月18日&#xff09; 今天笔者带大家继续学习&#xff0c;网安的知识比较杂且知识面很广&#xff0c;这一部分会介绍很多需要使用的工具。会用各种工具是做网安的基础&#xff0c;ok咱们继续…

[创业之路-358]:从历史轮回到制度跃迁:中国共产党创业模式的超越性密码

人类文明的演进如同一条螺旋上升的阶梯&#xff0c;从原始社会的公有制到资本主义私有制的巅峰&#xff0c;再到社会主义对公有制的重构&#xff0c;每一次制度迭代都伴随着对前序文明的扬弃。中国共产党自诞生之日起&#xff0c;便以“为人类求解放”为使命&#xff0c;在革命…

NLP基础

目录 一、NLP 概述和应用 &#xff08;一&#xff09;NLP 的定义与演进历程 &#xff08;二&#xff09;NLP 的多元应用领域 二、文本预处理技术 &#xff08;一&#xff09;文本获取与编码转换 &#xff08;二&#xff09;文本清洗&#xff1a;去除杂质的精细打磨 &…

【数据结构与算法】ArrayList 与顺序表的实现

目录 一、List 接口 1.1 List 接口的简单介绍 1.1 常用方法 二、顺序表 2.1 线性表的介绍 2.2 顺序表的介绍 2.3 顺序表的实现 2.3.1 前置条件:自定义异常 2.3.2 顺序表的初始化 2.3.2 顺序表的实现 三、ArrayList 实现类 3.1 ArrayList 的两种使用方式 3.2 Array…

Linux518 YUM源仓库回顾(需查)ssh 服务配置回顾 特定任务配置回顾

计划配仓库YUM源 为什么我在/soft文件夹下 使用yum install --downloadonly --downloaddir /soft samba 为什么文件夹下看不到samba文件 exiting because “Download Only” specified 计划过 计划配SSH 参考 ok了 计划配置特定任务解决方案 code: 两端先配好网络 测试好s…

如何完美安装GPU版本的torch、torchvision----解决torch安装慢 无法安装 需要翻墙安装 安装的是GPU版本但无法使用的GPU的错误

声明&#xff1a; 本视频灵感来自b站 如何解决所述问题 如何安装对应版本的torch、torchvison 进入pytorch官网 进入历史版本 这里以cuda11.8 torch 2.1.0为例演示 根据文档找到要安装的torch、torchvison版本 但不是使用命令行直接安装 命令行直接安装可能面临着 安装慢…

【iOS(swift)笔记-9】WKWebView无法访问网络

对于iOS 在info中添加App Transport Security Settings&#xff0c;然后在App Transport Security Settings里添加Allow Arbitrary Loadstrue 对于macOS 除了上面的操作&#xff0c;还需在项目信息的App Sandbox里有个Network打钩选项

buck变换器的simulink/matlab仿真和python参数设计

什么是Buck电路? BUCK电路是一种降压斩波器&#xff0c;降压变换器输出电压平均值Uo总是小于输出电压UD。通常电感中的电流是否连续&#xff0c;取决于开关频率、滤波电感L和电容C的数值。BUCK也是DC-DC基本拓扑&#xff0c;或者称为电路结构&#xff0c;是最基本的DC-DC电路…