2012-01-30 38 views
6

无法通过ASP.NET发送电子邮件和发送电子邮件到我的网络主机的一些帮助,被告知要修改我的安全设置,并发送一个链接:设置信任水平在web.config中

http://forums.asp.net/t/1111145.aspx/1

我读过它有说,并试图在web.config中设置<trust level="Full" originUrl="" />,但后来我得到的错误:

This configuration section cannot be used at this path. This happens when the site administrator has locked access to this section using <location allowOverride="false"> from an inherited configuration file.

我没有设置任何其他web.config文件。

于是我又问了网络主机,并问如果这是一个服务器设置,我无法改变,但我得到的回应只是:

You'll need to specify a more specific path.

这是可爱的,但我不知道这意味着什么!

做了一些更多的挖掘我想知道如果我必须设置一个单独的trust文件,这是正确的吗?

难道有人指出我设置我的信任级别的正确方法(我意识到“全部”可能是不正确的?),因为我真的不明白我应该做什么!

回答

7

信任级别记录在这里:http://msdn.microsoft.com/en-us/library/ie/wyts434y.aspx。在共享主机中,提供商会锁定该设置,因此您无法在web.config中进行更改。如果您明确要求您的提供商允许您完全信任您的应用程序,并且他们回答“嗯?”,那么您正在与一个没有受过教育的人交谈 - 要么升级请求,要么更改主持人。 “请充分信任地配置我的应用程序”应该足够清楚。请注意,一旦他们了解您的请求,他们可能不愿意这样做。

此外,我不能确定发送邮件需要完全信任。发送邮件包括与SMTP服务器通信的能力,通常,网络主机只允许访问他们的邮件,并阻止其他所有邮件(用于防止垃圾邮件)。你不能说服他们为你制定例外,但是如果你问“请告诉我使用哪个smtp和端口从我的asp.net应用程序发送电子邮件”,他们应该给你(否则,升级或更改主机)。实际上,你应该让他们先帮助你发送邮件,然后才能得出结论:信任级别阻碍了它(现在,我很确定它没有)。

而且,阅读,请:https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem

+0

感谢。所以你说的是他们的回答比我意识到的更无助!提到你的观点,我应该问他们如何通过他们的服务器发送邮件......实际上,我做到了!我给他们发了一些示例代码,并被告知应该可以使用。然后我遇到了启发我在这里发布的问题。我会再次给他们发邮件,要求提供更完整的回复。 – 2012-01-30 20:36:24

+0

我很确定我有一个应用程序在共享托管与部分信托发送邮件。主机不太可能会给你完全的信任,因为这会对其服务器和其上运行的其他应用程序造成风险;他们通常会利用这个机会来宣传他们的专用服务器。在开始使用一些第三方邮件程序库之前,使用.NET的类发送电子邮件(或者至少要测试它是否工作)(您可以在那里找到示例代码;只需要几行代码+少量web.config更改)。然后,如果发送邮件失败,请在此处粘贴异常信息;我们会找出一些东西。 – 2012-01-30 22:23:48

+1

是的,大多数共享主机不支持完全信任,所以你需要检查你的当前提供商。但是,如果您确实需要完全信任托管,我可以提供一个名称HostForLife.eu。您可以在Microsoft网站上找到他们的网站。 :) – 2012-01-31 02:39:11

-1

试试这个:

public static void ConfirmMail(string emailTo) 

{ 
    try 
    { 

     MailMessage message = new MailMessage(); 
     message.Subject = "Account Registration From 91calls"; 
     message.From = new MailAddress(Convert.ToString("[email protected]"),"Admin"); 
     message.To.Add(emailTo); 
     message.BodyEncoding = System.Text.Encoding.UTF8; 
     StringBuilder sb = new StringBuilder(); 
     sb.Append("<html>"); 
     sb.Append("<Body>"); 
     sb.Append("<table cellpadding='0' cellspacing='0' width='100%' border='0'>"); 
     sb.Append("<tr><td align='center'><table cellpadding='0' cellspacing='0' width='100%' border='0'>"); 
     // sb.Append("<tr><td align='left'><asp:Image ID='imgLogo' runat='server' ImageUrl='http://supervau.w01.winhost.com/images/logo.png' />"); 
     sb.Append("</td></tr><tr><td>Hi, <br></td></tr><tr><td align='left'>You are successfylly resgistered with 91 calls.<br>"); 
     sb.Append("<br>Thank you for using, : http://www.91calls.com<br /><br>For questions or concerns regarding your account, please visit : http://www.91calls.com"); 
     sb.Append("</td></tr></table></td></tr></table>"); 
     sb.Append("</Body>"); 
     sb.Append("</html>"); 
     message.Body = sb.ToString(); 
     message.IsBodyHtml = true; 
     SmtpClient client = new SmtpClient(); 
     client.Send(message); 


    } 
    catch 
    { 
    } 

}