Para quem esta enfrentando varios erros no envio dde mensagem usando os servidores microsoft por conta do ssl novo deles o tal de STARTTLS Habilitado ou ainda nao esta conseguindo configurar o TLS seus problemas acabaram.
Em muitos servidores somos obrigados a trabalhar com o .NET 4.0 por uma questão de falta de atualização da empresa e não possuem suporte para a versão 1.2 do TLS, então é necessário fazer alguns truques para que funcione.
Um truque que aprendi pela net foi utilizar o valor do enum ao invés da propriedade em si:
em vez de usar isso
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
faço isso
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;
coloquei um exemplo aqui que me ajudou bastante
public string EnvEmail(string ParaEmail, string Assunto, string Menssagem)
{
string ret ="";
using (var client = new SmtpClient("smtp-mail.outlook.com", 587))
{
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("login@login.com.br", "senha");
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;
try
{
client.Send(new MailMessage("login@login.com.br", ParaEmail, Assunto, Menssagem));
}
catch (Exception ex)
{
ret = ex.Message;
}
}
}