当前位置:编程学习 > C#/ASP.NET >>

用net如何实现邮件发送

用net如何实现邮件发送 求源码 --------------------编程问答-------------------- http://blog.csdn.net/hb_gx/archive/2008/04/16/2298945.aspx --------------------编程问答-------------------- 邮件发送 --------------------编程问答-------------------- 利用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}
--------------------编程问答--------------------
/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
--------------------编程问答-------------------- 参考 --------------------编程问答-------------------- 邮件发送 --------------------编程问答--------------------
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));
        // 收件人地址,可以多个,例如:(a@qq.com,b@qq.com),多个以逗号分开
        mm.To.Add("a@163.com,b@163.com,c@163.com");
        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);
--------------------编程问答-------------------- 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);
        }
--------------------编程问答-------------------- 加我QQ 我给你例子 674954721 --------------------编程问答-------------------- System.Net.Mail; 
测试时候注册个gmail邮箱来测试发邮件,我之前用网易的好像不行,据说是不支持smtp服务 --------------------编程问答-------------------- 一直都在用jmail --------------------编程问答-------------------- mark
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,