2017-07-29 2 views
0

Wenn ich versuche, eine E-Mail über MailKit in ASP.Net Kern zu senden, erhalte ich die Ausnahme:Fehler beim Senden der E-Mail über MailKit

5.3.4 554 5.2.0 STOREDRV.Submission.Exception: SendAsDeniedException.MapiExceptionSendAsDenied ; Fehler beim Verarbeiten der Nachricht aufgrund einer permanenten Ausnahme mit Nachricht Nachricht kann nicht gesendet werden. 16,55847: 69000000, 17,43559: 0000000060010000000000000000000000000000, 20,521

-Code per E-Mail senden:

try 
     { 
      var fromAddress = "[email protected]"; 
      var fromAdressTitle = "no-reply"; 
      var toAddress = "[email protected]"; 
      var toAdressTitle = "Test sending email"; 
      var subject = "Hello World!"; 
      var bodyContent = "content message"; 

      var mimeMessage = new MimeMessage(); 
      mimeMessage.From.Add(new MailboxAddress(fromAdressTitle, fromAddress)); 
      mimeMessage.To.Add(new MailboxAddress(toAdressTitle, toAddress)); 
      mimeMessage.Subject = subject; 
      mimeMessage.Body = new TextPart("plain") 
      { 
       Text = bodyContent 

      }; 
      using (var client = new SmtpClient()) 
      { 

       client.Connect("smtp-mail.outlook.com", 587,SecureSocketOptions.StartTls); 
       client.Authenticate("[email protected]", "mypass"); 
       client.Send(mimeMessage); 
       Console.WriteLine("The mail has been sent successfully !!"); 
       Console.ReadLine(); 
       client.Disconnect(true); 

      } 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
      Console.ReadLine(); 
     } 

Bitte helfen Sie den Grund der Ausnahme zu erklären und wie dieses Problem zu beheben. Vielen Dank.

Antwort

1

SendAsDeniedException bedeutet, dass Sie keine E-Mail von domain.com senden können. Es (fromAddress Feld) muss var fromAddress = "[email protected]" sein. Hier gibt es 2 ähnliche Probleme:

+0

Das ist nicht der Grund ist, weil, wenn ich über „smtp.gmail.com“ senden und die gleiche Absenderadresse funktioniert fine.but, wenn ich über SMTP- schicken mail.outlook.com das ist nicht funktionieren. –

+0

Dies ist die Richtlinie von Microsoft. Sie können keine andere Person oder Domain von "outlook.com" senden. Dies ist die Bedeutung von ** Senden als ** Ausnahme verweigert. – VahidN

+0

Ich testete it.i Set 'fromAddress' zu echten E-Mail-Adresse, aber beim Senden von E-Mail eine Ausnahme auftreten:' Der SMTP-Server hat unerwartet getrennt.' –

0

Erste, nicht wahr gesetzt korrekte E-Mail und übergeben.

und Sie müssen Credentials gesetzt wie oben:

var credentials = new NetworkCredential("[email protected]","yourpass"); 
var client = new SmtpClient(smtpEmail.smtp) 
    { 
     Port = 587, 
     DeliveryMethod = SmtpDeliveryMethod.Network, 
     UseDefaultCredentials = false, 
     EnableSsl = true, 
     Credentials = credentials 
    }; 
+0

Welche Bibliothek haben Sie verwendet? –

+0

Ich benutze keine Bibliothek. –

+0

Microsoft hat offiziell angekündigt, dass der SmtpClient in ASP.Net Core veraltet ist. [mehr Infos] (https://docs.microsoft.com/en-us/dotnet/api/System.Net.Mail.SmtpClient?view=netframework-4.7) –

Verwandte Themen