Wir denken darüber nach, zu O365 zu wechseln. Wir haben jedoch eine Software entwickelt, die unseren aktuellen Exchange-Server verwendet, um E-Mails sowohl an externe Benutzer als auch an eine Support-Box zu senden, wenn Fehler auftreten.
Ich habe dies getestet, um sicherzustellen, dass der vorhandene Code weiterhin mit O365 funktioniert, aber bisher war ich nicht sehr erfolgreich.
Ich habe versucht, den SmtpClient von .NET sowie den SmtpClient von MailKit zu verwenden, und keiner scheint zu funktionieren. Ich erhalte immer wieder Fehler (dies ist der Fehler von MailKit - der .NET-Fehler ist ähnlich)
"AuthenticationInvalidCredentials: 5.7.3 Authentifizierung nicht erfolgreich [* .prod.exchangelabs.com]"
Ich kann die Anmeldeinformationen, die ich in meinem Code habe, verwenden, um mich bei OWA anzumelden. Ich weiß also, dass die Anmeldeinformationen gültig sind. Ist es nicht möglich, E-Mails über O356 zu senden? Gibt es eine spezielle Konfiguration, die in Exchange durchgeführt werden muss, um dies zu ermöglichen?
Folgendes habe ich bisher versucht:
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);
}
Der .Net SmtpClient-Code sah dem MailKit-Code sehr ähnlich.
- Gibt es eine Möglichkeit, mit einem lizenzierten Benutzer über O365 zu senden? (Code oben)
- Sind in Exchange oder für den lizenzierten Benutzer spezielle Einstellungen erforderlich, damit dies funktioniert? (Wenn die Antwort auf 1 ja ist)
- Ist es möglich, E-Mails über ein freigegebenes Postfach zu senden, für das der Benutzer mit Berechtigungsnachweis die Rechte zum Senden als hat?
Aktualisieren
Ich erhalte immer noch die gleiche Fehlermeldung. Wir haben MFA für unsere Domain-Benutzer aktiviert. Wir haben jedoch eine Richtlinie, die keine MFA für Benutzer erfordert, wenn sie sich von einem vertrauenswürdigen Ort (der IP unserer Organisation) aus anmelden. Ich habe unsere IP auch als vertrauenswürdige IP aufgeführt. In meinen Augen sollte MFA hier nicht das Problem sein.
Ich weiß, dass die Anmeldeinformationen korrekt sind. Ich habe sie aus dem Code kopiert und bei der Anmeldung bei M365 in den Anmeldebildschirm eingefügt - und bin ganz gut reingekommen.
Was mache ich falsch?