第一次使用这种方式发邮件呵呵,就比如拿我的Live邮箱往QQ邮箱上发一封邮件。

使用SmtpClient发送邮件的步骤就不讲了,在网上你可以找到太多的资料了,这里说一些需要注意的地方:

如果邮件的内容是HTML,设置MailMessage.IsBodyHtml为True,这样邮件才能够被正确以HTML形式读取。

在HTML中引用资源使用cid:xxx,xxx是附件的ContentId属性。同时也可以在MailMessage中的AlternateViews中加入AlternateView来指定电子邮件内容的不同格式。通过AlternativeView的LinkedResources来加入引用文件。引用也是通过LinkedResource的ContentId来设置的。事实上这个ContentId属性是来自AttachmentBase类型,而Attachment,AlternateView和LinkedResource类型都继承与这个类:

另外邮件的内容,主题,地址名称如果包含某些非ASCII字符的话应该指定一个编码,因为默认编码是ASCII。

最后某些SMTP服务器可能不支持SSL传输,因此SmtpClient的EnableSsl只能为false(否则会有异常抛出)。

代码:

using System;

using System.Text;

using System.Net;

using System.Net.Mime;

using System.Net.Mail;

namespace Mgen

{

class Program

{

static void Main()

{

//代码中的某些信息(如邮箱和密码)已用xxx代替,因此如果编译代码,请先替换成有效的数据!

using (var smtp = new SmtpClient())

using (var mail = new MailMessage("xxx@live.com", "xxx@qq.com"))

{

//图像附件

var attach = new Attachment(@"D:\a.jpg", MediaTypeNames.Image.Jpeg);

//设置ContentId

attach.ContentId = "pic";

//ZIP附件

var attach2 = new Attachment(@"D:\b.zip", "application/x-zip-compressed");

mail.Attachments.Add(attach);

mail.Attachments.Add(attach2);

//标题和内容,注意设置编码,因为默认编码是ASCII

mail.Subject = "你好";

mail.SubjectEncoding = Encoding.UTF8;

//HTML内容

mail.Body = "<img src=\"cid:pic\"/><p>来自Mgen。</p>";

mail.BodyEncoding = Encoding.UTF8;

//指示改电子邮件内容是HTML格式

mail.IsBodyHtml = true;

//SMTP设置(根据邮箱类型设置,这里是Live Mail的SMTP服务器地址)

smtp.Host = "smtp.live.com";

smtp.UseDefaultCredentials = false;

//某些SMTP服务器可能不支持SSL,会抛出异常

smtp.EnableSsl = true;

smtp.Credentials = new NetworkCredential("xxx@live.com", "xxx");

smtp.DeliveryMethod = SmtpDeliveryMethod.Network;

//发送

smtp.Send(mail);

}

}

}

}

最后在QQ邮箱中浏览接收到的邮件:

