OpenEuler服務器警告郵件自動化發送:原理、配置與安全實踐

OpenEuler服務器警告郵件自動化發送:原理、配置與安全實踐

在服務器的運維管理過程中,及時感知系統異常狀態至關重要。當OpenEuler系統運行時,將服務器的警告信息實時推送至郵箱,能幫助運維人員快速響應潛在問題,保障系統穩定運行。本文將深入探討在OpenEuler系統中實現警告信息郵件發送的技術原理、詳細配置流程、常見問題及安全防護措施。

郵件發送技術原理剖析

在OpenEuler系統中通過腳本實現郵件發送,主要依賴于郵件傳輸協議,其中最常用的是SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協議)。SMTP協議負責將郵件從發送端服務器傳輸到接收端服務器,其工作基于TCP/IP協議,默認端口為25。不過,在實際應用中,為了保證傳輸安全,許多郵件服務提供商啟用了TLS/SSL加密,使用465(SMTPS,基于SSL的SMTP)或587(STARTTLS,在明文連接上升級為加密連接)端口。

以使用QQ郵箱作為發送郵箱為例,我們通過腳本中的mailx命令與QQ郵箱的SMTP服務器建立連接。mailx工具會根據我們配置的SMTP服務器地址、端口、認證方式等參數,向SMTP服務器發送郵件指令。發送過程中,首先進行身份驗證,驗證通過后,將郵件內容(包括主題、正文等)按照SMTP協議的格式封裝并傳輸至服務器,最終由服務器將郵件投遞到目標郵箱。了解這些原理,有助于我們在配置和使用過程中更好地理解和排查問題。

OpenEuler郵件發送配置詳解

安裝mailx

在OpenEuler系統中,包管理工具為dnf,使用以下命令安裝mailx

sudo dnf install mailx

mailx是一款功能強大的郵件客戶端工具,通過命令行即可實現郵件的發送與接收,為我們后續編寫腳本發送郵件提供了基礎。

編寫測試腳本

#!/bin/bash# QQ郵箱配置
QQ_EMAIL="xxx@qq.com"        # 替換為您的QQ郵箱
QQ_PASSWORD="zzz"   # 替換為QQ郵箱授權碼
SMTP_SERVER="smtp.qq.com"              # QQ郵箱SMTP服務器
SMTP_PORT=465                          # QQ郵箱SMTP端口# 測試郵件內容
subject="TEST: Email Alert Function"
message="This is a test email to verify the alert function is working.Server Information:
Hostname: $(hostname)
IP Address: 192.168.1.100
Test Time: $(date)
"echo "$message" | mailx -v -r "$QQ_EMAIL" -s "$subject" \
-S smtp="smtps://$SMTP_SERVER:$SMTP_PORT" \
-S smtp-auth=login \
-S smtp-auth-user="$QQ_EMAIL" \
-S smtp-auth-password="$QQ_PASSWORD" \
-S ssl-verify=ignore \
-S nss-config-dir=/etc/pki/nssdb \
"$QQ_EMAIL"echo "Email test completed at $(date)"

在上述腳本中,我們首先定義了 QQ 郵箱的相關配置信息,包括郵箱地址、授權碼、SMTP 服務器地址和端口。這里的授權碼是 QQ 郵箱為第三方應用提供的特殊密碼,用于身份驗證。

隨后設置了郵件的主題和正文內容,正文中還通過系統命令獲取了服務器的主機名、IP 地址和當前時間,方便我們在接收郵件時了解發送郵件的服務器相關信息。

最后,使用echo命令將郵件內容傳遞給mailx命令,并通過一系列參數配置mailx與 SMTP 服務器的連接和認證方式。其中-v參數用于顯示詳細的執行過程信息,便于排查問題;-r指定發件人郵箱;-s設置郵件主題;-S參數用于配置 SMTP 相關選項,如服務器地址、認證方式、認證用戶和密碼等。

在 qq 郵箱中獲取到郵箱授權碼

登錄網頁版 QQ 郵箱

打開瀏覽器,訪問 QQ 郵箱官方網址https://mail.qq.com/ ,通過 QQ 賬號密碼、掃碼等方式完成登錄,進入 QQ 郵箱的主界面。

進入設置 - 賬戶頁面

在 QQ 郵箱主界面的右上角,找到并點擊 “設置”按鈕(通常是齒輪形狀的圖標 )。在彈出的下拉菜單中,選擇“賬戶” 選項,進入賬戶相關設置頁面。

找到服務設置區域

在 “賬戶” 設置頁面中,向下滾動頁面,找到 “POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV 服務” 這一板塊 。

開啟對應服務并驗證

找到 “IMAP/SMTP 服務”(若只是用于第三方客戶端發送郵件,一般開啟這個即可;若有其他需求,也可按需開啟 POP3 等服務 ),點擊其右側的“開啟” 按鈕 。此時會彈出驗證提示,需要通過與 QQ 綁定的手機進行短信驗證。

