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

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.xdnf.cn/news/14018.html

相关文章:

  • java爬虫框架,简单高效,易用,附带可运行案例
  • 深入 Java 泛型:基础应用与实战技巧
  • 现在可以买到的方便携带的吹奏乐器
  • Python 爬虫入门 Day 2 - HTML解析入门(使用 BeautifulSoup)
  • 中小企业申请商标避免使用误认名称!
  • 一个小错误:Content-Type ‘text/plain;charset=UTF-8‘ is not supported 的粗心
  • ONLYOFFICE协作空间API指南:使用JavaScript SDK为每个用户结构化协作房间
  • 利用DeepSeek将docx生成程序迁移至minidocx
  • 【6S.081】Lab1 Xv6 and Unix utilities
  • git提交错误 [remote rejected] HEAD -> refs/xxx
  • PHP:Web 开发领域的常青树
  • Jmeter压测手册:脚本配置、服务器环境搭建与运行
  • PIN to PIN兼容设计:MT8370与MT8390核心板开发对比与优化建议
  • react 使用 postcss-px-to-viewport 实现 px 自动转 vw 自适应
  • Docker Compose 部署 Prometheus + Grafana
  • NORA:一个用于具身任务的小型开源通才视觉-语言-动作模型
  • 基于Netty的TCP Server端和Client端解决正向隔离网闸数据透传问题
  • 轻量级顺序监控器监控 LLM 中的分解攻击
  • sticky设置了top但还是有大约1px空隙
  • [深度学习]全连接神经网络
  • 迁移学习基础
  • 最大闭合子图学习笔记 / P2805 [NOI2009] 植物大战僵尸
  • Nature Light: Science Applications>:拓扑光子学新进展!JR态实现纳米级精度光束整形
  • TOUGH模型软件
  • 最新 Python-PLAXIS 自动化建模技术与典型岩土工程案例实践应用
  • aflplusplus:开源的模糊测试工具!全参数详细教程!Kali Linux教程!(一)
  • 解决 Git 错误:error: src refspec master does not match any
  • 篇章五 系统性能优化——资源优化——CPU优化(1)
  • 在线招聘系统源码+SpringBoot + Vue (前后端分离)
  • CVPR2024迁移学习《Unified Language-driven Zero-shot Domain Adaptation》