当前位置: 首页 > news >正文

网站推广常用的方法公众号怎么开通直播

网站推广常用的方法,公众号怎么开通直播,重庆seo点击工具,图片设计网站免费序言#xff1a; 网上找了很多关于.Net如何访问电子邮箱的方法#xff0c;但是大多数都达不到想要的需求#xff0c;只有一些 收发邮件。因此 花了很大功夫去看 LumiSoft.Net.dll 的源码#xff0c;总算做出自己想要的结果了#xff0c;果然学习诗人进步。 介绍#xff…序言 网上找了很多关于.Net如何访问电子邮箱的方法但是大多数都达不到想要的需求只有一些 收发邮件。因此 花了很大功夫去看 LumiSoft.Net.dll 的源码总算做出自己想要的结果了果然学习诗人进步。 介绍 LumiSoft.Net.dll 是 C# 下的 免费开源 的关于网络 编程 的 一个类库功能强大包含FTP、FTP.Client、ICMP、IMAP、POP3、SMTP如下图 需求 1、实现访问电子邮箱         2、获取具体的某个文件夹下的邮箱得到邮件的标题         3、解析邮件的附件并数据导入到数据库         4、返回具体的邮件报错信息发给相关人         5、将导入数据库成功的邮件移入到另一个文件夹失败的邮件 移入到另一个文件夹 实现步骤 一、定义需要用到的信息变量 private string server 服务器地址; private int port 端口号; private bool useSsl true;//是否跳过SSL验证 private string username 邮件帐户; private string password 邮箱密码; 二、访问电子邮箱 IMAP_Client client new IMAP_Client(); useSsl false; client.Connect(server, port, useSsl); //登录获取授权操作 client.Login(username, password); 三、获取各个邮箱的概要信息 //获取各个邮箱目录的概要信息 client.GetFolders(null).ToList().ForEach(f {fileNameStrs fileNameStrs f.FolderName;var list client.FolderStatus(f.FolderName).ToList();foreach (var item in list){emailInfo emailInfo 总数: item.MessagesCount ,未读: item.MessagesCount ,最近 item.UnseenCount;} }); //选择邮箱下的文件夹这里面有自己需要的邮件 client.SelectFolder(邮箱下的文件夹); //取出收件箱 var folder client.SelectedFolder; //邮件总数 var MessagesCount folder.MessagesCount; //未读邮件总数 var RecentMessagesCount folder.RecentMessagesCount; 四、解析某个文件夹下的邮件信息并导入数据库移动相关邮件 //代表该文件夹下有邮件存在 if (MessagesCount 0) {//首先确定取第x到第n封邮件1:*表示第1封到最后一封var seqSet IMAP_t_SeqSet.Parse(1:*);var items new IMAP_t_Fetch_i[]{new IMAP_t_Fetch_i_Envelope(), //邮件的标题、正文等信息new IMAP_t_Fetch_i_Uid(), //返回邮件的UID号UID号是唯一标识邮件的一个号码new IMAP_t_Fetch_i_Flags(), //此邮件的标志应该是已读未读标志new IMAP_t_Fetch_i_InternalDate(),//貌似是收到的日期new IMAP_t_Fetch_i_Rfc822() //Rfc822是标准的邮件数据流可以通过Lumisoft.Net.Mail.Mail_Message对象解析出邮件的所有信息};//Fetch 第一个参数false时seqSet有效client.Fetch(false, seqSet, items, (s, e) {var isSuccees true;//处理邮件的匿名函数内容var email e.Value as IMAP_r_u_Fetch;if (email ! null email.Rfc822 ! null){email.Rfc822.Stream.Position 0;var mime_message Mail_Message.ParseFromStream(email.Rfc822.Stream);email.Rfc822.Stream.Close();//每封Email会有一个唯一的Id,检查这个Id是否存在就可以知道以前有没有接收过这封邮件var UID email.UID.UID;//可能出现乱码问题通过函数进行转换 //DecodeString(mime_header.Subject);var emailTitle mime_message.Subject;//邮件标题var emailFrom mime_message.From;//邮件发送人var emailTo mime_message.To;//邮件抄送人//循环每个附件并判断附件的后缀名是否满足要求var file mime_message.GetAttachments(true, true);foreach (var entity in file){if (entity.ContentDescription.IndexOf(.xlsx) 0 || entity.ContentDescription.IndexOf(.xls) 0){errorMessage 标题为 emailTitle 的邮件,附件格式错误请检查邮件附件必须为(.xlsx/.xls)文件后缀格式;isSuccees false;}else{try{#region 解析附件,得到 单据信息string fileName ;//判断是普通附件还是嵌入的内容附件//if (entity.ContentDisposition ! null entity.ContentDisposition.DispositionType MIME_DispositionTypes.Attachment)//邮件的附件名称fileName entity.ContentDisposition.Param_FileName;//代表文件下载到本地//string localInbox string.Format({0}\\soEmail, Directory.GetCurrentDirectory());If the folder is not existed, create it.//if (!Directory.Exists(localInbox))//{// Directory.CreateDirectory(localInbox);//}//string fullPath string.Format({0}\\{1}, localInbox, fileName);//直接解析邮件里面的附件信息var byteObj entity.Body as MIME_b_SinglepartBase;var stream byteObj.GetDataStream();IWorkbook workbook null;// 2007版本if (fileName.IndexOf(.xlsx) 0){workbook new XSSFWorkbook(stream);}// 2003版本else if (fileName.IndexOf(.xls) 0){workbook new HSSFWorkbook(stream);}var count workbook.NumberOfSheets;ISheet sheet null;for (int i 0; i count; i){//获取sheet表sheet workbook.GetSheetAt(i);//这块根据自己的需求来写#region 计算1-50行中 第一列包含第一个字符串 aaa 的行索引 index int index 0;for (int ro 0; ro 50; ro){IRow rows sheet.GetRow(ro);if (rows.Cells ! null rows.Cells.Count 0 rows.GetCell(0) ! null){var cellValue GetValueByType(rows.GetCell(0));if (cellValue.ToLower().Contains(aaa)){index ro;break;}}}#endregionif (index 0)//excel附件找不到 aaa 的列名信息{errorMessage 标题为 emailTitle 的邮件,在附件信息中找不到aaa的列名信息;isSuccees false;break;}#region 获取 需要保存数据库的数据var cellIndex index 1;//对应Excel中 开始获取aaa数据的行索引var code ;//codevar name ;//名称for (int ro cellIndex; ro 1000; ro){IRow rows sheet.GetRow(ro);//判断是否为合并单元格if (rows.GetCell(0).IsMergedCell){//读取合并单元格的值var cell MergedCell(rows.GetCell(0));code GetValueByType(cell);}else{code GetValueByType(rows.GetCell(0));}//判断是否为合并单元格if (rows.GetCell(1).IsMergedCell){//读取合并单元格的值var cell MergedCell(rows.GetCell(1));name GetValueByType(cell);}else{name GetValueByType(rows.GetCell(1));}//如果 code和name都为空则直接跳出循环if (string.IsNullOrEmpty(code) string.IsNullOrEmpty(name)){//第一行if (ro cellIndex){errorMessage 标题为 emailTitle 的邮件,在附件信息中第 cellIndex 行的数据信息全部为必填,不能为空,请检查邮件附件信息;;isSuccees false;}break;}//Excel中第cellIndex行,第1-2列的字段不能为空值if (!string.IsNullOrEmpty(code) !string.IsNullOrEmpty(name)){//将解析后的数据插入是list中Model model new Model();model.code code;model.name name;list.Add(model);}if (list ! null list.Count 0){result.Succeeded true;result.Data list.Count 条数据插入成功, errorMessage;//执行插入数据库}}#endregion}sheet null;workbook null;stream.Close();stream.Dispose();#endregion}catch (Exception ex){errorMessage 标题为 emailTitle , ex.Message ex.InnerException;isSuccees false;break;}}}if (isSuccees){trueUid.Add(UID);//表示 每封邮件成功解析}else{flaseUid.Add(UID);//表示 邮件存在错误信息}}});foreach (var item in trueUid){//将成功的邮件移动到 另一个文件夹var value item : item ;var setIndex IMAP_t_SeqSet.Parse(value);client.MoveMessages(true, setIndex, TestEmailComplete, true);}foreach (var item in flaseUid){//将失败的邮件移动到 另一个文件夹var value item : item ;var setIndex IMAP_t_SeqSet.Parse(value);client.MoveMessages(true, setIndex, TestEmailError, true);}client.Dispose(); } else {errorMessage 操作成功; } 五、邮件移动方法 IMAP_t_SeqSet.Parse(value)方法 根据uid获取到第几封邮件每一封邮件都有唯一的uid格式 1:3代表1 foreach (var item in trueUid){//将成功的邮件移动到 另一个文件夹var value item : item ;var setIndex IMAP_t_SeqSet.Parse(value);client.MoveMessages(true, setIndex, TestEmailComplete, true);}foreach (var item in flaseUid){//将失败的邮件移动到 另一个文件夹var value item : item ;var setIndex IMAP_t_SeqSet.Parse(value);client.MoveMessages(true, setIndex, TestEmailError, true);}
http://www.huolong8.cn/news/385351/

