La nostra azienda sta passando il server di posta SMTP a Office 365. Il problema chiave è il nuovo server SMTP "smtp.office365.com" supporta solo la crittografia TLS. Quindi non posso usare CredentialCache.DefaultNetworkCredentials
per codificare automaticamente la mia password di accesso a Windows.Utilizzare DefaultNetworkCredential con la crittografia TLS?
var smtpClient = new SmtpClient("smtp.oldserver.com")
{
Credentials = CredentialCache.DefaultNetworkCredentials
};
const string from = "[email protected]";
const string recipients = "[email protected]";
smtpClient.Send(from, recipients, "Test Subject", "Test Body");
In precedenza questo funziona senza problemi. Ma se ora posso cambiare il frammento di codice a:
var smtpClient = new SmtpClient("smtp.office365.com");
smtpClient.EnableSsl = true;
smtpClient.Port = 587;
smtpClient.Credentials = CredentialCache.DefaultNetworkCredentials;
ora sto ricevendo:
Unhandled Exception: System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM
Ma se a specificare il nome utente e la password di login di Windows nel codice funziona benissimo:
smtpClient.Credentials = new NetworkCredential("[email protected]", "mypassword");
Quindi:
- E 'possibile codificare i password utilizzando
DefaultNetworkCredentials
ma renderlo fattibile con la crittografia TLS? - Se 1. non è possibile, c'è un modo migliore per codificare la mia password di Windows da qualche altra parte senza rivelarla direttamente come testo in chiaro nel codice?