0

在客户请求(可悲)时,他们希望他们的请求表单提示最终用户的本地电子邮件客户端。他们不想在那里配置 SMTP 或任何东西。

我遇到了一个问题,它可以在我的本地 IIS 上运行,但似乎根本无法在我们的或测试服务器上运行。日志中没有出现错误,并且不会弹出撰写电子邮件进行发送。

有任何想法吗?我查看了安全性和配置,但除了操作系统本身之外没有发现任何差异。XP Pro -vs- 服务器。

var mailToLink = "mailto:" + (string)HttpContext.GetGlobalResourceObject ("Portal", "mailToUnInst") + "?subject=" + (string)HttpContext.GetGlobalResourceObject("Portal", "admnTitlUnInst") + " request for " + (string)HttpContext.GetGlobalResourceObject("Portal", "admnTerm") + " " + term.Text + " on " + dtUnInst.Text + "&body=";

mailToLink += (string)HttpContext.GetGlobalResourceObject("Portal", "admnTerm") + " " + term.Text + "%0D%0A"
                    + "%0D%0A"
                    + (string)HttpContext.GetGlobalResourceObject("Portal", "admnLoc") + " " + loc.Text + "%0D%0A"
                    + (string)HttpContext.GetGlobalResourceObject("Portal", "admnAddr1") + " " + addr1.Text + "%0D%0A"
                    + (string)HttpContext.GetGlobalResourceObject("Portal", "admnAddr2") + " " + addr2.Text + "%0D%0A"
                    + (string)HttpContext.GetGlobalResourceObject("Portal", "admnCity") + " " + city.Text + "%0D%0A"
                    + (string)HttpContext.GetGlobalResourceObject("Portal", "admnSt") + " " + st.Text + "%0D%0A"
                    + (string)HttpContext.GetGlobalResourceObject("Portal", "admnZip") + " " + zip.Text + "%0D%0A"
                    + "%0D%0A"
                    + (string)HttpContext.GetGlobalResourceObject("Portal", "admnAtmType") + " " + atm.Text + "%0D%0A"
                    + (string)HttpContext.GetGlobalResourceObject("Portal", "admnDtUnInst") + " " + dtUnInst.Text + "%0D%0A"
                    + (string)HttpContext.GetGlobalResourceObject("Portal", "admnRsn") + " " + resn.Text + "%0D%0A"
                    ;

try
{
    System.Diagnostics.Process.Start(mailToLink);
}
catch
{
  //error log process
}

非常感谢所有帮助

4

2 回答 2

2

也许我弄错了,但是你想在服务器上调用 Process.Start 来启动用户的本地电子邮件客户端吗?这不起作用(好吧,只有当您的 Web 服务器在适当的上下文中在本地计算机上运行时,它才起作用);您应该在页面中使用 mailto-links:

<a href="mailto:user@example.com?subject=MySubject&body=Hello%20World">Click to send an email</a>

更新

他们不想在那里配置 SMTP 或任何东西。

如果没有 SMTP 服务器,您将根本无法发送电子邮件,无论您打算使用电子邮件客户端工具还是 .NET 类。您应该告诉您的客户需要进行配置,可能将 STMP 服务器值存储在您的 web.config 中并按照此处所述发送电子邮件。

于 2010-12-02T16:11:38.463 回答
2

首先要尝试:命令行上会发生什么?

start mailto:foo@xyz.com

这会启动邮件客户端吗?如果不是,那么它与 .NET 无关。(它在我的上网本上也不起作用,但是我从来没有在那里设置过邮件客户端......)

于 2010-12-02T16:05:10.353 回答