关于.NET 的邮件发送类

编程入门 行业动态 更新时间:2024-10-16 16:50:09

关于.NET 的<a href=https://www.elefans.com/category/jswz/34/1757182.html style=邮件发送类"/>

关于.NET 的邮件发送类

.NET 类库中已经有现成的封好的类库了,只要引用System.Net.Mail命名空间即可实现发邮件的功能

以下是代码

    public class SendMail{private string FileName;//附件路径public string filename{set { FileName = value; }}private string ServerHost;//承载服务器  如smtp.qqpublic string serverhost{set { ServerHost = value; }}private Int32 Port;//端口public Int32 port { set { Port = value; } }private string MailAddressFrom;//发信人邮箱public string mailaddressfrom { set { MailAddressFrom = value; } }private string Psw;//密码public string psw { set { Psw = value; } }private string MailAddressTo;//收信人邮箱public string mailaddressto { set { MailAddressTo = value; } }private string Message;//邮件信息public string message { set { Message = value; } }private string ShowName;//发送人显示名public string showname { set { ShowName = value; } }private string MailTitle;//发送人显示名public string mailtitle { set { MailTitle = value; } }public string result;SmtpClient smtpclient = null;//设置smtp协议MailAddress MailAddress_from = null;//设置发信人的地址  密码MailAddress MailAddress_to = null;//设置收信人的地址MailMessage MailMessage = new MailMessage();FileStream filestream = null;//附件文件流/// <summary>/// 设置smtp服务器信息/// </summary>/// <param name="ServerHost">smtp服务器名</param>/// <param name="port">端口号</param>private void setSmtpClient(string ServerHost, Int32 port){smtpclient = new SmtpClient();smtpclient.Host = ServerHost;//指定smtp服务名 smtpclient.Port = port;//指定端口号smtpclient.Timeout = 0;//超时的时间
        }/// <summary>/// 验证发件人信息/// </summary>/// <param name="MailAddress">发件人地址</param>/// <param name="Psw">密码</param>private void setMailAddress_from(string MailAddress, string Psw){//创建服务器认证NetworkCredential networkcredential = new NetworkCredential(MailAddress, Psw);//实例化发件人地址MailAddress_from = new System.Net.Mail.MailAddress(MailAddress, Psw);//指定发件人信息(邮箱地址和密码)smtpclient.Credentials = new System.Net.NetworkCredential(MailAddress_from.Address, Psw);}/// <summary>/// 检测附件大小/// </summary>/// <param name="filename">附件路径</param>/// <returns></returns>private Boolean checkAttachmentSize(){try{filestream = new System.IO.FileStream(FileName, FileMode.Open);string name = filestream.Name;int size = (int)filestream.Length;filestream.Close();if (size > 1024 * 1024 * 1024)return false;return true;}catch (IOException ioerr){throw (ioerr);}}public void Sendmail(){if (!String.IsNullOrEmpty(FileName)){if (!checkAttachmentSize()){return;}}//初始化smtp信息try{setSmtpClient(ServerHost, Port);}catch (Exception err){throw err;}//验证发件地址和密码try{setMailAddress_from(MailAddressFrom, Psw);}catch (Exception err){throw err;}try{MailAddress_to = new MailAddress(MailAddressTo);MailMessage.To.Add(MailAddress_to);}catch (Exception err){throw err;}MailMessage.From = MailAddress_from;MailMessage.Subject = MailTitle;MailMessage.SubjectEncoding = System.Text.Encoding.UTF8;MailMessage.Body = Message;MailMessage.BodyEncoding = System.Text.Encoding.UTF8;MailMessage.Attachments.Clear();MailMessage.Attachments.Add(new Attachment(FileName.Trim(), MediaTypeNames.Application.Octet));smtpclient.SendAsync(MailMessage, "000000000");result = "发送成功!";}}

以上只是做我样例,具体还没封号,仅作参考。

另外需要设置你发件邮箱的SMTP,有些邮箱默认是关闭的,如QQ邮箱;

调用代码:

static void Main(string[] args){SendMail sendmail = new SendMail();sendmail.filename = @"F:\《高等数学》下册期末总复习.rar";sendmail.mailaddressfrom = @"@163";sendmail.mailaddressto = @"";sendmail.mailtitle = "你是个SB!";sendmail.message = "到后个将发动机得更快睡觉啊i偶的是解放军的声卡将公开讲的是卡就卡价\n格看电视剧开工的静安寺髋关节阿盛开的吉萨头i额物体偶觉得刚打开\n数据库哥四大皆空担惊受恐讲噶速度借我抵抗力噶就是德拉科价格按时";sendmail.port = 25;sendmail.psw = "";sendmail.serverhost = "smtp.163";sendmail.showname = "TommyBiteMe";sendmail.Sendmail();Console.WriteLine("{0}",sendmail.result);Console.ReadLine();}

转载于:.html

更多推荐

关于.NET 的邮件发送类

本文发布于:2024-03-08 10:14:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1720582.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:邮件发送   NET

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!