c# - 发送嵌入图像的电子邮件 - 图像不可见

标签 c# asp.net email smtp gmail

我发送一封带有 C# 库的电子邮件。电子邮件正文包含 Logo 。当我通过 GMail 的 SMTP 服务器发送这封电子邮件时,图像是可见的。当我使用我们的域名 admin@domaine.net 时,图像不可见。

有人知道这种区别吗?

最佳答案

为了使其正常工作,您需要发送一个 HTML 文档,然后使用 mime 嵌入图像。

自 v2.0 以来,ASP.NET smtp 对象为您完成了大部分脏活。

这是一个来自微软网站的例子。 original location

  //Holds message information.
  System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage();
  //Add basic information.
  mailMessage.From = new System.Net.Mail.MailAddress(txtFrom.Text.Trim());
  mailMessage.To.Add(txtTo.Text.Trim());

  mailMessage.Subject = txtSubject.Text.Trim();
  //Create two views, one text, one HTML.
  System.Net.Mail.AlternateView plainTextView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(txtBody.Text.Trim(), null, "text/plain");
  System.Net.Mail.AlternateView htmlView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(txtBody.Text.Trim() + "<image src=cid:HDIImage>", null, "text/html");
  //Add image to HTML version
  System.Net.Mail.LinkedResource imageResource = new System.Net.Mail.LinkedResource(fileImage.PostedFile.FileName, "image/jpg");
  imageResource.ContentId = "HDIImage";
  htmlView.LinkedResources.Add(imageResource);
  //Add two views to message.
  mailMessage.AlternateViews.Add(plainTextView);
  mailMessage.AlternateViews.Add(htmlView);
  //Send message
  System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient();
  smtpClient.Send(mailMessage);

关于c# - 发送嵌入图像的电子邮件 - 图像不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5293078/

相关文章:

css - Bootstrap 导航栏重叠 Logo ?

sql - 同一查询中的多个通配符计数

c# - 如何用c#解开keyboard-hook开发一个击键修改软件

c# - 单击链接时尝试将 css 应用于 jQuery slideToggle

c# - $.getJSON 没有调用回调函数

email - Gmail API Users.messages : list

php - 警告 : Bad Message Return Path (PHP)

c# - 数据存储在哪里?

c# - ASP.Net Identity 2 - 来自 OAuthAuthorizationServerProvider 的自定义响应

javascript - 如何更改伪 anchor 的边框颜色