Je vois différentes versions du constructeur, l'une utilise les informations de web.config, l'autre spécifie l'hôte et l'autre l'hôte et le port. Mais comment définir le nom d'utilisateur et le mot de passe sur quelque chose de différent de web.config? Nous avons le problème où notre smtp interne est bloqué par certains clients de haute sécurité et nous voulons utiliser leur serveur smtp, existe-t-il un moyen de le faire à partir du code au lieu de web.config?
Dans ce cas, comment utiliserais-je les informations d'identification web.config si aucune n'est disponible dans la base de données, par exemple?
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
la source
la source
UseDefaultCredentials
est défini sur true, il utilisera les valeurs par défaut, sinon il cherchera d'abord dans laCredentials
propriété, puis dans le web.config. Si aucun n'est défini, il enverra l'e-mail de manière anonyme.Utilisation
NetworkCredential
Oui, ajoutez simplement ces deux lignes à votre code.
la source
la source
Étant donné que tous mes clients n'utilisent pas de comptes SMTP authentifiés, j'ai eu recours au compte SMTP uniquement si les valeurs de clé d'application sont fournies dans le fichier web.config.
Voici le code VB:
la source