主要是用到了System.Web.Mail命名空间,用到了此空间的三个类,分别是:

●MailMessage类,用于构造电子邮件
●MailAttachment类,用于构造电子邮件附件
●SmtpMail类,用于发送电子邮件及其附件
1、MailMessage类构造电子邮件
 此类主要有以下属性和方法
 ★From     发件人的地址
 ★To       以分号分隔的收件人的地址列表
 ★Cc       以分号隔开的抄送的收件人的邮件地址列表
 ★Subject  电子邮件的主题
 ★Body     电子邮件的正文
 ★BodyFormat 电子邮件的正文内容类型,由MailFormat枚举值指定,MailFormat.Text或MailFormat.Html
 ★Attachments 电子邮件附件集合
 ★Priority  电子邮件的优先级,由MailPriority枚举值指定,可以是MailPriority.Low ,MailPriority.Normal或MailPriority.High三者之一
2、Attachment用来构造电子邮件附件.用此类构造了电子邮件附件然后添加到MailMessage对象的Attachments集合即可
3、使用SmtpMail类发送电子邮件,可以通过系统本身的SMTP邮件服务或者其它SMTP服务器来发送,发送电子邮件首先需要设置SmtpMail类的SmtpServer属性,然后使用Send方法发送就可以了
下面做个简单的邮件发送例子:

using System.Web.Mail;

/// <summary>
    /// 给业务面试人发送面试通知邮件
    /// </summary>
    /// <returns>true/false</returns>

//发送邮件
    bool sendmailbusi()
    {
        System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
        mail.From = "aminta@sohu.com";
        mail.To = "123@sohu.com";
        mail.Subject = "测试邮件";
        mail.Body = "这是一封测试邮件";
        mail.BodyFormat = System.Web.Mail.MailFormat.Html;
        mail.BodyEncoding = System.Text.Encoding.UTF8;   //邮件内容编码

mail.Headers.Add("Disposition-Notification-To", "aminta@sohu.com"); //邮件阅读回执

//构造添加附件(可以发多个附件给多个收件人)
        System.Web.Mail.MailAttachment mailAttach_1 = new System.Web.Mail.MailAttachment(@"E:\上岗考核表-入职.doc");
        System.Web.Mail.MailAttachment mailAttach_2 = new System.Web.Mail.MailAttachment(@"E:\填表说明.doc");
        System.Web.Mail.MailAttachment mailAttach_3 = new System.Web.Mail.MailAttachment(@"E:\上岗考核表-转正.doc");
        mail.Attachments.Add (mailAttach_1);
        mail.Attachments.Add(mailAttach_2);
        mail.Attachments.Add(mailAttach_3);

System.Web.Mail.SmtpMail.SmtpServer = "smtp.sohu.com"; //    发送邮件服务器端口 
        //验证

mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");          //是否需要验证,一般是要的   
        mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "aminta");      //自己邮箱的用户名   
        mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "123456");     //自己邮箱的密码

try
        {
            System.Web.Mail.SmtpMail.Send(mail);
            return true;
        }
        catch
        {
            return false;
        }
    }

// 05的应该是:

//System.Net.Mail  //有的邮件服务器支持,有的不支持

例如:
//发送邮件(含附件)
bool sendmail(string mailto,string mailfrom,string content,string loginname,string psd)
{
System.Net.Mail.MailMessage mail = new
System.Net.Mail.MailMessage();
mail.From = new System.Net.Mail.MailAddress(mailfrom.Trim());
mail.To.Add(mailto.Trim());
mail.Subject = "xx公司面试通知函";
mail.IsBodyHtml = true;
mail.BodyEncoding = System.Text.Encoding.UTF8;
//附件
string strFilePath = @"E:\logo.jpg";
System.Net.Mail.Attachment attachment1 = new System.Net.Mail.Attachment(strFilePath);//添加附件
attachment1.Name = System.IO.Path.GetFileName(strFilePath);
attachment1.NameEncoding = System.Text.Encoding.GetEncoding("gb2312");
attachment1.TransferEncoding = System.Net.Mime.TransferEncoding.Base64;
attachment1.ContentDisposition.Inline = true;
attachment1.ContentDisposition.DispositionType = System.Net.Mime.DispositionTypeNames.Inline;
string cid = attachment1.ContentId;//关键性的地方,这里得到一个id数值
mail.Attachments.Add(attachment1);
//邮件正文
mail.Body
="<table width='100%'><tr><td><img src
='cid:"+cid+"'/></td></tr>" +content.Trim();

mail.Headers.Add("Disposition-Notification-To", "aminta@sohu.com"); //邮件阅读回执

System.Net.Mail.SmtpClient server = new System.Net.Mail.SmtpClient("mail.xxxx.xxx");    //之前一不留神把公司域名挂上了,在头儿的提醒下赶紧改了,不然惨了,^0^
server.Credentials = new System.Net.NetworkCredential(loginname.Trim(), psd.Trim()); //用户名和密码

try
{
server.Send(mail);

return true;
}
catch
{
return false;
}

}

转自:http://www.cnblogs.com/aminta/archive/2008/11/08/1281357.html

