0

Kann ich Mailkit verwenden, um E-Mails von einem azurblauen Webjob mit einem organisatorischen SMTP-Server zu senden? Oder muss ich Sendgrid verwenden?Welchen brauche ich Sendgrid oder Mailkit - um E-Mails von azure webjob zu senden

Mine ist eine .net-Core 1.1-Konsole-Anwendung, die ich dann als azurblauen Webjob gehostet.

Aus irgendeinem Grund kann ich meinen Webjob nicht mit Mailkit unter Verwendung eines organisatorischen Smtp-Servers arbeiten. Der Job wird erfolgreich ausgeführt, protokolliert keine Fehler. ABER Mails nicht in der Lage heraus zu senden ..

hier mein Code, mailkit verwendet

using (var client = new SmtpClient()) 
{ 
    try { 
    // For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS) 
    client.ServerCertificateValidationCallback = (s, c, h, e) => true; 


     Logger.LogInformation("Ready to connect to smtp server"); 
     client.Connect(Constants.SMTP_HOST, 25, false); 
     Logger.LogInformation("connected to smtp server"); 
     // Note: since we don't have an OAuth2 token, disable 
     // the XOAUTH2 authentication mechanism. 
     client.AuthenticationMechanisms.Remove("XOAUTH2"); 

     Logger.LogInformation("Ready to send email"); 
     client.Send(message); 

    } 
    catch (Exception ex) { 
     Logger.LogError("An error occurred"); 
     Logger.LogError(ex.StackTrace); 
    } 
    finally { 
     client.Disconnect(true); 
    } 
} 
+0

Haben Sie ein Update zu diesem Thema? –

+0

@Tomsun Ich habe den Überblick verloren. Ich werde bald Updates veröffentlichen. Vielen Dank. – blogs4t

Antwort

0

Kann ich Mailkit verwende E-Mails von einem azur webjob sendet einen organisatorischen SMTP-Server?

Wenn Sie den organisatorischen SMTP-Server verwenden, dann sollten Sie sicherstellen, dass Ihre E-Mail-Server-Richtlinie dazu zugelassen ist.

Ich Test Mailkit im Azure WebJob mit google E-Mail. Es funktioniert richtig auf meiner Seite. Davor habe ich drehen Allow less secure apps: ON für mein Google Mail-Konto

enter image description here

Im Folgenden ist der Demo-Code.

var message = new MimeMessage(); 
      message.From.Add(new MailboxAddress("Tom Gmail", "[email protected]")); 
      message.To.Add(new MailboxAddress("Tom Hotmail", "[email protected]")); 
      message.Subject = "I am a mail subject"; 

      message.Body = new TextPart("plain") 
      { 
       Text = "I am a mail body." 
      }; 

      using (var client = new SmtpClient()) 
      { 

       client.Connect("smtp.gmail.com", 587); 


       // Note: since we don't have an OAuth2 token, disable 
       // the XOAUTH2 authentication mechanism. 
       client.AuthenticationMechanisms.Remove("XOAUTH2"); 

       // Note: only needed if the SMTP server requires authentication 
       client.Authenticate("[email protected]", "@WSX3edc"); 

       client.Send(message); 
       client.Disconnect(true); 
      } 

      Console.WriteLine("send mail successful"); 
      Console.Read(); 

enter image description here

oder muss ich Sendgrid benutzen?

Meiner Meinung nach ist SendGrid auch eine gute Wahl, wir könnten auch die kostenlose Preisstufe auf dem Azure verwenden. Ich teste es auch auf myside. Es funktioniert auch korrekt. Wir könnten auch mehr Detailinformationen von Azur official document bekommen.

 var apiKey ="ApiKey";//System.Environment.GetEnvironmentVariable("SENDGRID_APIKEY"); 
    var client = new SendGridClient(apiKey); 
    var msg = new SendGridMessage() 
    { 
       From = new EmailAddress("[email protected]", "Send Grid"), 
       Subject = "Hello World from the SendGrid CSharp SDK!", 
       PlainTextContent = "Hello, Email!", 
       HtmlContent = "<strong>Hello, Email!</strong>" 
      }; 
      msg.AddTo(new EmailAddress("[email protected]", "Test User")); 
      client.SendEmailAsync(msg).Wait(); 
    } 
Verwandte Themen