按照彈窗提示,使用綁定的手機編輯短信(短信內容一般為固定的 “配置郵件客戶端” ,收件號碼通常是 1069070069 ,以實際彈窗顯示為準 ),發送短信后,回到網頁點擊 “我已發送”

獲取授權碼:短信驗證通過后,頁面會自動生成一串16 位的授權碼(由字母和數字組成,無規律 )。將這串授權碼復制保存好,后續在配置第三方客戶端(如腳本里發送郵件、其他郵件 APP 等)時使用 。

補充說明

若服務已開啟過:在 “POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV 服務” 板塊,找到對應服務(如 IMAP/SMTP 服務 ),點擊 “管理服務”,然后選擇“生成授權碼”,同樣需完成短信驗證后獲取新的授權碼(之前的授權碼若忘記或丟失,可這樣重新生成 )。

注意事項:

授權碼是用于第三方客戶端登錄 QQ 郵箱的 “專用密碼”,要妥善保管,不要泄露。
若后續修改了 QQ 密碼、QQ 郵箱獨立密碼,之前的授權碼會失效,需重新按照上述步驟獲取新的授權碼 。

驗證腳本

完成腳本編寫后,需賦予腳本執行權限并運行:

chmod +x test_email.sh
./test_email.sh

chmod +x命令用于為腳本添加可執行權限,執行腳本后,若配置正確,將向指定郵箱發送測試郵件。此時可前往郵箱查看是否收到郵件,若未收到,可根據mailx命令執行過程中的詳細信息(通過-v參數顯示)排查問題,如檢查網絡連接、SMTP 服務器配置、授權碼是否正確等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909197.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909197.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909197.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用vite-plugin-html在 HTML 文件中動態注入數據,如元數據、環境變量、標題

vite-plugin-html 是一個用于 Vite 構建工具的插件,它可以幫助你在構建過程中動態注入一些 HTML 內容,比如標題、元數據、環境變量等。通過使用這個插件,你可以根據項目的配置和環境變量自動生成帶有動態內容的 HTML 文件,適用于 …

學習筆記087——Java接口和抽象類的區別和使用

文章目錄 1、主要區別2、使用場景2.1 使用接口的情況:2.1 使用抽象類的情況: 3、Java 8及以后的接口增強4、設計建議 1、主要區別 特性接口(Interface)抽象類(Abstract Class)定義方式使用interface關鍵字使用abstract class關鍵字方法實現Java 8前不能…

Squid 代理服務器實戰:解決動態 IP 訪問第三方接口的生產級方案

前言:動態IP場景下的業務痛點與解決方案 在企業開發場景中,經常會遇到這樣的需求:第三方服務(如API接口、云平臺服務)要求將訪問源IP加入白名單以保障安全。然而,企業辦公網絡通常采用動態IP分配&#xff0…

React中子傳父組件通信操作指南

文章目錄 為什么需要子傳父通信?方法一:回調函數(最常用)基礎示例實際場景:待辦事項列表 方法二:使用useRef傳遞引用方法三:Context API(跨層級通信)方法四:自…

【android bluetooth 框架分析 04】【bt-framework 層詳解 5】【AbstractionLayer介紹】

1. AbstractionLayer 介紹 我們在閱讀 native 和 java 層 藍牙服務代碼時,會發現很多 AbstractionLayer.xxxxx 的字段。 這些字段 雖然很容易理解是干什么的。 但是 大家有沒有考慮過, 為啥要專門定義一個類來存放他們。 這樣設計的意義是什么&#xff…

AI大模型從0到1記錄學習 大模型技術之機器學習 day27-day60

機器學習概述 機器學習(Machine Learning, ML)主要研究計算機系統對于特定任務的性能,逐步進行改善的算法和統計模型。通過輸入海量訓練數據對模型進行訓練,使模型掌握數據所蘊含的潛在規律,進而對新輸入的數據進行準確…

c/c++ 匯編碼中的.cfi 指令有什么用途?

author: hjjdebug date: 2025年 06月 12日 星期四 14:24:40 CST descrip: c/c 匯編碼中的.cfi 指令有什么用途? 文章目錄 1. 幾個簡寫詞.2. 看一個簡單的測試代碼:3. 生成匯編代碼:4. 分析.cfi 指令5. 小結: 1. 幾個簡寫詞. cfi(call frame info) 調用幀信息, 名詞. 描述的是…

ArcGIS Pro 3.4 二次開發 - 任務

環境:ArcGIS Pro SDK 3.4 + .NET 8 文章目錄 任務1 任務1.1 檢索項目中的所有任務項1.2 打開任務文件 - .esriTasks 文件1.3 打開項目任務項1.4 關閉任務項1.5 導出任務項1.6 獲取任務信息 - 從 TaskProjectItem1.7 獲取任務信息 - 從 .esriTasks 文件1.8 在任務文件中打開特定…

