如何从邮件中获取smtp服务器名称?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (130)

设想:

在我的Web应用程序(ASP.NETMVC+C+JS.)中,我输入了电子邮件地址。对于大多数常见情况,是否有可能获取其SMTP服务器名称?

例如smtp.gmail.com for foo@gmail.com

提问于
用户回答回答于

这听起来像是在谈论MX记录。当你想将电子邮件发送到gmail.com电子邮件地址时,可以查找邮件交换(MailExchange,MX)记录:

$ host -t mx gmail.com
gmail.com mail is handled by 20 alt2.gmail-smtp-in.l.google.com.
gmail.com mail is handled by 30 alt3.gmail-smtp-in.l.google.com.
gmail.com mail is handled by 40 alt4.gmail-smtp-in.l.google.com.
gmail.com mail is handled by 5 gmail-smtp-in.l.google.com.
gmail.com mail is handled by 10 alt1.gmail-smtp-in.l.google.com.

通常,第一个尝试的主机是距离最短的主机,在本例中是Gmail-SMTP-in.l.google.com,距离为5。

$ telnet gmail-smtp-msa.l.google.com 25
Trying 74.125.197.109...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 smtp.gmail.com ESMTP w63-v6sm8014513pfa.135 - gsmtp
ehlo there
250-smtp.gmail.com at your service, [4.78.245.197]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
quit
221 2.0.0 closing connection w63-v6sm8014513pfa.135 - gsmtp
Connection closed by foreign host.

扫码关注云+社区

领取腾讯云代金券