如何解决无法读取我已使用 ImapX
我有读取电子邮件附件的代码,嵌入的和未嵌入的,但如果在同一封电子邮件中同时拥有这两个附件,则只能读取嵌入的附件。
任何帮助将不胜感激..
我的代码。
{
string strFiltro = String.Format("SINCE {0}-{1}-{2} BEFORE {3}-{4}-{5} {6} ",strDiaInicial,strMesInicial,strAnioInicial,strDiaFinal,strMesFinal,strAnioFinal,(this.MensajesNoLeidos == true ? "UNSEEN" : "ALL"));
IEnumerable<Message> mensajesFiltrados = folder.Search(strFiltro/*MessageFetchMode.Full,10*/);
mensajesFiltrados = mensajesFiltrados.Where(x => x.Attachments.Count() > 0 || x.EmbeddedResources.Count() > 0);
foreach (Message message in mensajesFiltrados)
{
if (message.Attachments.Count() > 0)
{
ArchivosAdjuntosFiltrados = message.Attachments.Where(x => x.ContentType.Name.ToLower().Contains(".pdf")) x.ContentType.Name.ToLower().Contains(".xml"));
resultado[0] = resultado[0] + ArchivosAdjuntosFiltrados.Count();
}
else
{
if (message.EmbeddedResources.Count() > 0)
{
//never get Embedded pdf or xml files ArchivosAdjuntosFiltrados = message.EmbeddedResources.Where(x => x.ContentType.Name.Contains(".pdf") || x.ContentType.Name.Contains(".xml"));
}
}
}
foreach (Attachment atachemtn in ArchivosAdjuntosFiltrados)
{
strNombreArchivo = atachemtn.FileName;
String attachData = atachemtn.GetTextData().Replace('-','+'); attachData = attachData.Replace('_','/');
if (intPosicion > 0)
{
attachData = attachData.Substring(0,attachData.Length - 31);
}
if (strNombreArchivo != String.Empty)
{
if (File.Exists(Path.Combine(strRutaDescargas,atachemtn.FileName)) == true)
{
if (pBlnSobreescribirArchivos == true)
{
byte[] data = Convert.FromBase64String(attachData);
File.WriteAllBytes(Path.Combine(this.strRutaDescargas,strNombreArchivo),data);
}
}
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。