首页 > 代码库 > 杂项收集,包括-发邮件、二维码生成、文件下载、压缩、导出excel
杂项收集,包括-发邮件、二维码生成、文件下载、压缩、导出excel
本篇就最近工作解决的问题做个代码收集。包括以下几个方面:发邮件、二维码生成、文件下载、压缩、导出excel。有一种可用的解决方法就好,不求全面,不求原理。
1、发邮件:
命名空间:System.Net.Mail
程序集:System(在 system.dll 中)
tips: MailMessage 类的实例用于构造可使用 SmtpClient 类传输到 SMTP 服务器以便传递的电子邮件。
若要指定电子邮件的发件人、收件人和内容,请使用 MailMessage 类的关联属性。一般需要注意的有 发件人From、收件人To、抄送 (CC)、密件抄送 (BCC)、附件Attachments、主题Subject、邮件正文Body。
另外,测试时正文和标题不要随意输入类似"afdadva"等等的无意义字母数字,会被服务器默认为垃圾邮件而拦截。
1 string senderServerIp = "smtp.126.com"; 2 3 string fromMailAddress = "xxx@126.com"; 4 string mailUsername = "xxx@126.com"; 5 string mailPassword = "pppp"; //发送邮箱的密码 6 string mailPort = "25"; 7 string attachPath = path + "/" + fileName;//附件 8 parmer.Content = "该邮件由系统代发."; 9 MailHelper email = new MailHelper(senderServerIp, parmer.ReceiveMailbox, fromMailAddress,10 parmer.Title, parmer.Content, mailUsername, mailPassword, mailPort, false, true);11 email.AddAttachments(attachPath);12 email.Send();
1 using System; 2 using System.IO; 3 using System.Net.Mail; 4 using System.Net.Mime; 5 6 namespace NewEnergyHandler.Common 7 { 8 public class MailHelper 9 { 10 private readonly MailMessage _mMailMessage; //主要处理发送邮件的内容(如:收发人地址、标题、主体、图片等等) 11 private SmtpClient _mSmtpClient; //主要处理用smtp方式发送此邮件的配置信息(如:邮件服务器、发送端口号、验证方式等等) 12 private readonly int _mSenderPort; //发送邮件所用的端口号(htmp协议默认为25) 13 private readonly string _mSenderServerHost; //发件箱的邮件服务器地址(IP形式或字符串形式均可) 14 private readonly string _mSenderPassword; //发件箱的密码 15 private readonly string _mSenderUsername; //发件箱的用户名(即@符号前面的字符串,例如:hello@163.com,用户名为:hello) 16 private readonly bool _mEnableSsl; //是否对邮件内容进行socket层加密传输 17 private readonly bool _mEnablePwdAuthentication; //是否对发件人邮箱进行密码验证 18 19 ///<summary> 20 /// 构造函数 21 ///</summary> 22 ///<param name="server">发件箱的邮件服务器地址</param> 23 ///<param name="toMail">收件人地址(可以是多个收件人,程序中是以“;"进行区分的)</param> 24 ///<param name="fromMail">发件人地址</param> 25 ///<param name="subject">邮件标题</param> 26 ///<param name="emailBody">邮件内容(可以以html格式进行设计)</param> 27 ///<param name="username">发件箱的用户名(即@符号前面的字符串,例如:hello@163.com,用户名为:hello)</param> 28 ///<param name="password">发件人邮箱密码</param> 29 ///<param name="port">发送邮件所用的端口号(htmp协议默认为25)</param> 30 ///<param name="sslEnable">true表示对邮件内容进行socket层加密传输,false表示不加密</param> 31 ///<param name="pwdCheckEnable">true表示对发件人邮箱进行密码验证,false表示不对发件人邮箱进行密码验证</param> 32 public MailHelper(string server, string toMail, string fromMail, string subject, string emailBody, string username, string password, string port, bool sslEnable, bool pwdCheckEnable) 33 { 34 try 35 { 36 _mMailMessage = new MailMessage(); 37 _mMailMessage.To.Add(toMail); 38 _mMailMessage.From = new MailAddress(fromMail); 39 _mMailMessage.Subject = subject; 40 _mMailMessage.Body = emailBody; 41 _mMailMessage.IsBodyHtml = true; 42 _mMailMessage.BodyEncoding = System.Text.Encoding.UTF8; 43 _mMailMessage.Priority = MailPriority.Normal; 44 _mSenderServerHost = server; 45 _mSenderUsername = username; 46 _mSenderPassword = password; 47 _mSenderPort = Convert.ToInt32(port); 48 _mEnableSsl = sslEnable; 49 _mEnablePwdAuthentication = pwdCheckEnable; 50 } 51 catch (Exception ex) 52 { 53 Console.WriteLine(ex.ToString()); 54 } 55 } 56 57 ///<summary> 58 /// 添加附件 59 ///</summary> 60 ///<param name="attachmentsPath">附件的路径集合,以分号分隔</param> 61 public void AddAttachments(string attachmentsPath) 62 { 63 try 64 { 65 string[] path = attachmentsPath.Split(‘;‘); //以什么符号分隔可以自定义 66 for (int i = 0; i < path.Length; i++) 67 { 68 var data = http://www.mamicode.com/new Attachment(path[i], MediaTypeNames.Application.Octet); 69 var disposition = data.ContentDisposition; 70 disposition.CreationDate = File.GetCreationTime(path[i]); 71 disposition.ModificationDate = File.GetLastWriteTime(path[i]); 72 disposition.ReadDate = File.GetLastAccessTime(path[i]); 73 disposition.FileName = path[i].Substring(path[i].LastIndexOf(‘/‘)+1); 74 _mMailMessage.Attachments.Add(data); 75 } 76 } 77 catch (Exception ex) 78 { 79 Console.WriteLine(ex.ToString()); 80 } 81 } 82 83 ///<summary> 84 /// 邮件的发送 85 ///</summary> 86 public void Send() 87 { 88 try 89 { 90 if (_mMailMessage != null) 91 { 92 _mSmtpClient = new SmtpClient 93 { 94 Host = _mSenderServerHost, 95 Port = _mSenderPort, 96 UseDefaultCredentials = false, 97 EnableSsl = _mEnableSsl 98 }; 99 if (_mEnablePwdAuthentication)100 {101 System.Net.NetworkCredential nc = new System.Net.NetworkCredential(_mSenderUsername, _mSenderPassword);102 _mSmtpClient.Credentials = nc.GetCredential(_mSmtpClient.Host, _mSmtpClient.Port, "NTLM");103 }104 else105 {106 _mSmtpClient.Credentials = new System.Net.NetworkCredential(_mSenderUsername, _mSenderPassword);107 }108 _mSmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;109 _mSmtpClient.Send(_mMailMessage);110 }111 }112 catch (Exception ex)113 {114 Console.WriteLine(ex.ToString());115 }116 }117 }118 }
2、二维码生成
命名空间:using ThoughtWorks.QRCode.Codec;
程序集:ThoughtWorks.QRCode.dll(需从网上下载)。
tips: QRCodeEncoder类设置一下生成相关的参数,而后 确定二维码里的内容,以及要保存的文件名和路径即可。
QrCodeHelper qrCodeHelper =new QrCodeHelper(); var qrCodeFilePath = qrCodeHelper.CreateCode_Simple("testString.");
using System;using System.Drawing;using System.IO;using System.Text;using ThoughtWorks.QRCode.Codec;namespace Common{ public class QrCodeHelper { public string CreateNr(int id) { return id.ToString(); } //程序路径 readonly string _currentPath = ConfigHelper.GetConfigString("QrCodePicPath"); public string CreateCode_Simple(int scale, string nr) { var qrCodeEncoder = new QRCodeEncoder { QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE, QRCodeScale = scale, QRCodeVersion = 0, QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M }; Image image = qrCodeEncoder.Encode(nr, Encoding.UTF8); //文件名 var fileName = DateTime.Now.ToString(@"yyyymmddhhmmssfff"); SaveImg(_currentPath, fileName + ".jpg", image); image.Dispose(); return fileName; } public string CreateCode_Simple(string nr) { return CreateCode_Simple(4, nr); } /// <summary> /// 保存图片 /// </summary> /// <param name="strPath">保存路径</param> /// <param name="fileName"></param> /// <param name="img">图片</param> public static void SaveImg(string strPath, string fileName, Image img) { //保存图片到目录 if (!Directory.Exists(strPath)) { //当前目录不存在,则创建 Directory.CreateDirectory(strPath); } img.Save(strPath + "/" + fileName, System.Drawing.Imaging.ImageFormat.Jpeg); } }}
3、文件下载
网站下载一般就是Response里写入文件,注意下文件的后缀,类型匹配就ok。
1 var response = HttpContext.Response; 2 response.Clear(); 3 response.Buffer = true; 4 response.Charset = "utf-8"; 5 var file1 = "xxx.dll"; 6 response.AppendHeader("Content-Disposition", "attachment;filename=" + file1); 7 response.ContentEncoding = System.Text.Encoding.UTF8; 8 response.ContentType = "application/x-msdownload"; 9 var pathTest = "D:/CommonTest";10 response.WriteFile(pathTest + "/" + file1);11 response.End();
4、压缩
这篇博文详细明了:.NET 4.5 中新提供的压缩类
5、导出excel
待~~
另注:以上用到的代码,差不多都是网上搜索而来,并非原创,工作匆忙,未能保存原链接。若是原作者觉得侵权,删之。
杂项收集,包括-发邮件、二维码生成、文件下载、压缩、导出excel
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。