0

我想通过特殊的电子邮件帐户自动发送邮件,但现在我只知道电子邮件地址: tsp.monitor@qorosauto.com 和密码。那么你知道如何获取 SMTP 服务器吗?下面是我的 C# 代码:

        SmtpClient client = new SmtpClient();

        client.Host = "What is the SMTP Server, I want to get from email address, can you help me";
        string account = "tsp.monitor@qorosauto.com";
        string password = "Qoros111";

        client.Port = 587;
        client.EnableSsl = true;
        client.Timeout = 100000;                

        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.UseDefaultCredentials = false;
        client.Credentials = new System.Net.NetworkCredential(account, password);
4

4 回答 4

3

您可以通过获取电子邮件地址的主机部分(qorosauto.com在您的示例中)并查找它的MX 记录来找到域的 SMTP 服务器。

$ dig +short mx qorosauto.com
10 euq2.qorosauto.com.
5 euq1.qorosauto.com.

主机名前的数字表示首选项 - 在这种情况下euq1.qorosauto.com是要连接的首选服务器。

在 .Net 中执行此操作并不简单,因为此问题的答案表明:如何使用 System.Net.DNS 获取 dns 名称的 mx 记录?

更糟糕的是,许多 ISP 会在防火墙中过滤您的连接,并且不会让您与除 ISP 之外的任何 SMTP 服务器通信,而后者又会将邮件转发给收件人。

本质上,您想使用您的 ISP 或组织的 SMTP 服务器- 而不是收件人的 MX。

于 2013-05-29T06:33:32.837 回答
0

要找出负责的邮件服务器,您必须询问 DNS。例如,通过使用网络转到这个 nslookup 页面

通常您从提供商的域服务器开始,但您也可以从根服务器(例如 198.41.0.4)开始并询问域google.com和查询类型MX - Mail exchange

你会得到一个负责的 dns 服务器列表。只需从列表中选择一个(例如 192.26.92.30)并将相同的查询再次发送到该服务器。重新运行此序列,直到您获得 type 列表MX。只需从此列表中选择一个地址(可能是第一个地址,也可能是优先选择丢失值的地址)并使用它来建立您的 smtp 连接。

这就是每个邮件服务器的工作方式。现在由您将其实现到您的应用程序中。;-)

于 2013-05-29T06:46:52.603 回答
0

您可以尝试 mail.orosauto.com 或 smtp.orosauto.com。登录到您的域帐户并检查邮件设置。希望您可以在那里找到邮件服务器的详细信息。

于 2013-05-29T06:51:08.030 回答
0

反复试验可能会让你到达那里..

  • mail.quorosauto.com
  • smtp.quorosauto.com
  • www.quorosauto.com
  • smtp.gmail.com

如果您已经用尽了所有可能,您将需要提供自己的 SMTP 服务器。有一些免费赠品服务器:

http://freesmtpservers.com/

但是,如果您是专业人士,您可能希望使用您组织的 SMTP 服务器,因此您可能需要询问您的老板或同事。

于 2013-05-29T06:28:11.747 回答