关于C#发送邮件模块

最近Tony小编因为项目的原因涉及到在VS2003中开发发送邮件模块,通过各大论坛网站的搜罗,Tony小编整理了几个版本的发送邮件模块供大家共同学习!这里如果使用的是VS2003那么Framework就是Framework1.1版本,因此使用的命名空间是using System.Web.Mail(注意:Framework1.1和Framework2.0使用的命名空间不是完全一样的,Framework2.0使用的命名空间也可能是using System.Net.Mail)。

 

using System.Web.Mail;

 

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

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

   //构造添加附件(可以发多个附件给多个收件人)
   System.Web.Mail.MailAttachment mailAttach_1 = new System.Web.Mail.MailAttachment(@"E:\测试文件1.doc");
   System.Web.Mail.MailAttachment mailAttach_2 = new System.Web.Mail.MailAttachment(@"E:\测试文件2.doc");
   System.Web.Mail.MailAttachment mailAttach_3 = new System.Web.Mail.MailAttachment(@"E:\测试文件3.doc");
   mail.Attachments.Add(mailAttach_1);
   mail.Attachments.Add(mailAttach_2);
   mail.Attachments.Add(mailAttach_3);

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

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

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

   catch
   {
      return false;   
   }

  }

 

(2)VS2005&Framework2.0

private 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 = "测试邮件内容";
    mail.IsBodyHtml = true;
    mail.BodyEncoding = System.Text.Encoding.UTF8;
    //附件
    string strFilePath = @"E:\Test.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();

    System.Net.Mail.SmtpClient server = new System.Net.Mail.SmtpClient("mail.xxxx.xxx");    

    server.Credentials = new System.Net.NetworkCredential(loginname.Trim(), psd.Trim()); //用户名和密码

    try
    {
        server.Send(mail);

        return true;
    }
    catch
    {
        return false;
    }

}

 

注:VS2008&Framework3.5发送邮件模块以及编写完成,过几日贴出为大家学习,文中部分资料参考来自<博客园---sunshine of Provence>。

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

民間艺人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值