使用msmtp和mutt在CentOS上发送指定目录下的所有文件作为邮件附件

1.安装 msmtp:
如果尚未安装,请先通过以下命令安装msmtp。

sudo yum install msmtp

2.配置 msmtp 使用新浪邮箱:
创建或编辑配置文件~/.msmtprc,输入以下内容(记得替换授权码)。

defaults
tls on
tls_starttls off
tls_trust_file /etc/pki/tls/certs/ca-bundle.crtaccount sina
host smtp.sina.com
port 465
auth on
user 你的邮件名称@sina.com
password 你的授权码-开启POP3页面里面找
from 你的邮件名称@sina.comaccount default : sina

请确保将“你的邮件名称@sina.com”替换为你的实际新浪邮箱地址。

修改权限:

chmod 600 ~/.msmtprc


3.测试配置:
可以发送一封测试邮件来验证配置是否正确。

echo -e "Subject: Test Mail\r\n\r\nThis is a test email." | msmtp --debug recipient@example.com

recipient@example.com要修改为你的收件邮箱地址

-----------------------

安装和配置 mutt 是处理邮件发送(包括附件)的一个更简便的选择。下面是在 CentOS 系统上安装 mutt 并使用它来发送带有附件的邮件的步骤。

安装 mutt
首先,你需要在 CentOS 上安装 mutt。可以通过以下命令进行安装:

sudo yum install mutt

配置 mutt
创建或编辑 .muttrc 文件:
你需要为 mutt 创建一个配置文件。这个文件通常位于你的主目录下,名为 .muttrc。你可以使用你喜欢的文本编辑器打开并编辑这个文件,例如:

vi ~/.muttrc

添加配置信息:根据你使用的新浪邮箱服务,在.muttrc中添加如下内容(记得替换为你自己的邮箱地址和授权码):

cat > ~/.muttrc <<'EOF'
# 基本设置
set from = "your_email@sina.com"
set realname = "WJF-Email"# 使用 msmtp 作为发信代理(关键!)
set sendmail = "/usr/bin/msmtp"# 禁用内置SMTP(避免冲突)
unset smtp_url
unset smtp_pass
EOF

请将 your_email@sina.com 替换为你的实际新浪邮箱地址,并将 授权码 替换为你从新浪邮箱获取的授权码。
-----------------------

编写脚本发送邮件


接下来,我们将编写一个Bash脚本来发送指定目录下的所有文件作为附件。

1.创建脚本文件:
在你喜欢的目录下创建一个新的脚本文件,例如send_attachments.sh。

vi send_attachments.sh

2.编写脚本内容:
在脚本文件中添加如下内容,记得根据实际情况修改路径和邮箱地址。