vscode如何修改終端的默認配置

問題困擾: 每次打開都是 powershell, 因為每次要是用 git bash, 所以每次手動切換很麻煩。 要將默認終端設置為 Git Bash,可以通過以下步驟完成。以下是詳細的操作方法: 步驟 1:打開終端設置 在 Visual Studio Code 的菜單欄中…

kafka快速入門與知識匯總

? kafka快速入門與知識匯總 一、前言 kafka是一款消息中間件,可以用于傳輸消息和日志收集、監控項目狀況。與其類似的技術棧有rocketmq、rabbitmq等,但這些技術棧大多應用在一些簡單的消息傳輸平臺,而kafka則因其對大量數據的高性能處理在…

設計模式——觀察者設計模式(行為型)

摘要 本文詳細介紹了觀察者設計模式,包括其定義、結構、實現方式、適用場景以及實戰示例。通過代碼示例展示了如何在Spring框架下實現觀察者模式,以及如何通過該模式實現狀態變化通知。同時,對比了觀察者模式與消息中間件在設計理念、耦合程…

uniapp 頁面棧一定深度后,回首頁導航到新頁面的解決方案

uniapp 頁面棧一定深度后,回首頁導航到新頁面的解決方案 uniapp 頁面導航解決方案 在 uniapp 中,要實現先彈出頁面棧回到首頁,然后再跳轉到指定頁面。 /*** description 后臺選擇鏈接專用跳轉*/ interface Link {path: string;name?: stri…

數據結構 散列表 學習 2025年6月12日15:30:48

數據結構 散列表 哈希表(Hash Table): 通過哈希函數將鍵&#xff08;key&#xff09;映射到存儲位置&#xff0c;從而實現快速的插入、刪除和查找操作。 哈希表是現代編程中最重要的數據結構之一&#xff0c;幾乎所有編程語言都提供了內置實現。 計數 #include <stdio.h&g…

數據結構之LinkedList

系列文章目錄 數據結構之ArrayList-CSDN博客 目錄 系列文章目錄 前言 一、模擬實現鏈表 1. 遍歷鏈表 2. 插入節點 3. 刪除節點 4. 清空鏈表 二、鏈表的常見操作 1. 反轉鏈表 2. 返回鏈表的中間節點 3. 鏈表倒數第 k 個節點 4. 合并兩個有序鏈表 5. 分割鏈表 6. 判…

DC3靶機滲透

1. 靶機介紹 主要的內容有 sql 注入漏洞、joomla 框架漏洞、ssh 攻擊、shell 反彈、提權 信息收集(ip、端口、目錄、指紋信息)--->利用漏洞--->反彈---->提權 2. 信息收集 2.1. 掃描存活 ip 192.168.220.134 2.2. 端口掃描 nmap -T4 -A -p- 192.168.220.134 …

C# 線程交互

一、為什么要進行線程交互 在C#中&#xff0c;線程交互通常涉及到多個線程之間的數據共享和同步。?. 一、全局變量 在C#中&#xff0c;全局變量是指在程序的任何地方都可以訪問的變量。通常&#xff0c;全局變量是在類的外部定義的&#xff0c;或者在所有方法之外定義的。全…

Cursor 編輯器中的 Notepad 功能使用指南

Cursor 編輯器中的 Notepad 功能使用指南 摘要 本指南全面介紹了 Cursor 編輯器中的 Notepad 功能&#xff0c;涵蓋其用途、多種訪問方式、適用場景以及與其它功能的整合技巧等內容&#xff0c;助力用戶高效利用該功能提升工作流程效率。 不同訪問方式介紹 功能概述 Curso…

用于評估大語言模型(LLMs)能力的重要基準任務(Benchmark)

基準任務涵蓋了 多領域&#xff08;如語言理解、數學、推理、編程、醫學等&#xff09;和 多能力維度&#xff08;如事實檢索、計算、代碼生成、鏈式推理、多語言處理&#xff09;。常用于模型發布時的對比評測&#xff0c;例如 GPT-4、Claude、Gemini、Mistral 等模型的論文或…

力扣HOT100之技巧:169. 多數元素

這道題如果不考慮空間復雜度和時間復雜度的限制的話很好做&#xff0c;一種思路是通過一次遍歷將所有元素的數量記錄在一個哈希表中&#xff0c;然后我們直接返回出現次數最多的鍵即可。另一種思路是直接對數組進行排序&#xff0c;數組中間的值一定是多數元素&#xff0c;因為…

wordpress首頁調用指定ID頁面內的相冊

要在WordPress首頁調用ID為2的頁面中的相冊&#xff0c;你可以使用以下幾種方法&#xff1a; 方法一&#xff1a;使用短代碼和自定義查詢 首先&#xff0c;在你的主題的functions.php文件中添加以下代碼&#xff1a; function display_page_gallery($atts) {$atts shortcod…