在 Win10 上 WSL 安裝 Debian 12 后,Linux 如何啟動 SMTP 服務?

在 WSL 的 Debian 12 中啟動 SMTP 服務(以 Postfix 為例),請按以下步驟操作:


1. 安裝 Postfix

sudo apt update
sudo apt install postfix mailutils
  • 安裝過程中會彈出配置窗口:
    • General type of mail configuration:選擇 Internet Site(默認)
    • System mail name:輸入您的域名(如 localhostyourdomain.com),測試時可保留默認值。

2. 配置 Postfix

編輯主配置文件:

sudo nano /etc/postfix/main.cf

確保以下關鍵配置:

inet_interfaces = loopback-only  # 只允許本地連接
inet_protocols = ipv4           # 僅使用 IPv4(避免 WSL 兼容性問題)
mydestination = $myhostname, localhost.$mydomain, localhost

保存并退出(Ctrl+XYEnter)。


3. 啟動 Postfix

sudo service postfix start
  • 設置開機自啟(WSL 需額外配置):
    sudo nano /etc/rc.local
    
    添加以下內容:
    #!/bin/sh
    service postfix start
    exit 0
    
    保存后賦予可執行權限:
    sudo chmod +x /etc/rc.local
    

4. 測試 SMTP 服務

方法 1:本地發送測試郵件
echo "Test email body" | mail -s "Test Subject" your-local-username@$(hostname)
  • 查看郵件日志:
    tail -f /var/log/mail.log
    
  • 讀取郵件:
    mail
    
方法 2:使用 telnet 手動測試
sudo apt install telnet
telnet localhost 25

連接后輸入:

EHLO localhost
MAIL FROM: <test@localhost>
RCPT TO: <your-local-username@localhost>
DATA
Subject: Test
This is a test email.
.
QUIT

5. 常見問題解決

  • 端口占用:確保 25 端口空閑:
    sudo ss -tulnp | grep :25
    
  • 防火墻:WSL 無需額外配置防火墻。
  • 郵件發送失敗
    • 檢查日志:tail -f /var/log/mail.log
    • 確保配置中 inet_interfaces = loopback-only

6. 外部郵件發送配置(可選)

若需發送到外部郵箱(如 Gmail),需配置中繼:

  1. 編輯 /etc/postfix/main.cf,添加:
    relayhost = [smtp.gmail.com]:587
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
    smtp_use_tls = yes
    
  2. 創建認證文件:
    sudo nano /etc/postfix/sasl_passwd
    
    內容:
    [smtp.gmail.com]:587 your-email@gmail.com:your-app-password
    
  3. 生成權限文件:
    sudo postmap /etc/postfix/sasl_passwd
    sudo chmod 600 /etc/postfix/sasl_passwd*
    
  4. 重啟 Postfix:
    sudo service postfix restart
    

說明:

  • WSL 限制:Postfix 僅在 WSL 運行時有效,關閉終端后服務停止(需通過 /etc/rc.local 實現自啟)。
  • 安全性:默認配置僅允許本地訪問,暴露端口需謹慎。
  • 其他 SMTP 服務(如 Exim)可類似安裝,但 Postfix 是 Debian 默認推薦。

在 Win 10 上,如何發送一個郵件給 Debian 12 的 SMTP 服務 ?

要從 Windows 10 主機發送郵件到 WSL 中的 Debian 12 SMTP 服務(Postfix),需要完成以下步驟:

先決條件

  1. 已按照之前說明在 WSL Debian 中安裝并配置 Postfix
  2. 關鍵修改:需要讓 Postfix 監聽 WSL 的網絡接口而不僅是 loopback

步驟 1:修改 Postfix 配置(在 WSL Debian 中)

sudo nano /etc/postfix/main.cf

進行以下修改:

# 允許監聽所有網絡接口(包括 WSL 虛擬接口)
inet_interfaces = all# 允許來自本地網絡的客戶端
mynetworks = 127.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16# 接收任意域名的郵件(測試用)
mydestination = $myhostname, localhost.$mydomain, localhost