#!/bin/bash# 配置
TO="receive-email@qq.com"
FROM="your-email@sina.com"
CURRENT_TIME=$(date +'%Y-%m-%d %H:%M')  # 先获取时间
SUBJECT="数据附件 ${CURRENT_TIME}"
ATTACH_DIR="/你的centos下的目录"# 检查目录
if [ ! -d "$ATTACH_DIR" ]; thenecho "错误:目录 $ATTACH_DIR 不存在" >&2exit 1
fi# 收集附件
attachments=()
while IFS= read -r -d '' file; doattachments+=("-a" "$file")
done < <(find "$ATTACH_DIR" -maxdepth 1 -type f -print0)# 无附件时退出
if [ ${#attachments[@]} -eq 0 ]; thenecho "警告:未找到可发送的文件" >&2exit 0
fi# 发送邮件(静默模式,错误输出到日志)
if ! echo " ${CURRENT_TIME}发送的附件" | \mutt -e "set from=$FROM" -s "$SUBJECT" "${attachments[@]}" -- "$TO" 2>> ~/.msmtp.log; thenecho "邮件发送失败!请检查日志:~/.msmtp.log" >&2exit 1
elseecho "邮件已成功发送至 $TO"
fi

3.赋予执行权限:
给脚本赋予可执行权限。

chmod +x send_attachments.sh

4.运行脚本:
执行脚本来发送邮件。

./send_attachments.sh

这样,你就可以在CentOS系统中使用msmtp和新浪邮箱发送指定目录下的所有文件作为附件了。确保你的服务器能够访问外部SMTP服务,并且防火墙规则允许相应的连接。

如果上面运行有问题,问豆包等AI工具。

要在Shell脚本中实现同时发送邮件到多个邮箱地址,有几种实现方式。以下是完整的解决方案: 方法1:使用空格分隔的多个收件人(最简单)

TO="receive1@qq.com receive2@qq.com receive3@qq.com"

然后在mutt命令中直接使用:

mutt -e "set from=$FROM" -s "$SUBJECT" "${attachments[@]}" -- $TO

注意:多个邮件,上面的命令"$TO"要修改为$TO

单个邮件,也可以直接使用  $TO  

不用加双引号。

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

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

相关文章

Vue+Elementui首页看板

源码 <template><!-- 查询条件--><div class="optimize-norm" v-loading="selectDataLoading"><el-form :model="queryParams" ref="queryRef" style="padding-bottom:8px" :inline="true"…

汇编学习之《指针寄存器大小端学习》

什么是指针寄存器&#xff1f; 操作栈的寄存器 栈&#xff1a; 保存函数里面传递的参数&#xff0c;局部变量等。 EBP&#xff1a; 指向栈底的指针 ESP&#xff1a; 指向栈顶的指针。 计算入栈地址变化规则 通过OllDbg查看 有可能点击安装的时候栈区域第一次查看会没有显…

Oracle数据库数据编程SQL<3.7 PL/SQL 触发器(Trigger)>

触发器是Oracle数据库中的一种特殊存储过程&#xff0c;它会在特定数据库事件发生时自动执行。触发器通常用于实现复杂的业务规则、数据验证、审计跟踪等功能。 目录 一、触发器基本概念 1. 触发器特点 2. 触发器组成要素 二、触发器类型 1. DML触发器 2. DDL触发器 3.…

2025年渗透测试面试题总结-某 携程旅游-基础安全工程师(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 携程旅游-基础安全工程师 反序列化原理 核心原理 扩展分析 SQL注入本质 核心原理 扩展分析 SQL注…

CSS 边框(Border)样式详解

CSS 边框&#xff08;Border&#xff09;样式详解 CSS 提供了多种边框样式&#xff0c;使我们能够控制元素的外观。本文将详细介绍 CSS 边框的各种属性及应用示例。 1. 基本边框属性 CSS 主要使用 border 相关属性定义边框&#xff0c;基本语法如下&#xff1a; border: [边…

SpringCould微服务架构之Docker(6)

容器的基本命令&#xff1a; 1. docker exec &#xff1a;进入容器执行命令 2. docker logs: -f 持续查看容器的运行日志 3. docker ps&#xff1a;查看所有运行的容器和状态 案例&#xff1a;创建运行一个容Nginx容器 docker run--name myNginx -p 80:80 -d nginx 命…

unity3d端监听 uri scheme

一、消息监听 1.创建一个脚本命名为 “URISchemeListener” &#xff0c;用于接收URI消息&#xff08;代码如下&#xff09;。 using System; using System.Runtime.InteropServices; using UnityEngine; using UnityEngine.UI;public class URISchemeListener : MonoBehavio…

网络信息安全应急演练方案

信息安全应急演练方案 总则 &#xff08;一&#xff09;编制目的 旨在建立并完善应对病毒入侵、Webshell 攻击以及未授权访问等信息安全突发事件的应急机制&#xff0c;提升组织对这类事件的快速响应、协同处理和恢复能力&#xff0c;最大程度降低事件对业务运营、数据安全和…

电商场景下高稳定性数据接口的选型与实践

在电商系统开发中&#xff0c;API接口需要应对高并发请求、动态数据更新和复杂业务场景。我将重点解析电商场景对数据接口的特殊需求及选型方案。 一、电商API必备的四大核心能力 千万级商品数据实时同步 支持SKU基础信息/价格/库存多维度更新每日增量数据抓取与历史版本对比…

Android R adb remount 调用流程

目的&#xff1a;调查adb remount 与adb shell进去后执行remount的差异 调试方法&#xff1a;添加log编译adbd,替换system\apex\com.android.adbd\bin\adbd 一、调查adb remount实现 关键代码&#xff1a;system\core\adb\daemon\services.cpp unique_fd daemon_service_to…

多模态大语言模型arxiv论文略读(二)

Identifying the Correlation Between Language Distance and Cross-Lingual Transfer in a Multilingual Representation Space ➡️ 论文标题&#xff1a;Identifying the Correlation Between Language Distance and Cross-Lingual Transfer in a Multilingual Representat…

【运维】负载均衡

老规矩&#xff0c;先占坑&#xff0c;后续更新。 开头先理解一下所谓的“均衡”&#xff0c;不能狭义地理解为分配给所有实际服务器一样多的工作量&#xff0c;因为多台服务器的承载能力各不相同&#xff0c;这可能体现在硬件配置、网络带宽的差异&#xff0c;也可能因为某台…

大型语言模型Claude的“思维模式”最近被公开解剖

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Ubuntu环境安装

1. 安装gcc、g和make sudo apt update sudo apt install build-essential 2. 安装cmake ubuntu安装cmake的三种方法&#xff08;超方便&#xff01;&#xff09;-CSDN博客 3. 安装ssh sudo apt-get install libssl-dev

【力扣hot100题】(028)删除链表的倒数第N个节点

链表题还是太简单了。 怕越界所以先定义了一个头结点的头结点&#xff0c;然后定义快慢指针&#xff0c;快指针先走n步&#xff0c;随后一起走&#xff0c;直到快指针走到头&#xff0c;删除慢指针后一个节点即可。 /*** Definition for singly-linked list.* struct ListNod…

C/C++回调函数实现与std::function和std::bind介绍

1 概述 回调函数是一种编程模式&#xff0c;指的是将一个函数作为参数传递给另一个函数&#xff0c;并在某个特定事件发生时或满足某些条件时由该函数调用。这种机制允许你定义在特定事件发生时应执行的代码&#xff0c;从而实现更灵活和模块化的程序设计。 2 传统C/C回调实现…

【蓝桥杯】单片机设计与开发,速成备赛

一、LED模块开看&#xff0c;到大模板 二、刷第零讲题目&#xff08;直接复制模板&#xff09; 三、空降芯片模板直接调用部分&#xff08;听完再敲代码&#xff09; 四、第十三讲开刷省赛题&#xff08;开始自己背敲模板&#xff09; 五、考前串讲刷一遍 b连接&#xff1…

Java 基础-28- 多态 — 多态下的类型转换问题

在 Java 中&#xff0c;多态&#xff08;Polymorphism&#xff09;是面向对象编程的核心概念之一。多态允许不同类型的对象通过相同的方法接口进行操作&#xff0c;而实际调用的行为取决于对象的实际类型。虽然多态提供了极大的灵活性&#xff0c;但在多态的使用过程中&#xf…

Epub转PDF软件Calibre电子书管理软件

Epub转PDF软件&#xff1a;Calibre电子书管理软件 https://download.csdn.net/download/hu5566798/90549599 一款好用的电子书管理软件&#xff0c;可快速导入电脑里的电子书并进行管理&#xff0c;支持多种格式&#xff0c;阅读起来非常方便。同时也有电子书格式转换功能。 …

在 Ubuntu 22.04 上安装 Docker Compose 的步骤

1. 确保已安装 Docker Docker Compose 需要 Docker 作为依赖&#xff0c;请先安装 Docker&#xff1a; sudo apt update sudo apt install docker.io sudo systemctl enable --now docker2. 下载 Docker Compose 二进制文件 推荐安装最新稳定版的 Docker Compose&#xff08…