Ich verwende die SendGrid v3 API und C# -Bibliothek (v7), um eine E-Mail zu senden. In meiner E-Mail habe ich eine Kopfzeile, die ein PNG ist. Der Header ist wie folgt eingebettet:SendGrid - Bild nicht in HTML-E-Mail angezeigt
<img src="cid:emailheader"/>
Im C# -Code ich das Bild als Anlage mit der gleichen contentid
var mail = neuer Mail (Absender, Betreff, an, Content) zu senden;
var headerPath = HttpContext.Current.Server.MapPath("~/Resources/email-header.png");
var attachment = new SendGrid.Helpers.Mail.Attachment();
attachment.ContentId = "emailheader";
attachment.Content = Convert.ToBase64String(File.ReadAllBytes(headerPath));
attachment.Type = "image/png";
attachment.Filename = "email-header.png";
mail.AddAttachment(attachment);
var send = sg.client.mail.send.post(requestBody: mail.Get());
Doch wenn ich die E-Mail öffnen, es sagt die Quelle nicht gefunden, obwohl das Bild korrekt in der Anlage
Ich glaube, Sie müssen das Bild in HTML Mail Körper einzubetten, anstatt sie als Anlage zu tun. –
Ich denke, dass Sie die Inhaltsdisposition 'inline' einstellen müssen, wenn Sie es anhängen, um es mit einer' cid' zu verwenden. Siehe hier: https://github.com/sendgrid/sendgrid-csharp/blob/master/SendGrid/SendGrid/Helpers/Mail/Mail.cs#L990 –