电子邮件不在托管应用程序中工作

时间:2015-03-18 06:25:15

标签: c# asp.net asp.net-ajax

电子邮件发送功能在托管应用程序中无效。 但它正在本地机器上工作。  代码是

[WebMethod]
    public static string SendMail(string To,string Subj,string Body)
    {

        MailMessage emailmsg = new MailMessage();
        emailmsg.From = new MailAddress("salam@rainhopes.com");
        emailmsg.To.Add(To);
        emailmsg.Subject = Subj;
        emailmsg.Body = Body;
        emailmsg.IsBodyHtml = true;

        //SMTP SERVER DETAILS
        SmtpClient smtpc = new SmtpClient("smtp.gmail.com");
        smtpc.Port = 587;
        smtpc.UseDefaultCredentials = false;
        smtpc.EnableSsl = true;
        smtpc.Credentials = new NetworkCredential("salam@rainhopes.com", "******");
        smtpc.Send(emailmsg);
        return " your email send sucessfuly!.. check your email";
    }

请给我任何解决方案

异常细节是

"Message":"Request for the permission of type \u0027System.Net.Mail.SmtpPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\u0027 failed.","StackTrace":"   at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark\u0026 stackMark, Boolean isPermSet)\r\n   at System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark\u0026 stackMark)\r\n   at System.Security.CodeAccessPermission.Demand()\r\n   at System.Net.Mail.SmtpClient.set_Port(Int32 value)\r\n   at Flair.sendmail.SendMail(String To, String Subj, String Body)","ExceptionType":"System.Security.SecurityException"

2 个答案:

答案 0 :(得分:0)

<system.web>下的web.config中添加<customerrors mode="Off">以查看完整异常

 <system.web>
    <customErrors mode="Off"/>
    <compilation debug="true"/>
    <authentication mode="None"/>
  </system.web>
  </configuration>

答案 1 :(得分:0)

检查您的SMTP配置,gmail是:

 <system.net>
    <mailSettings>
      <smtp>
       <network host="smtp.gmail.com" port="587" userName="eran@thereturnvalue.com" password="111111" defaultCredentials="false" />
      </smtp>
    </mailSettings>
  </system.net>