保存后重啟 Postfix:

sudo service postfix restart

步驟 2:獲取 WSL 的 IP 地址(在 Debian 中)

ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | cut -d/ -f1

示例輸出:172.27.112.214(記錄這個 IP)


步驟 3:在 Windows 10 上發送郵件

方法 1:使用 Telnet(推薦測試)
  1. 在 Windows 功能中啟用 Telnet 客戶端
    • Win+R → optionalfeatures → 勾選 “Telnet Client”
  2. 打開命令提示符:
telnet 172.27.112.214 25
  1. 手動輸入 SMTP 命令:
EHLO windows
MAIL FROM: <test@windows>
RCPT TO: <your_linux_username>  # 使用 Linux 用戶名
DATA
Subject: Test from WindowsThis is a test email
.  # 單獨一行輸入點結束
QUIT
方法 2:使用 PowerShell 腳本
$SmtpServer = "172.27.112.214"  # 替換為你的 WSL IP
$Port = 25
$From = "test@windows"
$To = "your_linux_username@localhost"  # 替換為你的 Linux 用戶名
$Subject = "Test from PowerShell"
$Body = "This is a test email body"$Message = @{To         = $ToFrom       = $FromSubject    = $SubjectBody       = $BodySmtpServer = $SmtpServerPort       = $Port
}Send-MailMessage @Message -UseSsl:$false
方法 3:使用 Python 腳本

保存為 send_mail.py

