LumiSoft.Net.POP3接受邮件出现接收不到附件问题

问题描述

我有一个是qq企业邮箱账号,用这个账户发邮件给我qq邮箱,我自己用lumisoft写的程序接收qq邮箱邮件,发现其他附件能接收,就是qq企业邮箱账号发送来的邮件附件接收不了,邮件其他信息到时有,就是没有附件。求大神帮忙。接收邮件的代码:using(LumiSoft.Net.POP3.Client.POP3_Clientpop3=newPOP3_Client()){try{//与pop3服务器建立连接pop3.Connect(strhost,intport,pop3usessl);//验证身份pop3.Login(strlogin,strpassword);//pop3.Authenticate(strlogin,strpassword,false);//获取邮件信息列表POP3_ClientMessageCollectioninfos=pop3.Messages;//POP3的的邮件下载通过POP3_Client对象的属性Messages对象进行,每个POP3_ClientMessage代表一份完整的邮件信息,一开始应该是只是获取一些简单的邮件信息(其中包括邮件的唯一标识UID),这样才能提高POP3协议的处理速度for(inti=pop3.Messages.Count;i>0;i--){POP3_ClientMessagemessage=infos[i-1];//为了进一步获取邮件头部信息,那么需要进行下面的转换Mail_Messagemime_header=Mail_Message.ParseFromByte(message.HeaderToByte());//获取发送者的邮件地址if(mime_header.From!=null){stringdisplayname=mime_header.From[0].DisplayName;//获取名字stringfrom=mime_header.From[0].Address;//DecodeString(mime_header.From[0].Address);if(!string.IsNullOrEmpty(displayname)){From=string.Format("{0}({1})",displayname,from);}else{From=string.Format("{0}",from);}}//收件人的邮件地址if(mime_header.To!=null){StringBuildersb=newStringBuilder();foreach(Mail_t_Mailboxrecipientinmime_header.To.Mailboxes){stringdisplayname=recipient.DisplayName;stringaddress=recipient.Address;if(!string.IsNullOrEmpty(displayname)){sb.AppendFormat("{0}({1});",displayname,address);}else{sb.AppendFormat("{0};",address);}}Senders=sb.ToString().Trim(';');}//获取抄送人的邮件地址if(mime_header.Cc!=null){StringBuildersb=newStringBuilder();foreach(Mail_t_Mailboxrecipientinmime_header.Cc.Mailboxes){stringdisplayname=recipient.DisplayName;stringaddress=recipient.Address;if(!string.IsNullOrEmpty(displayname)){sb.AppendFormat("{0}({1});",displayname,address);}else{sb.AppendFormat("{0};",address);}}stringCarboncopy=sb.ToString().Trim(';');}//获取这封邮件的内容byte[]messageBytes=message.MessageToByte();//要进行解析就需要进行格式转换Mail_Messagemime_message=Mail_Message.ParseFromByte(messageBytes);//寻找内容不为null的邮件内容if(mime_message==null)continue;stringBody=mime_message.BodyText;try{if(!string.IsNullOrEmpty(mime_message.BodyHtmlText)){Body=mime_message.BodyHtmlText;Response.Write(Body);this.label.Text=Body;}}catch{//屏蔽编码出现错误的问题,错误在BodyText存在而BodyHtmlText不存在的时候,访问BodyHtmlText会出现}//获取邮件中的附件foreach(MIME_Entityentityinmime_message.GetAttachments(true,true)){if(entity.ContentDisposition!=null&&entity.ContentDisposition.Param_FileName!=null){//存储附件stringfileName=entity.ContentDisposition.Param_FileName;stringpath="D:\text\"+fileName;//MIME_b_SinglepartBaseThisclassisbaseclassforsinglepartmediabodieslike:text,video,audio,image.MIME_b_SinglepartBasebyteObj=(MIME_b_SinglepartBase)entity.Body;//采用流复制的方法则下载一部分就写到文件中一部分,不是一次性全下载到内存中。不会照成附件过大可能会产生内存耗尽的问题StreamdecodedDataStream=byteObj.GetDataStream();using(FileStreamfs=newFileStream(path,FileMode.Create)){LumiSoft.Net.Net_Utils.StreamCopy(decodedDataStream,fs,4000);}}}}}catch(Exceptionex){Response.Write(ex.Message);//thrownewException(ex.Message);}}

测试了好久发现entity.ContentDisposition.Param_FileName为空,所以获取附件那部分代码没运行,这是怎么回事啊???拙计啊,着急啊!

解决方案

解决方案二:
lumisoft是什么东东呢?
解决方案三:
像这种明显是“半吊子”的问题(显然它能够收到部分信息),你应该找它的客服、技术支持人员去解决。csdn恐怕帮不了你。
解决方案四:
换这个方法试试:foreach(MIME_Entityentityinmime.Attachments){if(entity.ContentDisposition==null){continue;}stringfilename=entity.ContentDisposition.Param_FileName;//获取文件名称
解决方案五:
http://www.cnblogs.com/willonline/archive/2009/06/21/1507841.html这里有接收附件的代码12//解析从Pop3服务器发送过来的邮件信息13Mimemime=Mime.Parse(bytes);14//是否有附件15boolisatt=mime.Attachments.Count()==0?false:true;16if(isatt)17{18Randomran=newRandom();19foreach(MimeEntitymeinmime.Attachments)20{21//附件文件名22stringattname=me.ContentType_Name;//附件名称……
解决方案六:
楼主的问题解决了吗?小弟也遇到和楼主一样的问题了,网易163邮箱测试,我用.System.Net.Mail进行发送带附件的邮件,163邮箱收到是正常的;用LumiSoft.Net.POP3.Client进行收取,却收不下来附件,楼主如果解决了请分享一下方法哦
解决方案七:
参数不全吗
解决方案八:
晕,是去年的问题啊?看到了就回复一下吧。这里就是用qq邮箱做测试并成功下载邮件附件的。
解决方案九:
我用hotmail发的邮件,附件entity.ContentDisposition.Param_FileName为Null但是entity.ContentDescription.ToString()是附件名称,可以试试看!!!

时间: 2024-09-20 01:14:35

LumiSoft.Net.POP3接受邮件出现接收不到附件问题的相关文章

C#通过POP3获取邮件的代码(正文和附件)_实用技巧

使用方法: 获取第1封邮件 复制代码 代码如下: Zgke.Net.POP3 _Popt = new Zgke.Net.POP3("192.168.0.1", 110); DataTable _Mail = _Popt.GetMail("zk", "zk", 1); 返回DataTable 数据内容为 Type为类型 Text为文字 如果是附件 为byte[] Name 如果是附件里存放的为文件名  下面是全部的类 复制代码 代码如下: usin

postfix 邮件系统中dovecot的pop3 服务客户端无法接受邮件的问题

最近遇到了postfix 邮件系统中dovecot的pop3 服务客户端无法接受邮件的问题,在邮件的日志中是这样记录的 如下图所示: 报告不能打开邮箱,内部错误. 使用vi编辑器打开 邮箱查看vi /var/mail/info  看到第一行是空的,删除这个空行,保存之后再尝试收取邮件,结果顺利的收下邮件. 看了一些别人的介绍,可能的原因是dovecot的版本过低,升级之后就不会再出现的. 由于当前的业务关系,暂时不能升级,等到业务低峰期的时候在考虑升级. 本文出自 "影子骑士" 博客,

LumiSoft组件,imap、pop3收取邮件

问题描述 LumiSoft组件,imap.pop3收取邮件 基于LumiSoft组件,imap.pop3收取邮件时,邮件正文的内嵌图片如何获取,知道的朋友给个提示,困扰很久了!谢谢!

azure-Azure 怎么接受邮件啊

问题描述 Azure 怎么接受邮件啊 我想做个邮件服务器host在Azure上,但是我看了这个回复之后只能发送邮件, https://social.msdn.microsoft.com/Forums/zh-CN/f699e92e-2548-4b3b-ab32-84398884405e/azure163?forum=windowsazurezhchs 我怎么才能实现接收邮件啊? 期待大神帮助!! 解决方案 其实不用搭建邮件服务器,直接用第三方的(比如 gmail或者163)就可以,你的 azure

100分求jmail接受邮件的时候让他弹出可以另存为的窗口

问题描述 求jmail接受邮件的时候让他弹出可以另存为的窗口 解决方案 解决方案二:顶一下解决方案三:该回复于2007-12-04 11:18:11被版主删除解决方案四:C/S下代码:SaveFileDialogfileDialog=newSaveFileDialog();fileDialog.Filter="数据文件(*.xls)|*.xls";//另存为Excle文件fileDialog.RestoreDirectory=true;if(fileDialog.ShowDialog(

openpop接受邮件的问题

问题描述 openpop接受邮件接受邮件的时候出现这个异常:Serverdidnotacceptusercredentials我都把邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务设置改了,为什么还报错啊求指教popClient.Authenticate(emailAddr,emailPwd);就是在这一句报的错密码和地址都是对的啊

ssl-python:POPlib模块写一个接受邮件的程序,显示登陆失败,请使用安全连接SSL

问题描述 python:POPlib模块写一个接受邮件的程序,显示登陆失败,请使用安全连接SSL 解决方案 接收方是qq邮箱..... 解决方案二: 在qq邮箱里要配置一下,使用ssl连接

LumiSoft imap方式 收取邮件列表不返回邮件数据 协议层接口Fetch方法被中断

问题描述 哪位朋友对LumiSoft比较熟悉,紧急请求分析一下这个问题,不知道大家有没有碰见过.使用LumiSoft开发了一个邮件客户端收取邮件服务器(hmailserver搭建)邮件.应用过程中发现了一个问题,有时候邮件列表不加载数据,但是用Foxmail连邮件服务器可以收取到数据,经过排查发现个别邮件存在问题删除掉就可以了.进一步跟踪代码发现:个别邮件会导致Fetch方法中断,比如有三封邮件如果第二封是异常邮件,第一封邮件可以执行回调返回数据,到第二封邮件请求的时候就出问题了,请求中断未返回

C#引用LumiSoft.Net.dll搜索邮件,报错“00003 BAD Missing or invalid argument to SEARCH”如何解决

问题描述 C#引用LumiSoft.Net.dll搜索邮件,报错"00003BADMissingorinvalidargumenttoSEARCH"如何解决部分代码如下:IMAP_Clientclnt=newIMAP_Client();clnt.Connect(_MailServer,_MailPort,true);clnt.Login(_Username,_Password);clnt.SelectFolder("Inbox");int[]messageUIDs=