我正在尝试发送一封在邮件正文中嵌入图片的电子邮件。
图像编码为Base64字符串。内容如下:
"<p><span>My Name</span></p><img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA..." width=\"167\" height=\"167\" />"
此示例中已切断base64字符串。
我使用以下代码将html作为附件发送,但是,示例中的图像仍然被电子邮件提供商(gmail / outlook)拒绝解码。我不知道我是不是做得不好。
string htmlBody = "<p><span>My Name</span></p><img src=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA..." width=\"167\" height=\"167\" />";
AlternateView avHtml = AlternateView.CreateAlternateViewFromString
(htmlBody, null, MediaTypeNames.Text.Html);
var mailTo = Config.Debug ? new MailAddress(Config.DebugEmailAddress) : new MailAddress("myemail@gmail.com");
var mailFrom = new MailAddress("myemail@gmail.com");
var mailMessage = new MailMessage(mailFrom, mailTo) { Subject = "hola q tal", Body = "holaaa", IsBodyHtml = true };
mailMessage.To.Add("myemail@gmail.com");
mailMessage.AlternateViews.Add(avHtml);
var sender1 = new SmtpClient
{
Host = Config.SmtpHost,
Port = 25,
Credentials = new NetworkCredential(Config.SmtpHostUserName, Config.SmtpHostPassword)
};
sender1.Send(mailMessage);
我很感激任何想法。
答案 0 :(得分:0)
如果要将附件附加到您发送的邮件,则不是这样。您应该将附件添加到MailMessage
message.Attachments.Add(new Attachment(PathToAttachment));
如果您在base64中有附件,则应将其转换为Stream并使用适当的附件构造函数。
Attachment(Stream, ContentType)
Attachment class与他的所有建筑师的文章。