import smtplibsmtp_server = "172.27.112.214"  # 替換為你的 WSL IP
port = 25
sender = "test@windows"
receiver = "your_linux_username"  # 替換為你的 Linux 用戶名message = f"""\
Subject: Test from Python
To: {receiver}
From: {sender}This is a test email from Python."""with smtplib.SMTP(smtp_server, port) as server:server.sendmail(sender, receiver, message)
print("Email sent!")

運行:

python send_mail.py

步驟 4:在 Debian 中查收郵件

# 查看郵件日志
tail -f /var/log/mail.log# 查看收到的郵件
mail

輸入郵件編號查看內容,按 q 退出。


故障排除

  1. 連接被拒絕

    • 檢查 Postfix 是否運行:sudo service postfix status
    • 確認監聽地址:sudo ss -tuln | grep :25
    • 臨時關閉 WSL 防火墻:sudo ufw disable
  2. 郵件未送達

    • 檢查接收者用戶名是否正確
    • 查看郵件隊列:sudo mailq
    • 檢查日志:sudo grep 'status=sent' /var/log/mail.log
  3. IP 地址變化問題

    # 在 WSL 中創建固定主機名
    sudo nano /etc/hosts
    127.0.0.1   wsl-host  # 添加這一行
    

    在 Windows 中發送郵件到 wsl-host 代替 IP


安全說明(測試環境適用)

  1. 此配置開放了 SMTP 端口到本地網絡,僅適用于開發測試
  2. 生產環境需要:
    • 啟用 SMTP 認證
    • 配置 TLS 加密
    • 限制 mynetworks 范圍
    • 使用更安全的郵件服務配置

注意:WSL 的 IP 地址在每次重啟后可能變化,如需固定 IP,需配置 WSL 網絡或使用 DNS 解析。

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

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

相關文章

樹莓派超全系列教程文檔--(59)樹莓派攝像頭rpicam-apps

這里寫目錄標題 rpicam-apps libcamera 文章來源&#xff1a; http://raspberry.dns8844.cn/documentation 原文網址 rpicam-apps 樹莓派操作系統 Bookworm 將相機捕捉應用程序從 libcamera-\* 重命名為 rpicam-*。符號鏈接允許用戶暫時使用舊名稱。盡快采用新的應用程序名稱…

【數據結構】圖論最短路徑算法深度解析:從BFS基礎到全算法綜述?

最短路徑 導讀一、最短路徑1.1 單源最短路徑1.2 各頂點間的最短路徑1.3 最短路徑算法 二、BFS算法結語內容回顧下一篇預告&#xff1a;挑戰帶權最短路徑&#xff01; 導讀 大家好&#xff0c;很高興又和大家見面啦&#xff01;&#xff01;&#xff01; 歡迎繼續探索圖算法的…

中國政務數據安全建設細化及市場需求分析

(基于新《政務數據共享條例》及相關法規) 一、引言 近年來,中國政府高度重視數字政府建設和數據要素市場化配置改革。《政務數據共享條例》(以下簡稱“《共享條例》”)的發布,與《中華人民共和國數據安全法》(以下簡稱“《數據安全法》”)、《中華人民共和國個人信息…

Linux信號保存與處理機制詳解

Linux信號的保存與處理涉及多個關鍵機制&#xff0c;以下是詳細的總結&#xff1a; 1. 信號的保存 進程描述符&#xff08;task_struct&#xff09;&#xff1a;每個進程的PCB中包含信號相關信息。 pending信號集&#xff1a;記錄已到達但未處理的信號&#xff08;未決信號&a…

【Redis】筆記|第10節|京東HotKey實現多級緩存架構

緩存架構 京東HotKey架構 代碼結構 代碼詳情 功能點&#xff1a;&#xff08;如代碼有錯誤&#xff0c;歡迎討論糾正&#xff09; 多級緩存&#xff0c;先查HotKey緩存&#xff0c;再查Redis&#xff0c;最后才查數據庫熱點數據重建邏輯使用分布式鎖&#xff0c;二次查詢更新…

php apache構建 Web 服務器

虛擬機配置流程winsever2016配置Apache、Mysql、php_windows server 2016配置web服務器-CSDN博客 PHP 和 Apache 通過 ??模塊化協作?? 共同構建 Web 服務器&#xff0c;以下是它們的交互機制和工作流程&#xff1a; ??一、核心組件分工?? 組件角色??Apache??Web …

二分查找排序講解

一、二分查找&#xff08;Binary Search&#xff09; 核心思想&#xff1a; 前提&#xff1a;數組必須是 有序的&#xff08;比如從小到大排列&#xff09;。目標&#xff1a;在數組中快速找到某個數&#xff08;比如找 7&#xff09;。方法&#xff1a;每次排除一半的數&…

【Redis實戰:緩存與消息隊列的應用】

在現代互聯網開發中&#xff0c;Redis 作為一款高性能的內存數據庫&#xff0c;廣泛應用于緩存和消息隊列等場景。本文將深入探討 Redis 在這兩個領域的應用&#xff0c;并通過代碼示例比較兩個流行的框架&#xff08;Redis 和 RabbitMQ&#xff09;的特點與適用場景&#xff0…

[拓撲優化] 1.概述

常見的拓撲優化方法有&#xff1a;均勻化法、變密度法、漸進結構優化法、水平集法、移動可變形組件法等。 常見的數值計算方法有&#xff1a;有限元法、有限差分法、邊界元法、離散元法、無網格法、擴展有限元法、等幾何分析等。 將上述數值計算方法與拓撲優化方法結合&#…

【openssl】升級為3.3.1,避免安全漏洞

本文檔旨在形成 對Linux系統openssl版本進行升級 的搭建標準操作過程&#xff0c;搭建完成后&#xff0c;實現 openssl 達到3.3以上版本&#xff0c;避免安全漏洞 效果。 一、查看當前版本 版本不高于3.1的&#xff0c;均需要升級。 # 服務器上運行以下命令&#xff0c;查看…

基于正點原子阿波羅F429開發板的LWIP應用(6)——SNTP功能和lwiperf測速

說在開頭 正點原子F429開發板主芯片采用的是STM32F429IGT6&#xff0c;網絡PHY芯片采用的是LAN8720A(V1)和YT8512C(V2)&#xff0c;采用的是RMII連接&#xff0c;PHY_ADDR為0&#xff1b;在代碼中將會對不同的芯片做出適配。 CubeMX版本&#xff1a;6.6.1&#xff1b; F4芯片組…

C:\Users\中文名修改為英文名

C:\Users\中文名修改為英文名 背景操作步驟 背景 買了臺新電腦&#xff0c;初始化好不知道啥操作把自己的登錄用戶名改成了中文&#xff0c;有些安裝的軟件看見有中文直接就水土不服了。 操作步驟 以下稱中文用戶名為張三。 正常登錄張三用戶 進入用戶管理頁面修改用戶名&a…

YOLOv12環境配置,手把手教你使用YOLOv12訓練自己的數據集和推理(附YOLOv12網絡結構圖),全文最詳細教程

文章目錄 前言一、YOLOv12代碼下載地址1.YOLOv12模型結構圖 二、YOLO環境配置教程1.創建虛擬環境2.激活虛擬環境3.查詢自己電腦可支持最高cuda版本是多少&#xff08;無顯卡的同學可以跳過這個步驟&#xff09;4.pytorch安裝5.驗證 PyTorch GPU 是否可用&#xff08;沒有顯卡的…

ES6(ES2015)特性全解析

ES6&#xff08;ECMAScript 2015&#xff09;是 JavaScript 語言發展史上的一個重要里程碑&#xff0c;它引入了許多新的語法特性和功能&#xff0c;提升了代碼的可讀性、可維護性和開發效率。 1. 塊級作用域變量&#xff1a;let 和 const ES6 引入了 let 和 const 關鍵字&am…

jvm 垃圾收集算法 詳解

垃圾收集算法 分代收集理論 垃圾收集器的理論基礎&#xff0c;它建立在兩個分代假說之上&#xff1a; 弱分代假說&#xff1a;絕大多數對象都是朝生夕滅的。強分代假說&#xff1a;熬過越多次垃圾收集過程的對象就越難以消亡。 這兩個分代假說共同奠定了多款常用的垃圾收集…

數字孿生+AR/VR的融合創新

目錄 引言&#xff1a;工業元宇宙的興起與技術基石數字孿生&#xff1a;工業元宇宙的數字底座 2.1 數字孿生的概念與關鍵要素 2.2 數字孿生在工業領域的應用 2.3 數字孿生的技術架構 (Mermaid Graph) AR/VR&#xff1a;工業元宇宙的沉浸式體驗層 3.1 AR/VR 的概念與技術原理…

圖解C#教程 第五版 第4章 類型、存儲和變量 筆記

第4章 類型、存儲和變量 筆記 4.1 C# 程序是一組類型聲明 C程序是一組函數和數據類型&#xff0c;C程序是一組函數和類&#xff0c; 而C#程序是一組類型聲明&#xff0c;具有如下特征&#xff1a; C# 程序或 DLL 的源代碼是一組類型聲明類型聲明中必須有一個包含 Main 方法…

SpringBoot整合SSM

1. SSM整合步驟 今天帶大家學習一下基于SpringBoot的SSM整合案例&#xff0c;話不多說&#xff0c;咱們開始&#xff0c;要實現SSM整合&#xff0c;有以下這么幾步 導入依賴創建yml配置文件dao層靜態頁面測試類進行測試 1.1 導入依賴 <?xml version"1.0" enco…

多面體模型-學習筆記2

1&#xff09; 多面體模型被應用于解決程序變換問題&#xff0c;并有效地推動了程 序自動并行化等技術的發展。與傳統的解決程序變換的方法相比&#xff0c;多面體模型 具有許多優勢[5]。多面體模型提供了一種強大的抽象&#xff0c;將每個語句的動態語句執 行實例視作一個多面…

基于django+vue的健身房管理系統-vue

開發語言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.8數據庫&#xff1a;mysql 5.7數據庫工具&#xff1a;Navicat12開發軟件&#xff1a;PyCharm 系統展示 會員信息管理 員工信息管理 會員卡類型管理 健身項目管理 會員卡管理 摘要 健身房管理…