Ich sehe verschiedene Versionen des Konstruktors, eine verwendet Informationen aus web.config, eine gibt den Host an und eine den Host und den Port. Aber wie setze ich den Benutzernamen und das Passwort auf etwas anderes als die web.config? Wir haben das Problem, dass unser internes SMTP von einigen Hochsicherheitsclients blockiert wird und wir ihren SMTP-Server verwenden möchten. Gibt es eine Möglichkeit, dies über den Code anstelle von web.config zu tun?
Wie würde ich in diesem Fall die Anmeldeinformationen von web.config verwenden, wenn beispielsweise keine aus der Datenbank verfügbar sind?
public static void CreateTestMessage1(string server, int port)
{
string to = "[email protected]";
string from = "[email protected]";
string subject = "Using the new SMTP client.";
string body = @"Using this new feature, you can send an e-mail message from an application very easily.";
MailMessage message = new MailMessage(from, to, subject, body);
SmtpClient client = new SmtpClient(server, port);
// Credentials are necessary if the server requires the client
// to authenticate before it will send e-mail on the client's behalf.
client.Credentials = CredentialCache.DefaultNetworkCredentials;
try {
client.Send(message);
}
catch (Exception ex) {
Console.WriteLine("Exception caught in CreateTestMessage1(): {0}",
ex.ToString());
}
}
c#
smtpclient
CloudMeta
quelle
quelle
UseDefaultCredentials
es auf true gesetzt ist, werden die Standardeinstellungen verwendet, andernfalls wird zuerst in derCredentials
Eigenschaft und dann in der web.config gesucht. Wenn keine festgelegt sind, wird die E-Mail anonym gesendet.Verwenden
NetworkCredential
Ja, fügen Sie einfach diese beiden Zeilen zu Ihrem Code hinzu.
quelle
quelle
Da nicht alle meiner Clients authentifizierte SMTP-Konten verwenden, habe ich nur dann auf das SMTP-Konto zurückgegriffen, wenn die App-Schlüsselwerte in der Datei web.config angegeben sind.
Hier ist der VB-Code:
quelle