Module smtp

Source
Expand description

§SMTP 邮件投递组件解析器

SMTP 是 Postfix 的邮件投递组件,负责:

  • 通过 SMTP 协议向远程服务器投递邮件
  • 处理 ESMTP 扩展和功能协商
  • 管理 TLS/SSL 加密连接
  • 记录详细的投递状态和性能指标

§重要统计

基于 517,428 条真实生产数据分析,SMTP 组件占 2.6% 的日志量, 是邮件投递过程中的关键组件。

§核心功能

  • 邮件投递: 向目标 SMTP 服务器投递邮件
  • 协议处理: 支持 SMTP/ESMTP 协议和扩展功能
  • TLS 加密: 建立和管理加密连接
  • 错误处理: 详细的投递失败和连接问题诊断
  • 性能监控: 延迟分解和连接质量统计

§支持的事件类型

  • 投递成功: 邮件成功投递,包含延迟分析
  • 投递退回: 永久投递失败,生成退信
  • 投递延迟: 临时投递失败,等待重试
  • 连接事件: 连接建立、超时、拒绝等网络事件
  • 协议交互: ESMTP 功能协商和流水线处理
  • TLS 事件: SSL/TLS 连接建立和证书验证
  • 调试事件: 详细的协议调试信息

§示例日志格式

# 投递成功
queue_id: to=<user@example.com>, relay=mail.example.com[1.2.3.4]:25, delay=1.2, delays=0.1/0.2/0.8/0.1, dsn=2.0.0, status=sent (250 Message accepted)

# 投递退回
queue_id: to=<user@example.com>, relay=mail.example.com[1.2.3.4]:25, delay=0.5, delays=0.1/0.1/0.2/0.1, dsn=5.1.1, status=bounced (550 User unknown)

# 连接问题
queue_id: connect to mail.example.com[1.2.3.4]:25: Connection timed out
queue_id: lost connection with mail.example.com[1.2.3.4] while sending DATA command

# TLS 事件
setting up TLS connection to mail.example.com[1.2.3.4]:25
Untrusted TLS connection established to mail.example.com[1.2.3.4]:25: TLSv1.2 with cipher AES256-GCM-SHA384

Structs§

SmtpParser
SMTP投递解析器 基于517,428个真实生产数据分析,SMTP组件占2.6%的日志 解析顺序按照真实数据频率优化,所有字段详细解析