zoukankan      html  css  js  c++  java
  • C#发送邮件(内容中有图片)

    用微软的System.Net.Mail发送邮件,有些时候发邮件需要邮件内容中添加图片。

    对象解释

    SmtpClient类:允许应用程序使用简单邮件传输协议 (SMTP) 发送电子邮件。
    MailAddress类:MailAddress类表示电子邮件的地址。该类结合SmtpClient类或MailMessage类使用,其实例存储了电子邮件的地址信息。  
    MailMessage 类:MailMessage类的实例表示一个电子邮件的所有内容,并用SmtpClient类来传输到SMTP服务器。若要指定电子邮件的发件人、收件人和内容,可以使用 MailMessage类的关联属性。
    NetworkCredential类:为基于密码的身份验证方案(如基本、简要、NTLM 和 Kerberos 身份验证)提供凭据。

    简单邮件例子

    MailMessage mail = new MailMessage();
    //设置发件人,发件人需要与设置的邮件发送服务器的邮箱一致
    MailAddress fromAddr = new MailAddress("163XX@163.com", "系统邮件");
    mail.From = fromAddr;
    
    //设置收件人,可添加多个,添加方法与下面的一样
    mail.To.Add("to@163.com");
    
    //设置邮件标题
    mail.Subject = "主题";
    
    //设置邮件内容
    mail.Body = "内容";
    
    //设置邮件发送服务器,服务器根据你使用的邮箱而不同,可以到相应的 邮箱管理后台查看,下面是163的;
    //设置发送人的邮箱账号和密码,POP3/SMTP服务要开启, 密码要是POP3/SMTP等服务的授权码
    var smtp = new SmtpClient("smtp.163.com");
    smtp.UseDefaultCredentials = true;
    smtp.Credentials = new NetworkCredential("163XX@163.com", "password");
    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
    smtp.EnableSsl = true;
    
    smtp.Send(mail);
    smtp.Dispose();

    #C#发送邮件时在正文中插入图片(邮件中直接包含图片)

    MailMessage mail = new MailMessage();
    //设置发件人,发件人需要与设置的邮件发送服务器的邮箱一致
    MailAddress fromAddr = new MailAddress("163XX@163.com", "系统邮件");
    mail.From = fromAddr;
    
    //设置收件人,可添加多个,添加方法与下面的一样
    mail.To.Add("to@163.com");
    
    //设置邮件标题
    mail.Subject = "主题";
    
    //设置邮件内容
    mail.Body = "内容";
    Attachment attachment = new System.Net.Mail.Attachment("D:\test.png");
    mail.Attachments.Add(attachment);
    mail.Body += "<img src="cid:" + attachment.ContentId + ""/>"; //这个写上附件就会变成文章中的图片
    mail.Body += "内容";
    mail.IsBodyHtml = true; //设置邮件发送服务器,服务器根据你使用的邮箱而不同,可以到相应的 邮箱管理后台查看,下面是163的; //设置发送人的邮箱账号和密码,POP3/SMTP服务要开启, 密码要是POP3/SMTP等服务的授权码 

    var smtp = new SmtpClient("smtp.163.com");
    smtp.UseDefaultCredentials
    = true;
    smtp.Credentials
    = new NetworkCredential("163XX@163.com", "password");
    smtp.DeliveryMethod
    = SmtpDeliveryMethod.Network;
    smtp.EnableSsl
    = true; smtp.Send(mail);
    smtp.Dispose();

     其他的发送邮件文章 C#发送邮件封装

    System.Net.Mail源码地址

    https://github.com/dotnet/corefx/tree/master/src/System.Net.Mail

  • 相关阅读:
    vue-cli3项目引用zepto报$不存在怎么处理
    RocketMQ(五):server端处理框架及消费数据查找实现
    文件上传踩坑记及文件清理原理探究
    ES使用总结 --ES实践速查手册
    java 执行shell命令及日志收集避坑指南
    Hive 如何快速拉取大批量数据
    程序员表白程序,哈哈哈,笑死我了
    发现了一个好玩的辞职程序,哈哈哈,笑死我了
    为什么最新版的VS2017没有net framework 4.6.2,net framework 4.7.2,net framework 4.6.2,net framework 4.8,也无法安装
    各个版本 Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本
  • 原文地址:https://www.cnblogs.com/zhao123/p/10955319.html
Copyright © 2011-2022 走看看