使用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.pswp.cn/bicheng/75322.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75322.shtml
英文地址,請注明出處:http://en.pswp.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…