用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();
8
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--------------------编程问答-------------------- using System.Net.Mail;
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);
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