2015-02-17 44 views
0
我使用Aspose.Email得到附件出Outlook电子邮件这样的使用

错误,然后加载到Datalogics

var mailMessage = Aspose.Email.Mail.MailMessage.Load(stream); 
var attachments = Aspose.Email.Outlook.MapiMessage.FromMailMessage(mailMessage).Attachments; 
var pdfAttachment = attachments.ToList()[attachmentIndexDesired]; 

然后,我加载附件为DataLogics这样的:

var pdfStream = new MemoryStream(pdfAttachment.BinaryData); 
var pdfDocument = new Datalogics.PDFL.Document(pdfStream); 

在这里,我得到以下异常:

PDF Library Error: File does not begin with '%PDF-'. Error number: 537001985

在任何地方我都找不到这个错误。

请注意,上面的初始流对象是* .msg Outlook文件,并且源自共享点SPFile。还要注意,如果流对象SPFile本身是一个PDF文件(而不是附加到* .msg文件),我可以将它加载到DataLogics中。

我知道错误是由DataLogics库引发的,但是有什么关于如何获取可以更改/改进的附件以防止发生此错误?

任何想法?

回答

0

因此,就在几分钟前,我试图从附件中获取BinaryData并将其转换为可读取的字符串,以便我可以直观地检查其内容。所以我做到了。

(new StreamReader(new MemoryStream(curAttachment.BinaryData))).ReadToEnd() 

当我这样做,它打印此错误:因为我用我的生产许可证

"Evaluation copy of Aspose.Email limits to extract only 3 attachments in the messages. Please contact [email protected] to purchase a valid license." 

的怪样,但无论哪种方式,我说干就干,从父删除一些附件*。 msg文件(它以前有4),并试图再次加载它。然后......噗......它开始工作。

似乎它应该抛出一个异常或相反,因为这将使这个问题更容易追踪。

+0

如果它是Aspose.Email产品的有效许可证,那么它不得破坏PDF附件(3个或更多)。请使用示例代码和MSG文件在Aspose论坛中报告。 – 2015-02-19 08:33:07