SMTP-Authentifizierung mit der config-Datei MailSettings
Bin ich der Speicherung meiner MailSettings in einem web.config, jedoch wenn ich die Nachricht senden, mein SMTP-server meldet zurück, dass ich benötigen, um Authentifizierung verwenden. Ich habe meinen Benutzernamen/Passwort in der config-Datei, aber es immer noch nicht.
Es funktioniert, wenn ich den folgenden Code, aber es scheint, wie ein extra-Schritt. Sollte es nicht nehmen Sie es einfach aus der config-Datei und verwenden Sie die Authentifizierung automatisch?
System.Configuration.Configuration config = WebConfigurationManager.OpenWebConfiguration(
HttpContext.Current.Request.ApplicationPath);
MailSettingsSectionGroup settings =
(MailSettingsSectionGroup) config.GetSectionGroup("system.net/mailSettings");
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential(
settings.Smtp.Network.UserName, settings.Smtp.Network.Password);
Web.config
<system.net>
<mailSettings>
<smtp from="[email protected]" deliveryMethod="Network">
<network host="mail.xyz.com" defaultCredentials="true"
userName="me@xyzcom" password="abc123" />
</smtp>
</mailSettings>
</system.net>
System.Net.E-Mail.SmtpException
Exceeded storage allocation. Die
server-Antwort war: Bitte verwenden Sie die smtp -
die Authentifizierung. Sehen
http://www.myISP.com/support/smtp-authentication.aspx
"Exceeded storage allocation" verwirrt uns für eine ganze Weile, die wir jetzt ignorieren. Es ist die "smtp-Authentifizierung verwenden", dass scheint wichtig zu sein.
InformationsquelleAutor der Frage Eric | 2010-09-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Differenz zwischen den codierten Ansatz und die web.config nur Ansatz ist, dass die letztere hat
defaultCredentials="true"
gesetzt. Das verhindert, dass der Benutzername und das Passwort werden für die Authentifizierung verwendet wird, mit diesem Ansatz. Ich denke, das problem würde gelöst werden, indem die Einstellung auf "false" setzen (oder entfernen Sie vollständig, denn "false" ist Standard).InformationsquelleAutor der Antwort Mike Green
Die SmtpClient-Klasse sollten die auth-Parameter ohne Sie benötigen, um explizit Lesen Sie den Benutzernamen und das Passwort aus der config. Sehen http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx
Können Sie nach dem System.Net Ausschnitt aus deiner config? Außerdem kannst du die genaue Fehlermeldung, die Sie erhalten, von dem SMTP-server?
InformationsquelleAutor der Antwort Peter Mourfield