首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mail/mailx:查询所使用的默认MX记录?

mail/mailx:查询所使用的默认MX记录?
EN

Stack Overflow用户
提问于 2017-12-04 16:45:23
回答 1查看 259关注 0票数 0

是否有一种方法可以在linux盒上运行程序或脚本,查看在从mailmailx发送发送出去的电子邮件时默认使用了哪些MX记录?我正在编写一个实用程序,它将在一大组随机的linux机器上运行,我希望该实用程序能够自动计算出当使用mailmailx时,每台机器上实际使用的MX主机。

我知道我可以查看机器的邮件服务器的配置文件,看看发送电子邮件的设置是什么,但是每个主机都可能使用不同的电子邮件服务器(sendmailpostfixexim等),我不想编写一个实用工具来搜索每个工具,然后尝试解析它可能找到的任何配置文件。

如果我知道mailmailx用于决定用于发送邮件的服务器的算法,那么我就可以在自己的实用程序中复制该算法。

mailmailx只是尝试127.0.0.1吗?或者他们会做一些事情,比如获取当前主机名,然后使用DNS查询来查找该主机的MX记录,或者如果不存在,则使用A记录中的信息?或者他们只是使用sendmail程序(在这种情况下,我需要弄清楚sendmail选择哪个传出服务器)?不然呢?

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-05 16:39:18

我已经找到了mailmailx版本的源代码,似乎mail只是使用了sendmail可执行文件,而mailx允许对SMTP服务器进行可选的规范,或者如果没有,它也使用sendmail可执行文件。

这对我没有多大帮助,所以我认为我需要使用自己的算法。这是我想出的(伪代码)。有人觉得这有什么问题吗.

代码语言:javascript
运行
复制
set `mxs` = list of IP addr(s) of current hostname's MX record(s)
if `mxs` cannot be determined
    set `mxs` = one-element list of IP addr of current hostname's A record
    if `mxs` cannot be determined
        set `mxs` = one-element list of current host's IP address
        if for some reason `mxs` still can't be determined
            set `mxs` = one-element list containing '127.0.0.1'
        end if
    end if
end if

最后,mxs将包含当前机器的SMTP服务器可能侦听的IP地址列表。这些都不可能真正适用于发送电子邮件,但就我的目的而言,这是可以的。

在现实世界中,我将使用集合而不是列表来避免重复条目。

这个看上去怎么样?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47638065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档