相关文章:

  • 网站制作主题思路wordpress只能通过本机登录
  • asp网站打开很慢的原因定制公交app
  • 在印尼用哪个网站做电商ie域名
  • 石家庄做网站电话网站建设的技术风险分析与规避
  • 网站建设和网站设计一样吗页面设计需求需要做那些方面
  • 如何自己做网站发布到服务器上面如何在网站上做关键词
  • 网站页面改版网站推广如何指定关键词优化
  • thinkphp企业网站模板下载百度怎么自己做网站吗
  • 为什么要给大夫做网站网页设计视频代码
  • 诸城做网站的公司免费网站大全推荐
  • 陶瓷网站模板制作简单的网站
  • 网站大学报名官网入口网站建设就问山东聚搜网络f
  • 制作网站的公司注册资本要多少网站建立需要什么
  • 网站开发价格明细有无广告销售版本"有广告免费无广告收费"网站
  • 苏州建设监督网站漫画网站源码
  • 做一个中英文网站多少钱网站站点是什么?如何创建站点?
  • 全景图网站怎么做域名注册查询工具
  • 公司做网站主机是什么用途wordpress ydg theme
  • 怎么自己做购物网站网站设计制作ihanshi
  • 凡科网怎么建网站织梦模板栏目页文件在哪
  • 罗湖网站制作多少钱网站怎么做登录界面
  • 有哪些做海报好的网站wordpress多用户小程序商城
  • 做ui什么图库网站好呀网络服务器搭建与配置
  • 怎么制作网站步骤wordpress分享到微信二维码
  • 中卫网站设计厂家装修设计灵感网站
  • 网站建设开发心得汉中市网站建设公司
  • 免费cms网站静态手机网站基础
  • 一个在线做笔记的网站买网站服务器吗
  • 岳阳网站网站建设哈什么网一个网站做ppt
  • 怎样让网站优化的方式网站开发各个文件