Estamos pensando en mudarnos a O365; sin embargo, desarrollamos software que utiliza nuestro servidor Exchange actual para enviar correos electrónicos tanto a usuarios externos como a un cuadro de soporte cuando se producen errores.
He estado probando esto para asegurarme de que el código que tenemos instalado continuará funcionando con O365, pero hasta ahora no he tenido mucho éxito.
He intentado usar SmtpClient de .Net así como SmtpClient de MailKit y ninguno parece funcionar. Sigo recibiendo errores (este es el error de MailKit; el error .Net es similar)
"AuthenticationInvalidCredentials: 5.7.3 Autenticación fallida [* .prod.exchangelabs.com]"
Puedo usar las credenciales que tengo en mi código para iniciar sesión en OWA, por lo que sé que las credenciales son válidas. ¿No es posible enviar un correo electrónico a través de O356? ¿Hay alguna configuración especial que tenga que suceder en Exchange para que esto sea posible?
Esto es lo que he probado hasta ahora:
MailKit
var msg = new MimeMessage();
msg.From.Add(new MailboxAddress("Support","support@mydomain.com"));
msg.To.Add(new MailboxAddress("Me","me@mydomain.com"));
msg.To.Add(new MailboxAddress("External User","euser@externaldomain.com"));
msg.Subject = "Test";
msg.Body = new TextPart("plain"){
Text = "Here is a message for you"
};
using(var client = new SmtpClient()){
client.ServerCertificateValidationCallback = (s,c,h,e) => true;
client.AuthenticationMechanisms.Remove("XOAUTH2"); //Not sure what this does. Have tried with and without
client.Connect("smtp.office365.com", 587, MailKit.Security.SecureSocketOptions.StartTls);
client.Authenticate(new NetworkCredential("support@mydomain.com", "supportPwd"));
client.Send(msg);
client.Disconnect(true);
}
El código .Net SmtpClient se parecía mucho al código MailKit.
- ¿Hay alguna forma de enviar a través de O365 con un usuario con licencia? (código de arriba)
- ¿Se requiere alguna configuración especial en Exchange o en el usuario con licencia para que esto funcione? (Si la respuesta a 1 es sí)
- ¿Es posible enviar correos electrónicos a través de un buzón compartido para el cual el usuario acreditado tiene derechos de Enviar como?
Actualizar
Todavía recibo el mismo mensaje de error. Tenemos MFA habilitado para nuestros usuarios de dominio. Sin embargo, tenemos una política que no requiere MFA para los usuarios cuando inician sesión desde una ubicación confiable (IP de nuestra organización). También enumeré nuestra IP como una IP de confianza. En mi opinión, MFA no debería ser el problema aquí.
Sé que las credenciales son correctas. Los copié del código y los pegué en la pantalla de inicio de sesión cuando inicié sesión en M365, y entré bien.
¿Qué estoy haciendo mal?