为什么OS X无需先配置SMTP就可以发送电子邮件?


9

当我在终端中尝试命令时,将发送一封电子邮件。我已经检查了没有本地SMTP正在运行,那么苹果在幕后使用了什么机制?

echo "Hello" | mail -s "Test" foo@bar.com

Answers:


4

mail 在OS X上,实际上似乎产生了足够长的Postfix来处理邮件,然后在短时间内将其拆解。

要查看此操作的实际效果,请在telnet localhost 25mail命令之前尝试,然后立即尝试,然后等待5分钟,然后重试。

我不确定这实际上是该问题的正确答案,因为它不能解释如何生成和删除Postfix,但希望它可以帮助回答问题。


7

SMTP守护程序或服务器在那里接收邮件,而不发送邮件。在您的示例中,mail它纯粹是电子邮件客户端,它连接到的相应DNS MX记录所定义的任何服务器bar.com,并且不需要运行本地服务器即可。

但是,根据您的邮件设置,您可能需要登录到传出的邮件服务器进行身份验证,或者仅提供发件人地址和发回地址等,否则就不能进行其他操作。现在,您可以在命令行中通过传递适当的密码来完成所有这些操作终端上的参数,但是只要您已经设置了Mail应用程序,该配置就已经存储,并且只需临时启动邮件子系统,终端命令就可以获取该信息,现在可以拥有一个或多个Mail smtp服务器选择发送外发邮件。完成后,它将终止进程。

您可以在命令行中测试所有内容,然后发送邮件,而不必使用邮件客户端。我不在Mac上,因此这些命令可能需要由正在编辑的人进行编辑,但是您可以执行以下操作:

nslookup
set type=mx
bar.com
exit

telnet MXServer 25 (where MXServer is one of the results returned above and 25 is the port number for SMTP servers)

阅读本文以获取有关通过telnet发送电子邮件的更多信息-这是一个出色的调试工具


虽然您的回答获得了最高的选票,但这是错误的。Mac将生成一个Postfix来接收电子邮件,并按照上述@zigg的建议自动关闭。无论如何,谢谢您的努力。
瑜伽

这并不是说它是不正确的,所有的细节都是正确的,但不一定以当前的形式回答您的问题。编辑这样做。
塞斯特

@stuffe说:“ SMTP守护程序或服务器在那里接收邮件,而不是发送邮件”。我必须乞求不同。由于这是一条评论,我只能从Wikipedia引用 “用户级客户端邮件应用程序通常仅将SMTP用于发送消息”
Seamus

1

我认为mail总是使用本地sendmail发送邮件。在OSX上, sendmail是后缀。它肯定是使用。

您可以检查邮件标题Received: by [Your-Mac] (Postfix, from userid ...

尽管如此,使用mail(或更好postfix)这样的方法不是一个好主意。最佳实践是对本地Postfix 使用智能主机,以避免经常使用的防火墙限制。

您可以适用于我的Snow Leopard中的Postfix SMTP智能主机设置上找到解决方案,该解决方案也适用于我(也适用于Lion,Mountain Lion)。


从标题中,我发现...接收:通过SMTP ID为xxx的10.194.242.101; ... X-接收:通过SMTP ID为yyy的10.68.92.196; ...但是我的内部IP为192.168.xx
Yoga
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.