.NET(C#):使用SmtpClient发送带有图片和附件的电子邮件相关推荐

  1. 在zabbix中实现发送带有图片的邮件和微信告警

    微信公众号:运维开发故事,作者:double冬 1 python实现在4.2版本zabbix发送带有图片的报警邮件 我们通常收到的报警,都是文字,是把动作中的消息内容当成了正文参数传给脚本,然后邮件或 ...

  2. python提交表单发邮件_通过Mailgun和Python发送带有表单数据的电子邮件

    我理解使用Python通过Mailgun API发送消息的基本知识以及来自我网站的请求,并且一切正常 . 我想使用request.forms.get('')附加HTML表单中的数据,但无法找出使其工作 ...

  3. Power Automate:发送带有SharePoint列表附件的邮件

    第一步.创建一个数组变量并初始化,主要是为存储附件 第二步.获取列表的附件 第三步.获取文件内容 第四步,将附件添加到数组中 { "Name":@{items('应用到每一个_2' ...

  4. Spring boot锦集(二):整合邮件发送的四种方法 | 纯文本的邮件、带有图片的邮件、带Html的邮件、带附件的邮件(很详细)

    前言 邮件发送,听着很神秘,然而对于Spring Boot来说,这个功能已被集成好,只需引入spring-boot-starter-mail依赖后,少量代码即可实现大部分邮件发送需求. 本文以异常教程 ...

  5. ManagementDay06(javamail 发送html内容和附件 实现用户注册时发个邮件通知)

    如果不需要做判断 可以不用手动拼接json串 可以用ctrl+shift+t 可以搜寻类名 就能找到具体的类名 回顾 1.用户--角色Span标签的样式:display:inline-block;wi ...

  6. 通过python发送带有附件、图片、表格的邮件

    目录 纯文本邮件 带图片邮件 带表格邮件 带有附件的邮件 最近的工作中经常需要监控一些任务或服务,以期望及时发现问题.或者方便看到工作的进展或成果,这时候通过自动发送邮件就是一个好的解决方案.同时,也 ...

  7. MailBee.NET Objects发送电子邮件(SMTP)教程五:发送带有嵌入图片的网页和HTML邮件

    MailBee.NET Objects介绍和试用点击查看>>> 为了发送带有嵌入对象的电子邮件,开发人员应该使用SMTP object.首先,开发人员应该按照[MailBee.NET ...

  8. SpringBoot发送邮件(二)发送包含图片的邮件

    前言:使用发邮件这个功能不难,但是也有一些坑,下面我把开发邮件功能总结了一下分享给大家,同时为了避免篇幅过长,导致大家看的不仔细或看一半不想看了,我将这个功能细分了一下,写了好几篇供大家各取所需. S ...

  9. 法线有接缝_发送带有接缝的活动邀请

    法线有接缝 这些天来,我的一位同事在使用带有接缝(版本2.x)的邮件模板发送事件邀请时遇到了问题. 从根本上讲,这应该不是一项艰巨的任务,因此我将简要说明使用接缝邮件模板发送事件邀请需要做些什么. 发 ...

最新文章

  1. 快应用开发常见问题以及解决方案【持续更新】
  2. python 手动读取cifar10_Python读入CIFAR-10数据库
  3. SmartNIC/DPU — 基本组成示例
  4. 银河麒麟安装远程桌面
  5. GPU 实现 RGB -- YUV 转换 (OpenGL)
  6. Spark修炼之道(高级篇)——Spark源码阅读:第六节 Task提交
  7. Python_urllib
  8. js layui跳转页面_【WEB前端开辟】layui的iframe跳转链接与页面按钮跳转相干引见...
  9. 去掉快捷方式图标上的箭头
  10. UBUNTU安装Android Studio 3
  11. 两个音轨合并_怎样将两个音频合并在一起?超详细教程!
  12. [1151]python连接 redis cluster集群
  13. 【苹果相册推】iMessage OBJC Serverapns源代码直接开发证书
  14. windwos操作系统有snmp服务器,windows服务器snmp v3
  15. bi软件用来做什么?
  16. 李佳琦10月24日美妆节预告,李家琦双十一预告每日更新
  17. Latex中定理、引理、证明、假设
  18. HDU 4540 威威猫系列故事——打地鼠
  19. 金算盘与金蝶的“全程电子商务“谁第一?
  20. 互联网时代计算机科学技术的发展,互联网时代下的计算机科学技术发展趋势

热门文章

  1. 电脑word在哪_求职必会!她是微软Office Word认证大师,想教你成为效率10倍提升的Word高手...
  2. hadoop 部分问题
  3. shell错位_Linux 中纠正拼写错误的Bash 命令方法
  4. c语言 读取一个文件 删除注释,C/C++ 源文件删除注释代码
  5. 光伏智能道路_这条光伏公路,能承重,晒太阳能发电,西方国家:中国技术好...
  6. 双柱状图柱子数量比较多_一条代码完成堆叠柱状图-冲击图的操作-终结版
  7. python调用计算器卡死_Python+tkinter使用40行代码实现计算器功能
  8. 这个学校的毕业典礼,火了。
  9. 手环是如何测试人体健康数据?
  10. java 文件递归删除文件夹_Java十行代码实现递归删除文件夹中所有文件