C# 发送电子邮件(含附件)用到的类 system.web.mail的更多相关文章

  1. java邮件发送(含附件)

    1. [代码]java邮件发送(含附件)疯狂的IT人站长整理的:利用Java发送邮件(含附件)的例子:1.邮件发送的配置propertity文件内容如下:(utils.properties文件放在sr ...

  2. C# 网络编程之基于SMTP发送电子邮件

     本文主要讲述基于C#网络编程的发送邮件的编程,邮件发送功能是基于邮件协议的,常见的电子邮件协议有SMTP(简单邮件传输协议).POP3(邮局协议).IMAP(Internet邮件访问协议),文章主要 ...

  3. C# 发送电子邮件源码片段

    下面代码内容是关于C# 发送电子邮件片段的代码,应该对各位有所用途. using System;using System.Web;using System.Web.Mail;public class ...

  4. javamail模拟邮箱功能发送电子邮件-中级实战篇【新增附件发送方法】(javamail API电子邮件实例)

    引言: JavaMail jar包下载地址:http://java.sun.com/products/javamail/downloads/index.html 此篇是紧随上篇文章而封装出来的,阅读本 ...

  5. javamail模拟邮箱功能发送电子邮件-基础实战篇(javamail API电子邮件实例)

    引言: JavaMail 是一种可选的.能用于读取.编写和发送电子消息的包 JavaMail jar包下载地址:http://java.sun.com/products/javamail/downlo ...

  6. ASP.NET 发送电子邮件简介

    1.补充知识 (1)POP3和SMTP服务器是什么? 简单点来说:POP3 用于接收电子邮件 ,SMTP 用于发送电子邮件. (1)POP3具体指什么? POP3(Post Office Protoc ...

  7. 使用php发送电子邮件(phpmailer)

    在项目开发过程中,经常会用到通过程序发送电子邮件,例如:注册用户通过邮件激活,通过邮件找回密码,发送报表等.这里介绍几种通过PHP发送电子邮件的 方式(1)通过mail()函数发送邮件(2)使用fso ...

  8. 利用Excel批量高速发送电子邮件

    利用Excel批量高速发送电子邮件,分两步: 1. 准备待发送的数据: a.) 打开Excel,新建Book1.xlsx b.) 填入以下的内容, 第一列:接收人,第二列:邮件标题,第三列:正文,第四 ...

  9. linux通过使用mail发送电子邮件

    通过外部方法发送的电子邮件 bin/mail默认为本地sendmail发送电子邮件,求本地的机器必须安装和启动Sendmail服务.配置很麻烦,并且会带来不必要的 资源占用.而通过改动配置文件能够使用 ...

随机推荐

  1. 1011 World Cup Betting (20 分)

    1011 World Cup Betting (20 分) With the 2010 FIFA World Cup running, football fans the world over wer ...

  2. 1046 Shortest Distance (20 分)

    1046 Shortest Distance (20 分) The task is really simple: given N exits on a highway which forms a si ...

  3. java 泛型中 T 和 问号(通配符)的区别

    类型本来有:简单类型和复杂类型,引入泛型后把复杂类型分的更细了: 现在List<Object>, List<String>是两种不同的类型;且无继承关系: 泛型的好处如: 开始 ...

  4. Maven 插件管理

    偶然与巧合 舞动了蝶翼 谁的心头风起 前赴而后继 万千人追寻 荒漠唯一菩提 似擦身相遇 或擦肩而去 命运犹如险棋 无数时间线 无数可能性 终于交织向你

  5. 详解 Facebook 田渊栋 NIPS2017 论文:深度强化学习研究的 ELF 平台

    这周,机器学习顶级会议 NIPS 2017 的论文评审结果已经通知到各位论文作者了,许多作者都马上发 Facebook/Twitter/Blog/ 朋友圈分享了论文被收录的喜讯.大家的熟人 Faceb ...

  6. 常用模块:re ,shelve与xml模块

    一 shelve模块: shelve模块比pickle模块简单,只有一个open函数,所以使用完之后要使用f.close关闭文件.返回类似字典的对象,可读可写;key必须为字符串,而值可以是pytho ...

  7. 如何折叠IntelliJ IDEA代码片段

      在 IntelliJ IDEA 中您可以折叠(fold)代码片段,将它们缩小到单个可见行.这样,您可以隐藏当前看起来无关紧要的细节.如果必要的话,折叠的代码片段可以被展开(unfolded). 折 ...

  8. Spring学习之AOP详解

    aop使用方式 @Aspect注解 wildcards通配符: * 匹配任意数量的字符 + 匹配指定类及其子类 .. 一般用于匹配任意数的子包或参数 operators运算符 && 与 ...

  9. python动态函数hasattr,getattr,setattr,delattr

    hasattr(object,name) hasattr用来判断对象中是否有name属性或者name方法,如果有,染回true,否则返回false class attr():     def fun( ...

  10. django中使用Form组件

    内容: 1.Form组件介绍 2.Form组件常用字段 3.Form组件校验功能 4.Form组件内置正则校验 参考:https://www.cnblogs.com/liwenzhou/p/87478 ...