Problem senden von E-mail-Nachricht aus ASP.NET MVC-Anwendung auf GoDaddy gehostet

Ich habe ein Formular auf eine MVC-Webanwendung, die gehostet wird, über GoDaddy, können die Benutzer ausfüllen und senden an unser Büro. Ich bin derzeit am testen mit einem Gmail-Konto und ein GoDaddy E-Mail-Konto (mit meinem hosting-Raum). Mit der Gmail-code, die E-Mail senden Geldbuße von meinem localhost, aber wenn ich es veröffentlichen, um die web bekomme ich folgende Fehlermeldung:

Anforderung für die Berechtigung des Typs " System.Net.E-Mail.SmtpPermission,
System, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089' failed.

Hier ist der code (ausgeliehen von dieser Beitrag) ich bin mit Anmeldeinformationen wurden geändert und das Passwort gelöscht:

var fromAddress = new MailAddress("[email protected]", "FEA Drone");
var toAddress = new MailAddress("[email protected]", "ImproveIt Home Services");
const string fromPassword = "<removed>";
var subject = string.Format("Energy Evaluation Request for {0} {1}", model.FirstName, model.LastName);
var body = MailBody(results);

var smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    EnableSsl = true,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
    Subject = subject,
    Body = body
})
{
    smtp.Send(message);
}    

Habe ich dann versucht, auf meinem GoDaddy-E-Mail, dass ich für diese Besondere form, und einmal vor Ort, die es sendet. Allerdings, wenn diese hochgeladen wird es einfach mal aus, anstatt mir jede Art von nützlichen Informationen. Hier ist das code:

var fromAddress = new MailAddress("[email protected]", "FEA Drone");
var toAddress = new MailAddress("[email protected]", "ImproveIt! Home Services");
const string fromPassword = "<removed>";
var client = new SmtpClient
{
    Host = "relay-hosting.secureserver.net",
    Port = 25,
    EnableSsl = false,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    UseDefaultCredentials = false,
    Timeout = 20000,
    Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};

using (var msg = new MailMessage(fromAddress, toAddress)
{
    Subject = string.Format("Energy Evaluation Request for {0} {1}", model.FirstName, model.LastName),
    IsBodyHtml = false,
    Body = MailBody(results)
})
{
    client.Send(msg);
}

Ursprünglich hatte ich smtpout.secureserver.net für meine GoDaddy Hosten, aber ich fand heraus, von dieser Artikel, dass ich brauchte, um es zu ändern relay-hosting.secureserver.net. Mit der aktualisierten host-Informationen, die das Skript ausgeführt wird, aber die E-mail-Nachricht nicht machen, es die Ziel-E-Mail-Posteingang oder spam-box).

Bearbeiten

Mithilfe der Maxim-code, es scheint, ich habe bekommen eine "funktionierende" version vorhanden. Die E-Mail nicht sofort angezeigt wird, in der Ziel-Posteingang, aber nicht so nach etwa 15 Minuten. Schade, es scheint, dass GoDaddy ist ein Riesen-PITA, wenn es um die programmatische E-Mail.

Hier ist was ich habe:

var emailmessage = new System.Web.Mail.MailMessage()
{
    Subject = subject,
    Body = body,
    From = fromAddress.Address,
    To = toAddress.Address,
    BodyFormat = MailFormat.Text,
    Priority = System.Web.Mail.MailPriority.High
};

SmtpMail.SmtpServer = "relay-hosting.secureserver.net";
SmtpMail.Send(emailmessage);

Nochmals vielen Dank für die Hilfe, ich hoffe, dass ich herausfinden kann, wie man GoDaddy besser zusammenarbeiten. Wenn ich kann, werde ich wieder mit updates.

InformationsquelleAutor Anders | 2010-12-14

Schreibe einen Kommentar