用net如何实现邮件发送 求源码

解决方案 »

  1.   

    http://blog.csdn.net/hb_gx/archive/2008/04/16/2298945.aspx
      

  2.   

    利用Jmail发送邮件:
    private void SendMailByJmail()
    {
    /**////建立发邮件类
    jmail.MessageClass oJmailMessage = new jmail.MessageClass();/**//// 字符集
    oJmailMessage.Charset = "GB2312";/**////附件的编码格式
    oJmailMessage.Encoding = "BASE64";
    oJmailMessage.ContentType = "text/html";/**////是否将信头编码成iso-8859-1字符集
    oJmailMessage.ISOEncodeHeaders = false;/**//// 优先级
    oJmailMessage.Priority = Convert.ToByte(1);/**////发送人邮件地址
    oJmailMessage.From = TxtEmail.Text.Trim();/**////发送人姓名
    oJmailMessage.FromName = TxtName.Text.Trim();/**//// 邮件主题
    oJmailMessage.Subject = txtSubject.Text.Trim();/**////身份验证的用户名
    oJmailMessage.MailServerUserName = TxtSmtpUser.Text.Trim();/**////用户密码
    oJmailMessage.MailServerPassWord = TxtSmtpPwd.Text.Trim();/**////添加一个收件人,抄送人和密送人的添加和该方法是一样的,只是分别使用AddRecipientCC和RecipientBCC两个属性
    ///要是需要添加多个收件人,则重复下面的语句即可。添加多个抄送和密送人的方法一样
    oJmailMessage.AddRecipient(txtReciver.Text.Trim(),"","");
    if("" != upFile.PostedFile.FileName)
    {
    string attpath = upFile.PostedFile.FileName;
    oJmailMessage.AddAttachment(@attpath,true,attpath.Substring(attpath.LastIndexOf(".")+1,3));//添加附件
    }/**////邮件内容
    oJmailMessage.Body = txtContent.Text.Trim();if(oJmailMessage.Send(TxtSmtServer.Text.Trim(),false))
    {
    Response.Write("发送成功!");
    }
    else
    {
    Response.Write("发送失败,请检查邮件服务器的设置!");
    }oJmailMessage = null;
    }1/**//// 
    2/// 利用Jmail接收邮件
    3/// 
    4private void ReciveByJmail()
    5{ 
    6 /**////建立收邮件对象
    7 jmail.POP3Class popMail = new POP3Class();

    9 /**////建立邮件信息接口
    10 jmail.Message mailMessage; 
    11
    12 /**////建立附件集接口
    13 jmail.Attachments atts;
    14
    15 /**////建立附件接口
    16 jmail.Attachment att;
    17
    18 try
    19 {
    20 popMail.Connect(TxtPopUser.Text.Trim(),TxtPopPwd.Text.Trim(),TxtPopServer.Text.Trim(),Convert.ToInt32(TxtPopPort.Text.Trim()));
    21 
    22 /**////如果收到邮件
    23 if(0 < popMail.Count) 
    24 { 
    25 /**////根据取到的邮件数量依次取得每封邮件
    26 for(int i=1;i <= popMail.Count;i++) 
    27 {
    28 /**////取得一条邮件信息
    29 mailMessage = popMail.Messages[i]; 
    30
    31 /**////取得该邮件的附件集合
    32 atts = mailMessage.Attachments; 
    33 
    34 /**////设置邮件的编码方式 
    35 mailMessage.Charset = "GB2312"; 
    36 
    37 /**////设置邮件的附件编码方式 
    38 mailMessage.Encoding = "Base64"; 
    39 
    40 /**////是否将信头编码成iso-8859-1字符集 
    41 mailMessage.ISOEncodeHeaders = false; 
    42 
    43 /**////邮件的优先级 
    44 txtpriority.Text = mailMessage.Priority.ToString(); 
    45 
    46 /**////邮件的发送人的信箱地址 
    47 txtSendMail.Text = mailMessage.From; 
    48 
    49 /**////邮件的发送人 
    50 txtSender.Text = mailMessage.FromName; 
    51 
    52 /**////邮件主题 
    53 txtSubject.Text = mailMessage.Subject; 
    54 
    55 /**////邮件内容 
    56 txtBody.Text = mailMessage.Body; 
    57 
    58 /**////邮件大小 
    59 txtSize.Text = mailMessage.Size.ToString(); 
    60 
    61 for(int j=0;j<ATTS.COUNT;J++)
    62 {
    63 /**////取得附件
    64 att = atts[j]; 
    65 
    66 /**////附件名称 
    67 string attname = att.Name; 
    68 
    69 /**////上传到服务器
    70 att.SaveToFile("e:\\attFile\\"+attname); 
    71 
    72 }
    73 
    74 }
    75 panMailInfo.Visible = true;
    76 att = null;
    77 atts = null;
    78 }
    79 else
    80 {
    81 Response.Write("没有新邮件!");
    82 }
    83
    84 popMail.DeleteMessages();
    85 popMail.Disconnect();
    86 popMail = null;
    87 }
    88 catch
    89 {
    90 Response.Write("Warning!请检查邮件服务器的设置是否正确!");
    91 }
    92}
      

  3.   

    /Sends方法是发送邮件的代码。。
      //你想发送的东西放在body中
      #region        
            public static void Sends(string email) 
            {
                string formto = "发件箱地址";
                string to = email;   //接收邮箱
                string content = "";
                string body = "";
                string name = "发件箱";
                string upass = "密码";
                string smtp = "smtp地址";
                SmtpClient _smtpClient = new SmtpClient();            
                _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
                _smtpClient.Host = smtp; //指定SMTP服务器
                _smtpClient.Credentials = new System.Net.NetworkCredential(name, upass);//用户名和密码
                MailMessage _mailMessage = new MailMessage();
                //发件人,发件人名 
                _mailMessage.From = new MailAddress(formto, "别名");
                //收件人 
                _mailMessage.To.Add(to);
                _mailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
                _mailMessage.Subject = content;//主题            _mailMessage.Body = body;//内容
                _mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");//正文编码
                _mailMessage.IsBodyHtml = true;//设置为HTML格式
                _mailMessage.Priority = MailPriority.High;//优先级   
                try
                {
                    _smtpClient.Send(_mailMessage);
                }
                catch (Exception)
                {
                                    
                }
                
            }
            #endregion
      

  4.   

    SmtpClient smtp = new SmtpClient();//实例化一个SmtpClient
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;//将smtp的出站方式设为Network
            smtp.EnableSsl = false;//smtp服务器是否启用SSL加密
            smtp.Host ="smtp.163.com";//指定 smtp 服务器地址smtp.163.com
            
            smtp.Port = 25;//指定 smtp 服务器的端口,默认是25,如果采用默认端口,可省去
            //如果你的SMTP服务器不需要身份认证,则使用下面的方式,不过,目前基本没有不需要认证的了
            smtp.UseDefaultCredentials =true;//如果需要认证,则用下面的方式
            smtp.Credentials = new NetworkCredential("你的邮箱账号","你的邮箱密码");//登录邮件
           
            MailMessage mm = new MailMessage();//实例化一个邮件类
            mm.Priority = MailPriority.Normal;//邮件的优先级,分为 Low, Normal, High,通常用 Normal即可
            //收件方看到的邮件来源;
            //第一个参数是发信人邮件地址
            //第二参数是发信人显示的名称
            //第三个参数是 第二个参数所使用的编码,如果指定不正确,则对方收到后显示乱码
            //936是简体中文的codepage值
            mm.From = new MailAddress("邮箱账号", "昵称、名称", Encoding.GetEncoding(936));
            //ReplyTo 表示对方回复邮件时默认的接收地址,即:你用一个邮箱发信,但却用另一个来收信
            //上面后两个参数的意义, 同 From 的意义
            mm.ReplyTo = new MailAddress("邮箱账号","昵称、名称", Encoding.GetEncoding(936));
            // 收件人地址,可以多个,例如:([email protected],[email protected]),多个以逗号分开
            mm.To.Add("[email protected],[email protected],[email protected]");
            mm.Subject = "测试";//标题
            mm.IsBodyHtml = true;//是否以html格式发送
            mm.BodyEncoding = Encoding.GetEncoding(936);//正文的编码,防止乱码        mm.Body = "测试";//邮件的内容,即:正文
            //附件
            //mm.Attachments.Add(new Attachment(@"D:\a.doc", System.Net.Mime.MediaTypeNames.Application.Rtf));
            //多个附件
            //mm.Attachments.Add(new Attachment(@"D:\c.doc"));
            //发送邮件        smtp.Send(mm);
      

  5.   

    using System.Net.Mail; SmtpClient MySc = new SmtpClient();
            MySc.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
            MySc.Host = "smtp.sina.com";//设置Smtp
            MySc.Credentials = new System.Net.NetworkCredential("******@sina.com", "******");//用户名和密码
            string tomail = "********@**.com";//目标邮件地址
            MailMessage mymm = new MailMessage("********@sina.com", tomail);
            Attachment objAttachment = new Attachment(FileUpload1.PostedFile.FileName);//上传的附件
            mymm.Attachments.Add(objAttachment);
            mymm.Subject = "发送邮件的标题";//邮件标题
            mymm.Body = "发送邮件的内容";//邮件内容
            
            mymm.BodyEncoding = System.Text.Encoding.UTF8;//设置邮件内容的正文编码
            mymm.IsBodyHtml = true;//设置文件正文是否为HTML格式的值
            mymm.Priority = MailPriority.High;//此邮件的优先级
            try
            {
                MySc.Send(mymm);//发送邮件
                Response.Write("发送成功");
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
      

  6.   

    System.Net.Mail; 
    测试时候注册个gmail邮箱来测试发邮件,我之前用网易的好像不行,据说是不支持smtp服务