在客户请求(遗憾地),他们希望他们的请求表单提示最终用户的本地电子邮件客户端。他们不想在那里配置SMTP或任何东西。
我遇到了一个问题,它在我的本地IIS上工作,但似乎根本不在我们的测试服务器上运行。日志中不会显示任何错误,并且不会弹出撰写电子邮件以进行发送。
有什么想法吗?我已经看过安全性和配置,但除了操作系统本身之外没有发现任何差异。 XP Pro -vs-Server。
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
}
所有帮助非常感谢
答案 0 :(得分:2)
首先要尝试:命令行会发生什么?
start mailto:foo@xyz.com
这会启动邮件客户端吗?如果没有,那么它与.NET无关。 (它在我的上网本上也不起作用,但后来我从未在那里设置邮件客户端......)
答案 1 :(得分:2)
也许我弄错了,但你想在服务器上调用Process.Start来启动用户的本地电子邮件客户端吗?这不起作用(嗯,仅当您的Web服务器在适当的上下文中在本地计算机上运行时才有效);你应该在你的网页中使用mailto-links:
<a href="mailto:user@example.com?subject=MySubject&body=Hello%20World">Click to send an email</a>
<强>更新强>
他们不想在那里配置SMTP或任何东西。
无论您是打算使用电子邮件客户端工具还是.NET类,如果没有SMTP服务器,您将无法发送电子邮件。您应该告诉您的客户端需要配置,可能会在您的web.config中存储STMP服务器值,并按照here所述发送电子邮件。