当前位置: 首页 > news >正文

Postfix 主配置文件:只允许本机发送邮件,不接收任何外部邮件

我想实现的功能是,它可以发送邮件,给外网的用户,,比如发送给我xxxxxxxxxxxxxx@163.com , 但是这个服务器不接收任何邮件。

下面是Postfix 具体配置。配置内容保存到 Postfix 的主配置文件中(一般为 /etc/postfix/main.cf),然后重启 Postfix 服务生效。

###############################################################################
# Postfix 主配置文件:只允许本机发送外部邮件,不接收任何外部邮件
###############################################################################


# 163 邮件服务器不支持 SMTPUTF8 扩展,禁止这个才能给163发邮件。
smtputf8_enable = no

# 显示在 SMTP 握手时的标识信息
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)

# 关闭 biff 服务(即时邮件通知)
biff = no

# 不自动追加发件人地址的域名(由 MUA 自行处理)
append_dot_mydomain = no

# 禁止提供 readme 目录(安全考虑)
readme_directory = no

# 设置 Postfix 的兼容性级别(默认级别为 2)
compatibility_level = 2

###############################################################################
# TLS/SSL 参数配置(测试环境使用 snakeoil 证书,正式环境建议使用正规证书)
###############################################################################
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file  = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level = may

smtp_tls_CApath = /etc/ssl/certs
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

###############################################################################
# 中继限制设置
# 仅允许本机或经过认证的用户通过此服务器发送邮件,防止成为开放中继
###############################################################################
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination

###############################################################################
# 主机名及发信域名设置
###############################################################################
# 设置邮件服务器的主机名(与 hostnamectl 显示一致)
myhostname = MY-HOST-NAME

# 发件域名使用 /etc/mailname 中的内容,也可直接指定域名,如:example.com
myorigin = /etc/mailname

###############################################################################
# 本地投递设置
# 为确保不接收外部邮件,将本地投递域限制为 localhost
###############################################################################
mydestination = localhost

###############################################################################
# 中转设置
# relayhost 为空表示 Postfix 直接通过 DNS 将邮件发送到目标邮件服务器
###############################################################################
relayhost =

###############################################################################
# 网络访问控制
# 只允许本机(127.0.0.0/8 和 IPv6 的 loopback 地址)通过此服务器发送邮件,
# 防止外部主机连接到该服务器提交邮件。
###############################################################################
mynetworks = 127.0.0.0/8, [::1]/128

###############################################################################
# 邮箱及邮件地址相关设置
###############################################################################
# 邮箱大小无限制(0 表示不限制)
mailbox_size_limit = 0

# 定义邮件地址中的分隔符(例如 user+tag@example.com)
recipient_delimiter = +

###############################################################################
# 接收服务设置
# 只在本机回环接口上监听 SMTP 服务,外部无法连接到该服务器接收邮件
###############################################################################
inet_interfaces = loopback-only

# 同时支持 IPv4 和 IPv6 协议
inet_protocols = all

重启邮件服务

sudo systemctl restart postfix

测试发送一份邮件给自己

echo "这是一封测试邮件,来自 Postfix 配置测试。" | mail -s "测试邮件" xxxxxxxx@163.com

观察日志
使用如下命令观察日志,确认邮件是否发送成功:

tail -f /var/log/mail.log

相关文章:

  • 详细介绍 一下Tailwind CSS 在 Vite 项目中的配置和使用
  • 数据交互,请求拦截器,响应拦截器
  • 网络工程师 (42)IP地址
  • (学习总结24)Linux 基本命令2
  • android 自定义view时钟显示
  • 解锁机器学习核心算法 | 线性回归:机器学习的基石
  • 常用查找算法整理(顺序查找、二分查找、哈希查找、二叉排序树查找、平衡二叉树查找、红黑树查找、B树和B+树查找、分块查找)
  • 编程题-合并区间(中等-重点)
  • WEB安全--SQL注入--PDO与绕过
  • 第36次CCF计算机软件能力认证 python 参考代码
  • 智能化客户画像构建管理:AI视频监控在大型商场的技术
  • ERP项目与BPM项目的关系
  • 教程 | 从零部署到业务融合:DeepSeek R1 私有化部署实战指南
  • PyTorch 深度学习项目结构及nn.Module介绍
  • 根据用户ID进行分表,为什么会数据倾斜,怎么保证数据不倾斜
  • React常用hooks
  • JUC并发总结一
  • 数据恢复-02-故障硬盘的检测
  • 第三节 元组、集合、字典
  • 基于Ubuntu+vLLM+NVIDIA T4高效部署DeepSeek大模型实战指南
  • 车主质疑零跑汽车撞车后AEB未触发、气囊未弹出,4S店:其把油门当刹车
  • 上海制造佳品汇大阪站即将启幕,泡泡玛特领潮出海
  • 缅甸内观冥想的历史漂流:从“人民鸦片”到东方灵修
  • 上海虹桥国际咖啡文化节周五开幕,来看Coffeewalk通关攻略
  • 加强战略矿产出口全链条管控将重点开展哪些工作?商务部答问
  • 江西贵溪:铜板上雕出的国潮美学