2017-03-20 24 views
1

I Asp.net Kern Web-Anwendung haben und für das Senden von E-Mail-Mailkit mit:Asp.net Kern mailkit

  emailMessage.From.Add(new MailboxAddress("John", "[email protected]")); 
      emailMessage.To.Add(new MailboxAddress("Doe", email)); 
      emailMessage.Subject = subject; 
      emailMessage.Body = new TextPart("plain") { Text = message }; 

      using (var client = new SmtpClient()) 
      { 
       client.ServerCertificateValidationCallback = (s, c, h, e) => true; 
       client.Connect("smtp-mail.outlook.com", 587, false); 
       client.AuthenticationMechanisms.Remove("XOAUTH2"); 
       client.Authenticate("[email protected]", "password"); 
       client.Send(emailMessage); 
       client.Disconnect(true); 
      } 

Während Anwendung läuft localy auf VS es sendet in Ordnung. Aber wenn ich laden Sie es auf Azure App-Service per E-Mail zu senden es andernfalls mit einer solchen Nachricht:

SmtpProtocolException: The SMTP server has unexpectedly disconnected. 

MailKit.Net.Smtp.SmtpStream.ReadAhead(CancellationToken cancellationToken) 

MailKit.Net.Smtp.SmtpStream.ReadResponse(CancellationToken cancellationToken) 
MailKit.Net.Smtp.SmtpClient.SendCommand(string command, CancellationToken cancellationToken) 
MailKit.Net.Smtp.SmtpClient.Authenticate(Encoding encoding, ICredentials credentials, CancellationToken cancellationToken) 
MailKit.MailService.Authenticate(string userName, string password, CancellationToken cancellationToken) 

Jeder weiß, wie man es beheben?

Antwort

0

Microsoft Azure lässt keine ausgehenden Verbindungen an Port 25 zu und blockiert auch alle ausgehenden SMTP-Verbindungen, außer bei der Verbindung mit SendGrid, einem SMTP-Anbieter eines Drittanbieters, der der einzige "gesegnete" Anbieter für ausgehende E-Mails für Microsoft Azure ist.

SendGrid ist kostenlos (zum Glück

(‚E-Mail-Service wollen würden denken würde, ich denke, das ist seltsam ist, weil Sie Microsoft ihre Exchange-Dienste in Azure, sowie im Wettbewerb mit AWS zeigen-off) - sonst wäre das eine Erpressung) bis zu 20.000 E-Mails pro Monat, danach sind sie immer noch ziemlich günstig.

Sie können ein SendGrid-Konto direkt in Azure Portal erstellen und dann auf die Schaltfläche "Verwalten" klicken, um Ihre SendGrid-Kontodetails zu öffnen und deren SMTP-Details einschließlich Benutzername und Kennwort abzurufen.

SendGrid bietet zwei APIs: die erste ist nur ein roher "dummer" SMTP-Dienst, obwohl sie standardmäßig Ihre E-Mails um 10 Minuten verzögert (um Spam zu reduzieren), bis Ihr Konto als "vertrauenswürdig" gilt. Ihre zweite API ist ein HTTP-Webdienst, den Sie verwenden können - dies ist besser für Schwerlast-Szenarien, da HTTP-Verbindungen billiger als SMTP-Verbindungen sind.