Laden...

Wie kann ich Sendgrid über Azure von http auf https migrieren?

Erstellt von Peter Bucher vor 3 Jahren Letzter Beitrag vor 3 Jahren 918 Views
Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren
Wie kann ich Sendgrid über Azure von http auf https migrieren?

Hallo zusammen

Von SendGrid kam eine Email, dass ich ihren Service, der über Azure angemeldet ist, nicht mehr über http, sondern https nutzen muss.
Ich nutze Sendgrid um Emails von einer ASP.NET MVC (Nicht Core) App, zu senden.

Das Email sende ich über das normale nuget Package und beschrieben wie hier:

Ich habe auch versucht, den Endpoint als "https://sendgrid...." anzugeben - also der korrekte - aber die Emails kommen nicht mehr an.

Die Webseite von Sendgrid hilft nicht wirklich weiter. Hoffentlich hat jemand dasselbe Problem und weiss weiter?

Danke und Gruss
Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.807 Beiträge seit 2008
vor 3 Jahren

Hi,

wir verwenden den SendGridClient und das funktioniert problemlos.

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Hi Abt

Genau das verwende ich auch. Hast du bei Azure / Sendgrid etwas spezielles eingestellt?
Kannst du mir zeigen, wie du das Email schickst?

Im Moment schicke ich das Email so:


        public static async Task SendMail(string from, IEnumerable<string> to, string subject, string body)
        {
            var apiKey = ConfigurationManager.AppSettings["SENDGRID_APIKEY"];

            var options = new SendGridClientOptions();
            options.ApiKey = apiKey;
            options.Host = "https://api.sendgrid.com";

            var client = new SendGridClient(options);
            var msg = new SendGridMessage()
            {
                From = new EmailAddress(from),
                Subject = subject,
                PlainTextContent = "Hello, Email!",
                HtmlContent = body
            };

            foreach(string recepient in to)
            {
                msg.AddTo(new EmailAddress(recepient));
            }

            var response = await client.SendEmailAsync(msg);
        }

Grüsse

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.807 Beiträge seit 2008
vor 3 Jahren

Hab gerade mal mein Demo Code getestet, der geht immer noch.

            SendGridClientOptions mailClientOptions = new SendGridClientOptions
            {
                ApiKey = apiKey,
            };
            SendGridClient mailClient = new SendGridClient(mailClientOptions);

            var msg = MailHelper.CreateSingleEmail(from, to,
                "Test Mail", "Plain Text Body", "HTML Body");

            var response = await mailClient.SendEmailAsync(msg);

Was steht bei Dir im response drin?
Wenn dort als Status accepted ist, dann kommen die Mails zumindest bei der SendGrid API an.

PS: https im Host ist ja seit mindestens 2017 default im Paket.

PPS: obwohl ich SendGrid ja auch habe, habe ich keine entsprechende Notification Mail der Serviceänderung erhalten - bisher. 🤔

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Hi Abt

Jetzt stand "accepted" drin und es hat geklappt, mit meinem Code.
Komische Sache. Ich prüfe mal, ob es einen anderen Grund gibt zufälligerweise, dass die Emails nicht abgeschickt werden 😃

Danke und Grüsse
Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.807 Beiträge seit 2008
vor 3 Jahren

Wenn accepted ist, dann liegts - _eigentlich _- nicht am HTTPS oder Deinem Code 😉

Evtl. ist Deine Domain nicht validiert? Ungültiger DNS Record? DNS SPIF gesetzt? Du hast nen DMARC erhalten?
Im SendGrid Activity Feed solltest Du eigentlich dann sehen, dass Du einen API Request abgesendet hast aber keine E-Mail (und wieso) verschickt wurde.

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Danke Abt. Als "accepted" kam, kam das Mail an. Es wird nur von einem Hintergrundprozess nicht mehr geschickt, da der Hintergrundprozess ein falsches Ergebnis liefert. Also ein anderes, als ich erwarte.

Das ist ein if 😃

Also alles gut. Die Domain musste ich nie validieren für SendGrid. Muss man das?

Grüsse

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.807 Beiträge seit 2008
vor 3 Jahren

Domain Validation ist für die Spam Result Calculation wichtig.
Die Validation bescheinigt dem Empfänger, dass SendGrid mit Deiner Domain E-Mails verschicken darf.

Daher: ja, Validation (DNS, DKIM, SPIF) sind wichtig für die Reputation.

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Hi Abt

Danke für die Info!

Grüsse

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011