我正在嘗試使用下面的代碼檢索電子郵件附件並將其保存到文件系統中的特定目錄。Openpop.NET將附件重新連接到特定文件夾
Dim objMail As Message = New Message(Encoding.ASCII.GetBytes(strMessage))
For Each att In objMail.FindAllAttachments()
Dim Stream as FileStream = New FileStream("D:\XX\" & att.FileName.ToString(),
FileMode.Create)
Dim BinaryStream As New BinaryWriter(Stream)
BinaryStream.Write(BitConverter.ToString(att.Body))
BinaryStream.Close()
Next
我也曾嘗試att.GetBodyasText()
使用此代碼我能夠保存附件文件所需的文件夾中。但在打開文件時,出現錯誤 - >文件格式不正確或解碼不正確。
我是新來的MIME編碼/解碼。你能幫我解決這個問題嗎?
它真的很緊急。
感謝foens的快速響應.. 我想從數據庫和retrive郵件附件獲取郵件。 數據庫郵件內容保存在varbinary數據類型中。我得到這些郵件內容將其轉換爲字符串進行一些處理,並再次轉換爲byte()使用ASCIIEncoding.ASCII.getBytes()爲附件重試。此外,我已經嘗試att.GetBodyAsText(),att.Body作爲參數爲BinaryWriter 。但仍然錯誤是一樣的!沒有解碼正確的時候打開導出pdf文檔..請幫助.. –
還有一件事..我得到PlainText和Html MessagePart在適當的格式..我也試過att.SaveToFile(新的FileInfo(「文件路徑」))保存附件..但沒有改進 –
誰將電子郵件添加到數據庫?電子郵件(原始)_CANNOT_被存儲爲字符串,因爲它沒有任何意義。它們應該存儲爲BLOB(Binary Large OBject),或者用於存儲原始字節的內容。如果使用ASCII.getBytes(),則必須確保整個電子郵件都是ASCII格式的,否則您將生成錯誤的字節 - 以後OpenPop將難以計算出這些字節(因此會產生錯誤的附件)。我認爲這是你的主要問題。簡單地說:您給OpenPop一封電子郵件,其中所有內容可能已被錯誤的編碼摧毀。 – foens