Запросить разрешение типа «System.Net.Mail.SmtpPermission» в .NET при попытке использовать GoDaddy Hosting - PullRequest
0 голосов
/ 29 августа 2018

Я создал веб-приложение, в котором я дал возможность отправлять почту администратору, которая выглядит следующим образом

        var username = System.Configuration.ConfigurationManager.AppSettings["username"];
        var password = System.Configuration.ConfigurationManager.AppSettings["password"];

        MailMessage mails = new MailMessage();
        mails.From = new System.Net.Mail.MailAddress(username);
        SmtpClient smtps = new SmtpClient();
        smtps.Port = 587;   // [1] You can try with 465 also, I always used 587 and got success


        smtps.EnableSsl = true;
        smtps.DeliveryMethod = SmtpDeliveryMethod.Network; // [2] Added this
        smtps.UseDefaultCredentials = false; // [3] Changed this
        smtps.Credentials = new NetworkCredential(mails.From.ToString(), password);  // [4] Added this. Note, first parameter is NOT string.
        smtps.Host = "smtp.gmail.com";

        //recipient address
        mails.Subject = subject;
        mails.To.Add(new MailAddress(username));
        mails.IsBodyHtml = true;
        string st = "Name: '"+UserName+"' <br/> Email: "+Email+"<br/>Phone Number: "+Contact+"<br/><p>"+message+"</p>";

        mails.Body = st;
        smtps.Send(mails);

этот код работает нормально в моем локальном, но,

когда я принимаю это с помощью Go Daddy

Я получаю следующую ошибку

ExceptionType: "System.Security.SecurityException"

Сообщение: «Запрос для разрешения типа 'System.Net.Mail.SmtpPermission, System, Версия = 4.0.0.0, Культура = нейтральная, PublicKeyToken = b77a5c561934e089 ' не удалось ".

что мне здесь делать?

1 Ответ

0 голосов
/ 29 августа 2018

Убедитесь, что для вашего файла Web.Config уровень доверия установлен на полное значение

<configuration>
  <system.web>
    .....
    <trust level="Full" originUrl=""/>
  </system.web>
</configuration>

в переменной System.Net.Mail.SmtpClient необходимо установить следующее (например, * smtp *):

SmtpClient smtp = new SmtpClient("relay-hosting.secureserver.net", 25);
smtp.EnableSsl = false; // check if your ISP supports SSL

Вы должны перейти по этой ссылке , чтобы настроить GoDaddy Email

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...