Le 30/11/2013 13:14, bill-lancaster a écrit : > Some further information. > > If I download emails containing pdf files using .Message.ToString() and save > the email to file then try to decode the attachment with-: > > Dim hMimeMessage As MimeMessage > Dim hMimePart As MimePart > Dim sTemp As String > Dialog.Title = "Select a text file" > If Dialog.OpenFile() Then Return > sTemp = File.Load(Dialog.Path) > hMimeMessage = New MimeMessage(sTemp) > For Each hMimePart In hMimeMessage.Part > If hMimePart.Disposition = "attachment" Then > File.Save(User.Home &/ "New Folder" &/ hMimePart.FileName, > Mime.Decode(sTemp, hMimePart.ContentEncoding)) > Endif > Next > > The saved file is unreadable. > kmail however can open the saved email and displays the attachment OK. > > BTW I'm using Gambas 3.5 >
You are not doing the right thing: Mime.Decode() is just a decoding routine (like UnBase64$). You don't have to use it, all is done automatically by the "Data" property of the message part. Moreover, a MIME message is a recursive structure. Usually mail clients hides that by displaying the message contents linearly. So you must parse the parts recursively until you find your attachment. Here is an example: --8<-------------------------------------------------------------------- ' Gambas module Private $iLevel As Integer Public Sub Main() Dim hMessage As New MimeMessage ' MyPopMessageData is retrieved (for example) with the ' Pop3Client[].Text property hMessage = New MimeMessage(File.Load(MyPopMessageData)) PrintPart(hMessage.Part) End Public Sub PrintPart(hPart As MimePart) Dim hChild As MimePart Print String$($iLevel, "| "); "| " Print String$($iLevel, "| "); "+-"; If(hPart.Count, "+", "-");; Print hPart;; hPart.ContentType;; hPart.FileName Inc $iLevel For Each hChild In hPart PrintPart(hChild) Next Dec $iLevel If hPart.ContentType = "application/pdf" Then ' I found the PDF attachment! File.Save("~/found-it.pdf", hPart.Data) Endif End --8<-------------------------------------------------------------------- Regards, -- Benoît Minisini ------------------------------------------------------------------------------ Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user