当前位置: 首页 > news >正文

Linux服务器自动发送邮件

一、安装sendmail和mailx

yum -y install sendmail mailx

二、在qq邮箱官网生成授权码

 

三、运行如下脚本

smtp-auth-password为生成的授权码

#!/bin/bash
###########################################################   
# Script Name: addSmtpConf.sh   
# Description: SMTP Configuration Script   
#              - Automatically retrieves QQ Mail SSL certificate   
#              - Configures NSS certificate database   
#              - Updates mail client configuration   
# Author: XXX   
# Created: 2025-04-02   
# Version: 1.1   
# Usage:    
#    ./addSmtpConf.sh   
#    Requires root privileges   
############################################################ Start the sendmail service
systemctl start sendmail# Configuration variables
CERT_DIR="/root/.certs"
CERT_FILE="${CERT_DIR}/qq.crt"
MAILRC="/etc/mail.rc"# Create certificate directory if not exists
if [ ! -d "${CERT_DIR}" ]; thenmkdir -p "${CERT_DIR}"echo "Created certificate directory: ${CERT_DIR}"
fi# Retrieve QQ mail SSL certificate
echo "Fetching SSL certificate from smtp.qq.com..."
if ! echo | openssl s_client -connect smtp.qq.com:465 -servername smtp.qq.com 2>/dev/null | \sed -n '/BEGIN CERTIFICATE/,/END CERTIFICATE/p' > "${CERT_FILE}"
thenecho "Error: Failed to retrieve certificate"exit 1
fi# Add certificates to NSS database
for cert_name in "GeoTrust SSL CA" "GeoTrust Global CA"; docertutil -A -n "${cert_name}" -t "TC,," -d "${CERT_DIR}" -i "${CERT_FILE}" >/dev/null 2>&1
done
echo "Certificates added to NSS database:"
certutil -L -d "${CERT_DIR}"# Mail configuration parameters
declare -A MAIL_CONFIG=(["from"]="?????????@qq.com"["smtp"]="smtps://smtp.qq.com:465"["smtp-auth-user"]="?????????@qq.com"["smtp-auth-password"]="????????????????"["ssl-verify"]="ignore"["nss-config-dir"]="/root/.certs"["smtp-auth"]="login"
)# Update mail configuration
echo "Checking mail configuration..."
for key in "${!MAIL_CONFIG[@]}"; dovalue="${MAIL_CONFIG[$key]}"config_line="set ${key}=${value}"# Check if configuration existsif ! grep -qF "${config_line}" "${MAILRC}" 2>/dev/null; thenecho "Adding configuration: ${config_line}"echo "${config_line}" | tee -a "${MAILRC}" >/dev/nullfi
doneecho "Configuration completed successfully."

四、测试可否成功发送邮件

echo "test" | mail -s "test" ?????????@qq.com

http://www.dtcms.com/a/248938.html

相关文章:

  • 提示词Prompts(2)
  • 图像处理算法的学习笔记
  • Python6.13打卡(day45)
  • YOLOV11 中的 DFL Loss解读
  • 如何运营一个专业的体育比分网站
  • 【DVWA系列】——xss(Stored)——High详细教程
  • Go并发编程中的内存同步与竞态:从理论到实践
  • 深度学习笔记26-天气预测(Tensorflow)
  • 华为数字化转型进阶——精读188页华为EBPM数字化全要素流程管理方法论【附全文阅读】
  • 泰国电商系统简单纪要
  • Agent 处理流程
  • Arduino学习-红外感应
  • 基于通义灵码2.5的智能天气预警系统开发全记录
  • SQL注入部分理论入门学习
  • LLM-大模型原理
  • Elasticsearch 批量创建索引实践与优化建议
  • LeetCode - 76. 最小覆盖子串
  • Linux文件权限详解:从入门到精通
  • Deepseek+python - 自动图表生成
  • 自定义表单右侧属性使用v-bind绑定渲染
  • linux环境配置Go运行环境
  • 《Head First》读书笔记
  • 缩小 IEEE 会议论文 LaTeX 模板标题、作者信息和正文的间距
  • (十四)自然语言处理中的深度学习:语言表征、模型架构与计算语言学基础
  • 现代简约单词卡片应用 - 基础版
  • shader实现发亮的粒子 + 透明度渲染可能出现的坑
  • 生益PCB耐高温PCB板材怎么样?
  • 使用清华大学的 Hugging Face 镜像
  • python中的面向对象:继承、封装、多态
  • AFE之MC33772B详解