Ich habe alle oben genannten Antworten ausprobiert, erhalte jedoch immer noch diesen Fehler mit dem Office 365-Konto. Der Code scheint mit dem Google-Konto und smtp.gmail.com gut zu funktionieren, wenn weniger sichere Apps zugelassen werden.
Irgendwelche anderen Vorschläge, die ich versuchen könnte?
Hier ist der Code, den ich verwende
int port = 587;
string host = "smtp.office365.com";
string username = "smtp.out@mail.com";
string password = "password";
string mailFrom = "noreply@mail.com";
string mailTo = "to@mail.com";
string mailTitle = "Testtitle";
string mailMessage = "Testmessage";
using (SmtpClient client = new SmtpClient())
{
MailAddress from = new MailAddress(mailFrom);
MailMessage message = new MailMessage
{
From = from
};
message.To.Add(mailTo);
message.Subject = mailTitle;
message.Body = mailMessage;
message.IsBodyHtml = true;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Host = host;
client.Port = port;
client.EnableSsl = true;
client.Credentials = new NetworkCredential
{
UserName = username,
Password = password
};
client.Send(message);
}
UPDATE UND WIE ICH ES GELÖST HABE:
Problem durch Ändern des SMTP-Clients in Mailkit behoben. Der System.Net.Mail Smtp-Client wird aus Sicherheitsgründen jetzt nicht mehr von Microsoft empfohlen. Sie sollten stattdessen MailKit verwenden. Die Verwendung von Mailkit gab mir klarere Fehlermeldungen, dass ich verstehen konnte, die Hauptursache des Problems zu finden (Lizenzproblem). Sie können Mailkit erhalten, indem Sie es als Nuget- Paket herunterladen .
Weitere Informationen finden Sie in der Dokumentation zum Smtp-Client:
https://docs.microsoft.com/es-es/dotnet/api/system.net.mail.smtpclient?redirectedfrom=MSDN&view=netframework-4.7.2
So habe ich SmtpClient mit MailKit implementiert
int port = 587;
string host = "smtp.office365.com";
string username = "smtp.out@mail.com";
string password = "password";
string mailFrom = "noreply@mail.com";
string mailTo = "mailto@mail.com";
string mailTitle = "Testtitle";
string mailMessage = "Testmessage";
var message = new MimeMessage();
message.From.Add(new MailboxAddress(mailFrom));
message.To.Add(new MailboxAddress(mailTo));
message.Subject = mailTitle;
message.Body = new TextPart("plain") { Text = mailMessage };
using (var client = new SmtpClient())
{
client.Connect(host , port, SecureSocketOptions.StartTls);
client.Authenticate(username, password);
client.Send(message);
client.Disconnect(true);
}