2009-01-20 6 views

Antwort

1

Die beste Antwort ist, wenn Sie nichts bis zum Leben wissen, können Sie alle Einstellungen in web.config verschieben? Dies ermöglicht die Konfiguration bis zur letzten Minute. Unten finden Sie einen Code, der in die Datei web.config kopiert werden kann. Ich würde die Frage, warum Sie den Zugriff auf diese Informationen nicht haben, obwohl

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]"> 
     <network host="SMTP SERVER ADDRESS" port="25" 
     userName="USERNAME" password="PASSWORD"> 
     </smtp> 
    </mailSettings> 
    </system.net> 
0

Wenn Ihr SMTP-Konfiguration korrekt ist, tun gerade dies:

MailMessage mail = new MailMessage(); 

mail.To = "To"; 
mail.From = "From"; 
mail.Subject = "Subject";  
mail.Body = "Body"; 

SmtpMail.SmtpServer = "localhost"; 
SmtpMail.Send(mail); 
+0

To "get" Eigenschaften, man kann es nicht gesetzt so. – Tarik

11

diese in Ihre web.config (MSDN reference here):

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network" from="[email protected]"> 
      <network host="localhost" port="25" /> 
     </smtp> 
    </mailSettings> 
</system.net> 

Mit SmtpClient ohne Konfigurationseinstellungen Angabe werden die Werte aus der web.config verwenden:

MailMessage msg = new MailMessage(...); 
// build message contents 
SmtpClient client = new SmtpClient(); 
client.Send(msg); 
+0

Das ist großartig. Vielen Dank. – Tarik

2

Ich beantwortete eine Frage ähnlich wie vor nicht allzu langer Zeit. Sie können es sehen here. Mit papercut können Sie Ihre Anwendung testen, ohne den tatsächlichen Produktions-SMTP-Server zu kennen oder zu verwenden.

Dann während des Tests können Sie nur den Host auf Ihrem lokalen Rechner, der Papercut in der App/Web Config läuft laufen lassen. Daher kann es nach dem Umzug in die Produktion geändert werden.

Papercut zeigt Ihnen die E-Mails, die gesendet wurden und auch den Inhalt.

0

Als Alternative: Wenn Sie wollen nicht auf die Serverkonfiguration verlassen und tun es programmatisch könnten Sie dies immer tun:

MailMessage mail = new MailMessage() { 
    To = "[email protected]", 
    From = "[email protected]", 
    Subject = "My Subject", 
    Body = "My message" 
}; 

SmtpClient client = new SmtpClient("SMTP Server Address"); 
    // Naturally you change the "SMTP Server Address" to the 
    // actual SMTP server address 
client.Send(mail); 

Aber ich schlage vor, Sie es in web.config-Datei bleiben (die kann auch über das ASP.NET-Webkonfigurationstool konfiguriert werden).

+0

Dies wird nicht funktionieren. Ich bekomme eine .NET-Ausnahme: "Fehler beim Senden von E-Mails." Innere Ausnahme sagt: "{" Der entfernte Name konnte nicht aufgelöst werden: 'SMTP Server Address' "}" – Jonathan

+1

@ johnathanconway: Nun ... Sie sollten die Adresse auf dem SMTP-Server in der "SMTP Serveradresse "Zeichenfolge. – Spoike

Verwandte Themen