전자 메일 첨부 파일을 검색하고 아래 코드를 사용하여 파일 시스템의 특정 디렉토리에 저장하려고합니다. 나는 또한이 코드를 사용하여Openpop.NET 특정 폴더에 첨부물을 다시 검색
att.GetBodyasText()
을 시도
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
내가 원하는 폴더에 첨부 파일을 저장할 수 있어요. 그러나 파일을 여는 동안 오류가 발생합니다 ->파일이 올바르지 않습니다. 형식이 잘못되었거나 올바르게 디코딩되지 않았습니다.
저는 MIME 인코딩/디코딩을 처음 사용합니다. 이 문제를 해결할 수 있도록 도와 주시겠습니까?
정말 시급합니다.
답장을 보내 주셔서 감사합니다 .. 데이터베이스에서 메일을 가져오고 메일 첨부 파일을 검색하려고합니다. 데이터베이스 메일 내용은 varbinary 데이터 유형에 저장됩니다. 나는 그 메일 내용을 일부 처리를 위해 문자열로 변환하고 다시 첨부 파일을 얻기 위해 ASCIIEncoding.ASCII.getBytes()를 사용하여 byte()로 변환합니다. 또한 att.GetBodyAsText(), att.Body를 BinaryWriter의 params로 시도했습니다 . 그러나 여전히 오류는 동일합니다 !! 디코딩하지 제대로 열려 수출 된 PDF 문서 .. 제발 도와주세요. –
또한 한가지 더 .. 적절한 형식으로 PlainText 및 HTML MessagePart 받고 있어요 .. 나는 또한 att.SaveToFile (새로운 FileInfo ("파일 경로") 시도했다) 첨부 파일을 저장하려면 ..하지만 개선 없음 –
누가 데이터베이스에 이메일을 추가 했습니까? 전자 메일 (원시) _CANNOT_은 (는) 의미가 없기 때문에 문자열로 저장됩니다. 대신 BLOB (Binary Large OBject) 또는 원시 바이트 저장을 용이하게하는 것으로 저장해야합니다. ASCII.getBytes()를 사용하는 경우 전체 전자 메일이 ASCII로되어 있는지 확인해야합니다. 그렇지 않으면 잘못된 바이트가 생성되고 나중에 OpenPop에서 이러한 바이트를 찾아내어 잘못된 첨부 파일을 만드는 데 어려움을 겪습니다. 나는 이것이 당신의 주된 문제라고 생각합니다. 간단히 말하면 : OpenPop에 잘못된 인코딩으로 인해 모든 컨텐츠가 파괴되었을 수있는 이메일을 보내고 있습니다. – foens