You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在邮件代码中嵌入Content文件夹内的本地图片?

要在邮件正文中嵌入图片,首先得把邮件切换成HTML格式——纯文本模式根本没法展示图片,这是核心前提。接下来我给你一步步改代码,实现你的需求:

核心步骤说明

  1. 开启邮件的HTML正文模式
  2. 把邮件内容重构为HTML格式,用<img>标签通过**Content ID(CID)**引用图片
  3. 将本地图片作为LinkedResource添加到邮件中,关联对应的CID

修改后的完整代码示例

假设你用的是.NET的System.Net.Mail类库(从你的代码风格看大概率是),代码调整如下:

mm.Subject = "CompanyName ";

// 构建HTML格式的邮件正文,注意img标签里的cid:companyLogo对应后面的ContentId
string body = $@"
<p>Dear {CustomerMasterObj.CustomerName},</p>
<p>&nbsp;</p>
<p>{EmailTemplateObj.EmailMsg}</p>
<p><a href=""{Userurl}"">{Userurl}</a></p>
<p>Thank you in advance.</p>
<p>&nbsp;</p>
<p>Yours sincerely,</p>
<p>&nbsp;</p>
<p>John Doe</p>
<!-- 嵌入Content文件夹里的图片 -->
<p><img src=""cid:companyLogo"" alt=""Company Image"" style=""max-width: 200px;""></p>";

// 开启HTML正文模式
mm.IsBodyHtml = true;
mm.Body = body;

// 获取Content文件夹里图片的绝对路径(根据你的项目类型调整路径获取方式)
// 如果是Web项目,用 Server.MapPath("~/Content/your-image-file.png")
// 如果是桌面项目,用 Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Content", "your-image-file.png")
string imageAbsolutePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Content", "your-image.png");

// 创建LinkedResource关联图片,设置ContentId和MIME类型
LinkedResource embeddedImage = new LinkedResource(imageAbsolutePath, "image/png");
embeddedImage.ContentId = "companyLogo"; // 必须和HTML里cid:后面的内容完全一致

// 创建HTML视图并添加嵌入资源
AlternateView htmlMailView = AlternateView.CreateAlternateViewFromString(body, null, "text/html");
htmlMailView.LinkedResources.Add(embeddedImage);
mm.AlternateViews.Add(htmlMailView);

关键注意事项

  • 路径正确性:一定要确保获取到图片的绝对路径,相对路径在邮件发送时会找不到文件
  • CID一致性:HTML中cid:后面的ID必须和LinkedResource.ContentId完全匹配,大小写敏感
  • MIME类型匹配:根据你的图片格式设置正确的MIME类型,比如jpg用image/jpeg,gif用image/gif
  • 备用文本:给<img>添加alt属性,避免图片加载失败时用户看不到提示信息

如果你的项目不是.NET,核心逻辑也是类似的:开启HTML邮件,将图片作为内嵌资源添加,通过CID在HTML中引用即可。

内容的提问来源于stack exchange,提问作者Programmeurwonder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:27:06