0

是否可以编写如下 C# 代码并在不同国家/地区使用 mnetwork 发送电子邮件?

MSExchangeWebServiceURL = mail.something.com/ews/exchange.asmx

它是一个 Web 服务 URL。当我从家庭网络,我朋友的家庭网络在任何地方运行相同的代码时,这很有效,但是当我从我的客户在哥伦比亚的位置运行它时,它会失败。

我在该 Exchange Server 上有一个有效的用户名和密码。我可以设置任何配置来实现这一点吗?

顺便说一句,当我在办公室网络和任何家庭网络中的任何网络中运行它时,下面的代码都有效。我至少在德克萨斯州普莱诺的五个朋友网络中尝试过。我希望这段代码可以从另一个国家的任何网络运行。

我在哥伦比亚的客户可以使用浏览器使用相同的用户名和密码连接到 Web 服务,但是当我运行上面的代码时,它无法连接到我们的 Web 服务。

4

3 回答 3

1

编辑:根据评论和更新的帖子,我敢打赌客户端位置有一个代理服务器或防火墙阻止流量。客户可能需要将相关域添加到他们拥有的任何“白名单”中。

如果它在内部网络上工作,那么问题很可能不是代码。您需要对其进行调试并查看在网络之外运行它时会出现什么错误。然后检查防火墙和目标交换服务器上的日志,看看发生了什么。

一个可能的罪魁祸首是 DNS 名称未设置在办公室网络之外,或者办公室防火墙未设置为将流量(或仅传递 SMTP 流量)从 Internet 传递到相关服务器。另一个是 Exchange Web 服务未正确设置以接受来自外部世界的请求。可以从http://www.testexchangeconnectivity.com/进行测试。

如果这还不足以让您到达那里,请发布有关您看到的错误的更多信息。“它不起作用,我希望它起作用”让我想起了星际迷航 TNG中关于不断告诉 Geordi “让它去”的物种的情节。

于 2010-05-01T04:35:35.840 回答
0

如果您询问代码是否有效(它看起来不像您,但它在您的帖子中)您应该在 stackoverflow 上询问。如果您想知道为什么它不能在家工作,这可能是因为边缘服务器没有设置为中继,如果您在家并且没有通过 VPN 连接到网络,那么您只能访问。

于 2010-05-01T03:41:08.103 回答
0

你需要把它分解一下:

什么是 MSExchangeWebServiceURL?我不需要知道您的真实 URL,但这可以从您的家庭网络中解析吗?即它是内部 DNS 主机 (server.mycompany.local) 还是外部可解析的 DNS 主机 (mail.yourcompany.com)?

如果它是内部的,就像另一位海报所说的那样,您至少需要 VPN 进入(或将其替换为外部 URL)。

我不是 C# 大佬,但我猜它正在寻找您的 Exchange Server 主机名或 FQDN,并且由于类型是“SMTP”,它希望与您的邮件服务器建立 TCP 会话。您可以通过打开命令提示符并尝试telnet <MSExchangeWebServiceURL> 25. 当它起作用时,我猜你的代码也会起作用。

于 2010-05-01T13:31:58.600 回答