安装Debian12后Linux启动SMTP服务的详细指南

 更新时间:2025年06月08日 10:08:10   作者:belldeep  
这篇文章主要为大家详细了在 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:输入您的域名(如 localhost 或 yourdomain.com),测试时可保留默认值。

2. 配置 Postfix

编辑主配置文件:

sudo nano /etc/postfix/main.cf

确保以下关键配置:

inet_interfaces = loopback-only  # 只允许本地连接
inet_protocols = ipv4           # 仅使用 IPv4(避免 WSL 兼容性问题)
mydestination = $myhostname, localhost.$mydomain, localhost

保存并退出(Ctrl+X → Y → Enter)。

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),需配置中继:

编辑 /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

创建认证文件:

sudo nano /etc/postfix/sasl_passwd

内容:

[smtp.gmail.com]:587 your-email@gmail.com:your-app-password

生成权限文件:

sudo postmap /etc/postfix/sasl_passwd
sudo chmod 600 /etc/postfix/sasl_passwd*

重启 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),需要完成以下步骤:

先决条件

已按照之前说明在 WSL Debian 中安装并配置 Postfix

关键修改:需要让 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(推荐测试)

在 Windows 功能中启用 Telnet 客户端

Win+R → optionalfeatures → 勾选 “Telnet Client”

打开命令提示符:

telnet 172.27.112.214 25

手动输入 SMTP 命令:

EHLO windows
MAIL FROM: <test@windows>
RCPT TO: <your_linux_username>  # 使用 Linux 用户名
DATA
Subject: Test from Windows

This 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         = $To
    From       = $From
    Subject    = $Subject
    Body       = $Body
    SmtpServer = $SmtpServer
    Port       = $Port
}

Send-MailMessage @Message -UseSsl:$false

方法 3:使用 Python 脚本

保存为 send_mail.py:

import smtplib

smtp_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 解析。

到此这篇关于安装Debian12后Linux启动SMTP服务的详细指南的文章就介绍到这了,更多相关Linux启动SMTP服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Linux编辑启动、停止与重启springboot jar包脚本实例

    Linux编辑启动、停止与重启springboot jar包脚本实例

    这篇文章主要给大家介绍了关于Linux编辑启动、停止与重启springboot jar包脚本的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 解决Linux下Mysql5.7忘记密码问题

    解决Linux下Mysql5.7忘记密码问题

    这篇文章主要介绍了解决Linux下Mysql5.7忘记密码问题,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • 手把手教你配置一台Linux虚拟机

    手把手教你配置一台Linux虚拟机

    这篇文章主要手把手教你配置一台Linux虚拟机,具有一定的参考价值和实用价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 如何使用iostat查看linux硬盘IO性能

    如何使用iostat查看linux硬盘IO性能

    这篇文章主要介绍了如何使用iostat查看linux硬盘IO性能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • linux vim撤销回退操作方式

    linux vim撤销回退操作方式

    在Linux的vim编辑器中,撤销(Undo)和回退(Redo)操作可以通过不同的方式实现,撤销单个更改或连续更改,可以使用u键或:undo命令,连续撤销可以使用U命令,而.命令可以重复上一个编辑动作
    2025-02-02
  • Linux中对mysql用户进行管理的操作代码

    Linux中对mysql用户进行管理的操作代码

    这是在Linux里面对MySQL数据库的用户进行管理,其中包括查看全部用户以及权限、赋予增删改查权限、赋予远程连接%权限、删除用户的权限、删除用户、修改密码等,本文给大家详细介绍了Linux中对mysql用户进行管理的操作代码,需要的朋友可以参考下
    2024-11-11
  • SVN服务备份操作步骤分享

    SVN服务备份操作步骤分享

    今天小编就为大家分享一篇关于SVN服务备份操作步骤分享,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • linux之如何杀掉指定端口

    linux之如何杀掉指定端口

    这篇文章主要介绍了linux之如何杀掉指定端口问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Linux (Ubuntu)休眠,挂起,待机,关机的命令详细介绍

    Linux (Ubuntu)休眠,挂起,待机,关机的命令详细介绍

    这篇文章主要介绍了Linux 休眠,挂起,待机,关机的命令详细介绍的相关资料,需要的朋友可以参考下
    2016-10-10
  • Linux Centos 下使用yum 命令安装mysql实现步骤

    Linux Centos 下使用yum 命令安装mysql实现步骤

    这篇文章主要介绍了Linux Centos 下使用yum 命令安装mysql实现步骤的相关资料,需要的朋友可以参考下
    2017-03-03

最新评论