我知道使用sendmail、sendEmail等命令行工具发送电子邮件时需要指定您的电子邮件地址、密码和SMTP服务器。在其他语言中也是如此,例如使用Python SMTP模块、smtplib
.
我想知道为什么我可以只使用默认mail
命令发送电子邮件而不指定此信息。
前任。如果我运行以下命令,它将通过。
ls | mail <email.address>
答案1
mail
是邮件用户代理(MUA)。它是负责向用户提供电子邮件子系统接口的工具之一。例如,您可以使用它发送电子邮件以及阅读以传统方式发送到您的系统的消息。它关心的是用户,而不是交付。您可以在系统上安装多个 MUA
sendmail
、exim
、postfix
等是邮件传输代理 (MTA)。这些工具不关心用户友好性,而是负责发送和接收消息。系统上只会出现其中一个。它应该配置为知道如何处理处理(反垃圾邮件、DKIM、DMARC 等)、传输(例如,直接传递、通过智能主机等)和传递(mailfile、maildir、单独程序等)
当您使用 MUA 发送邮件时,它会将邮件交给 MTA 进行传递