linux使用smtp协议以及常见概念梳理

基本概念

MUA(Mail User Agent,邮件用户代理): 用户层面的客户端,作用是收发邮件。
MSA(Mail Submission Agent,邮件提交代理): 接收 MUA 提交的邮件,校验邮件格式后交给 MTA 发送。
MTA(Mail Transfer Agent,邮件传输代理): 接收来自 MUA /MSA的邮件,然后通过 SMTP 协议投递到目标服务器
MDA(Mail Delivery Agent,邮件投递代理): 负责把邮件从 MTA 投递到用户的邮箱(本地存储或远程存储)
image

协议梳理

常见邮件服务商提供的协议有: smtp、pop、imap

smtp: 用于发邮件,
端口占用
25:默认的smtp端口,他通常用于邮箱服务器的标准投递
465、587: 这两个端口都属于smtps,属于加密通信,相比于25端口而言,实际上仅仅是多了一个ca证书的区别。

ps: 对于自建邮局,25端口是必须的,这是由于在互联网协议当中,smtp标准必须使用该端口。

POP3:接收邮件
常见端口:

110:POP3 非加密默认端口。

995:POP3 over SSL(POP3S)。

IMAP:接收邮件
常见端口:
143:IMAP 非加密默认端口。

993:IMAPS,基于 SSL/TLS 加密

linux使用smtp协议

mail / mailx: 属于MUA客户端,

mail/mailx在linux系统中会将邮件交给sendmail接口,这一部不是很理解,总之就是要么交给系统中配置的邮局(MTA),要么交给系统中的邮件投递代理(MSA)

msmtp: 邮件投递代理MSA

这里需要注意的是所谓的邮件投递,他实际上就是说用外部邮箱(常见的qq、gmail、outlook等账号)进行发送邮件,在实际的发送中,他会将邮件先发给对应邮箱的smtp服务器,然后再发送给目标的邮箱。

踩坑

1,ubuntu中使用AppArmor来管理软件(指通过apt等包管理器安装的软件),会通过profile来配置程序能够访问的文件,如果发送过程中遇到权限错误,那么请尝试修正。
其他系统可能会用SELinux。

posted @ 2025-09-26 13:57  wenzhuo4657  阅读(0)  评论(0)    收藏  举报