是否可以编写如下的C#代码并使用不同国家的网络发送电子邮件?

时间:2010-05-01 03:33:35

标签: c# web-services exchange-server exchangewebservices

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

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

这是一个网络服务网址。当我从家庭网络运行相同的代码,我的朋友家庭网络周围的任何地方,这很好用,但是当我从我在哥伦比亚的客户位置运行它时,它失败了。

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

顺便说一下,当我在办公室网络和任何家庭网络中的任何网络中运行时,以下代码都能正常工作。我至少和德克萨斯州普莱诺的五个朋友网络一起尝试过。我希望此代码能够在其他国家/地区的任何网络上运行。

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

3 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

如果你问的是代码是否有效(它看起来不像你的那个,但它在你的帖子中),你应该问一下stackoverflow。如果你想知道为什么它不能在家工作可能是因为边缘服务器没有设置为中继,如果你在家里而不是vpn进入网络,那么你有权访问。

答案 2 :(得分:0)

你需要稍微打破一下:

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

如果它是内部的,就像另一张海报所说,你至少需要VPN(或用外部URL代替)。

我不是一个很大的C#家伙,但我猜它正在寻找您的Exchange Server主机名或FQDN,并且因为类型是“SMTP”,它想要与您的邮件服务器建立TCP会话。您可以通过打开命令提示符并尝试telnet <MSExchangeWebServiceURL> 25来测试它。当这有效时,我的猜测是你的代码也会起作用。