SecurityException: Wniosek o pozwolenie typu „System.Net.Mail.SmtpPermission”

To jedna z tych, która działa lokalnie, nie działa na serwerach.

Mam prosty formularz kontaktowy, który wysyła e-mail. Na serwerze otrzymuję następujący wyjątek:

 Security Exception
Description: The application attempted to perform an operation not allowed
by the security policy.  To grant this application the required permission
please contact your system administrator or change the application's trust
level in the configuration file.

Exception Details: System.Security.SecurityException: Request for the
permission of type 'System.Net.Mail.SmtpPermission, System, Version=4.0.0.0, 
Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Source Error:
[No relevant source lines]

Host nie mógł podać mi kodu ani klienta SMTP, który będzie pracował przy wysyłaniu wiadomości SMTP z serwera WWW. Muszę więc znaleźć alternatywny sposób wysłania ich, aby mój serwer internetowy był zadowolony z restrykcyjnej polityki bezpieczeństwa.

Oto kod źródłowy:

private void SendMessage (string returnAddress, string textSubject, string messageText)
    {
        config config = new config();

        System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();

        message.To.Add(config.toEmailAddress);
        message.Subject = "Website Contact Form Message: " + textSubject;
        message.From = new System.Net.Mail.MailAddress(returnAddress);
        message.Body = messageText;

        message.IsBodyHtml = false;

        System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.naturalcarpetcompany.com");
        smtp.Credentials = new System.Net.NetworkCredential(config.fromEmailAddress, config.fromEmailPassword);
        smtp.Port = 587;

        try
        {
            smtp.Send(message);
        }
        catch (Exception ex)
        {
            Exception ex2 = ex;
            string errorMessage = string.Empty;
            while (ex2 != null)
            {
                errorMessage += ex2.ToString();
                ex2 = ex2.InnerException;
            }
            HttpContext.Current.Response.Write(errorMessage);
        }
    }

questionAnswers(2)

yourAnswerToTheQuestion