Question:
Can not get the attachment out of the email I can read the attachment from my email reader so I know that there is an attachment
This happens to at least 10 percent of emails with attachments
Imap.KeepSessionLog = true; Imap.VerboseLogging = true; Imap.AutoDownloadAttachments = false; int _numAttach = Imap.GetMailNumAttach(fullEmail); //Returns 1 int _attachSize = Imap.GetMailAttachSize(fullEmail, 0); //Returns 169898 string _fileName = Imap.GetMailAttachFilename(fullEmail, 0); //Returns null bool attachmentSuccess = fullEmail.SaveAllAttachments(_attachmentFolder); //Returns true but no file name and no error bool success1 = Imap.FetchAttachment(fullEmail, 0, _attachmentFolder); //Returns false
If I change Imap.AutoDownloadAttachments = true; Imap.GetMailNumAttach(fullEmail) returns 0 With Imap.AutoDownloadAttachments = false I can at least call Imap.FetchAttachmentString and see the attachment.
With an email that works Imap.FetchAttachmentString it only gets the attachments with an email that does not work FetchAttachmentString returns this
From: <valid email=""> To: <valid email=""> Subject: Important Document(s) from REMOVED NAME Date: Wed, 5 Oct 2016 18:25:35 -0400 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==U2FsYW1hdE9EaW9z-57f57ddf0000a595==" --==U2FsYW1hdE9EaW9z-57f57ddf0000a595== Content-Type: application/pdf; name="image2016-10-05-182534.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="image2016-10-05-182534.pdf" Content-Description: image2016-10-05-182534.pdf JVBERi0xLjUKJYCAgIAKMTEgMCBvYmoKPDwgL1R5cGUgL1BhZ2UKIC9QYXJlbnQgMyAwIFIK L1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSV0v LOTS OF LINES REMOVED byAxIDAgUgovUm9vdCAyIDAgUgovSUQgWyA8YzczNWQ0OWY2ZDNlN2ZkYWExNWZkODMxY2Mx NmMwYjk+CjxjNzM1ZDQ5ZjZkM2U3ZmRhYTE1ZmQ4MzFjYzE2YzBiOT4gXQo+PgpzdGFydHhy ZWYKMTIzMTEwCiUlRU9GCg== --==U2FsYW1hdE9EaW9z-57f57ddf0000a595==--
with the following LastErrorText The folder does exist
ChilkatLog: FetchAttachment(328ms): DllDate: Sep 18 2016 ChilkatVersion: 9.5.0.59 UnlockPrefix: JHNSER.CB10917 Architecture: Little Endian; 64-bit Language: .NET 4.6 / x64 VerboseLogging: 1 attachIndex: 0 saveToPath: D:\Data\Attachments\3\inbox\89d53704-5a42-e226-a6b8-8f9d32421521\ isExistingDirectory: 1 uid: 136 bIsUid: 1 attachmentFilename: attachmentMsgPart: 2 attachmentEncoding: 7BIT attachmentSize: 169898 fetchAttachment(328ms): fetchCommand: aaah UID FETCH 136 (BODY[2]) ImapCmdSent: aaah UID FETCH 136 (BODY[2]) sendCommand: Elapsed time: 0 millisec getFetchAttachmentResponse(328ms): getPartialResponse(125ms): stopString: BODY[ sbLine: * 136 FETCH (UID 136 BODY[2] {169898} ImapCmdResp: * 136 FETCH (UID 136 BODY[2] {169898} Found stop string. --getPartialResponse receiveImapBytes: Elapsed time: 203 millisec ImapCmdResp: (169898 bytes) finalParenLine: ) getPartialResponse: sbLine: aaah OK UID FETCH completed Received complete response to final tag line. ImapCmdResp: aaah OK UID FETCH completed --getPartialResponse finalResponsePart: aaah OK UID FETCH completed bReceivedToFinalTagLine: 1 bOk: 1 success: 1 --getFetchAttachmentResponse --fetchAttachment decodedSize: 169898 savingToFile: D:\Data\Attachments\3\inbox\89d53704-5a42-e226-a6b8-8f9d32421521\ WindowsError: The system cannot find the path specified. WindowsErrorCode: 0x3 win32CreateFileAnsi failed. localFilePath: D:\Data\Attachments\3\inbox\89d53704-5a42-e226-a6b8-8f9d32421521\ currentWorkingDirectory: D:\Projects\SurgeOne\SurgeOne.EmailProcessor\SurgeOne.EmailProcessor\bin\Debug localWindowsFilePath: D:\Data\Attachments\3\inbox\89d53704-5a42-e226-a6b8-8f9d32421521\ filename: D:\Data\Attachments\3\inbox\89d53704-5a42-e226-a6b8-8f9d32421521\ Failed to write complete file (7) Failed. --FetchAttachment --ChilkatLog
Other Last Error Text Messages Session Log
----IMAP REQUEST---- aaad UID FETCH 136 RFC822.SIZE ----IMAP RESPONSE---- * 136 FETCH (UID 136 RFC822.SIZE 176779) aaad OK UID FETCH completed ----IMAP REQUEST---- aaae UID FETCH 136 (UID BODYSTRUCTURE) ----IMAP RESPONSE---- * 136 FETCH (UID 136 BODYSTRUCTURE ((("TEXT" "plain" ("charset" "US-ASCII") NIL NIL "7BIT" 1361 3 NIL ("inline" NIL) NIL NIL)("TEXT" "html" ("charset" "US-ASCII") NIL NIL "7BIT" 1413 9 NIL ("inline" NIL) NIL NIL) "alternative" ("boundary" "=====mte=boundary=number=1491=====") ("inline" NIL) NIL NIL)("MESSAGE" "RFC822" NIL NIL NIL "7BIT" 169898 ("Wed, 5 Oct 2016 18:25:35 -0400" "Important Document(s) from Lowe's" ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "daniel" "windorsolutions.com")) NIL NIL NIL NIL) (("APPLICATION" "pdf" ("name" "image2016-10-05-182534.pdf") NIL "image2016-10-05-182534.pdf" "BASE64" 169338 NIL ("attachment" ("filename" "image2016-10-05-182534.pdf")) NIL NIL) "mixed" ("boundary" "==U2FsYW1hdE9EaW9z-57f57ddf0000a595==") NIL NIL NIL) 2305 NIL ("attachment" NIL) NIL NIL) "mixed" ("boundary" "=====mte=boundary=number=1490=====") NIL NIL NIL)) aaae OK UID FETCH completed ----IMAP REQUEST---- aaaf UID FETCH 136 (FLAGS INTERNALDATE BODY[HEADER] BODY[1.MIME] BODY[1]) ----IMAP RESPONSE---- * 136 FETCH (UID 136 INTERNALDATE "05-Oct-2016 22:25:41 +0000" FLAGS (\Seen) BODY[HEADER] {3464} (3464 bytes) BODY[1.MIME] {115} (115 bytes) BODY[1] {3115} (3115 bytes) ) aaaf OK UID FETCH completed ----IMAP REQUEST---- aaag UID FETCH 136 (BODY[2]) ----IMAP RESPONSE---- * 136 FETCH (UID 136 BODY[2] {169898} (169898 bytes) aaag OK UID FETCH completed ----IMAP REQUEST---- aaah UID FETCH 136 (BODY[2]) ----IMAP RESPONSE---- * 136 FETCH (UID 136 BODY[2] {169898} (169898 bytes) aaah OK UID FETCH completed ----IMAP REQUEST---- aaai UID FETCH 136 RFC822.SIZE ----IMAP RESPONSE---- * 136 FETCH (UID 136 RFC822.SIZE 176779) aaai OK UID FETCH completed ----IMAP REQUEST---- aaaj UID FETCH 136 (UID BODYSTRUCTURE) ----IMAP RESPONSE---- * 136 FETCH (UID 136 BODYSTRUCTURE ((("TEXT" "plain" ("charset" "US-ASCII") NIL NIL "7BIT" 1361 3 NIL ("inline" NIL) NIL NIL)("TEXT" "html" ("charset" "US-ASCII") NIL NIL "7BIT" 1413 9 NIL ("inline" NIL) NIL NIL) "alternative" ("boundary" "=====mte=boundary=number=1491=====") ("inline" NIL) NIL NIL)("MESSAGE" "RFC822" NIL NIL NIL "7BIT" 169898 ("Wed, 5 Oct 2016 18:25:35 -0400" "Important Document(s) from Lowe's" ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "daniel" "windorsolutions.com")) NIL NIL NIL NIL) (("APPLICATION" "pdf" ("name" "image2016-10-05-182534.pdf") NIL "image2016-10-05-182534.pdf" "BASE64" 169338 NIL ("attachment" ("filename" "image2016-10-05-182534.pdf")) NIL NIL) "mixed" ("boundary" "==U2FsYW1hdE9EaW9z-57f57ddf0000a595==") NIL NIL NIL) 2305 NIL ("attachment" NIL) NIL NIL) "mixed" ("boundary" "=====mte=boundary=number=1490=====") NIL NIL NIL)) aaaj OK UID FETCH completed ----IMAP REQUEST---- aaak UID FETCH 136 (FLAGS INTERNALDATE BODY[HEADER] BODY[1.MIME] BODY[1]) ----IMAP RESPONSE---- * 136 FETCH (UID 136 INTERNALDATE "05-Oct-2016 22:25:41 +0000" FLAGS (\Seen) BODY[HEADER] {3464} (3464 bytes) BODY[1.MIME] {115} (115 bytes) BODY[1] {3115} (3115 bytes) ) aaak OK UID FETCH completed
First check to see if the problem remains when using the latest version of Chilkat (v9.5.0.64).
If so, then I need two pieces of information:
1) The IMAP session log for the email fetched with AutoDownloadAttachments = false.
2) The verbose LastErrorText for the method call that fetches the email without attachments.
Also.. In this LastErrorText for the FetchAttachment method call:
ChilkatLog:
FetchAttachment(328ms):
DllDate: Sep 18 2016
ChilkatVersion: 9.5.0.59
UnlockPrefix: JHNSER.CB10917
Architecture: Little Endian; 64-bit
Language: .NET 4.6 / x64
VerboseLogging: 1
attachIndex: 0
saveToPath: D:\Data\Attachments\3\inbox\89d53704-5a42-e226-a6b8-8f9d32421521\
isExistingDirectory: 1
uid: 136
bIsUid: 1
attachmentFilename:
attachmentMsgPart: 2
attachmentEncoding: 7BIT
The "attachmentFilename" is empty. This means that either (1) no attachment filename was provided in the IMAP response when the email was fetched without headers, or (2) the attachment filename was present, but somehow it was not found when parsing the IMAP response.
If the IMAP server is not providing the attachment filename when downloading w/out attachments, then the app would need to specify a filename (somehow) or Chilkat would need to auto-generate a filename (probably not a good idea).
I am using the latest version of the application
Email that fails
Imap.SessionLog ----IMAP REQUEST---- aaad UID FETCH 136 RFC822.SIZE ----IMAP RESPONSE---- * 136 FETCH (UID 136 RFC822.SIZE 176779) aaad OK UID FETCH completed ----IMAP REQUEST---- aaae UID FETCH 136 (UID BODYSTRUCTURE) ----IMAP RESPONSE---- * 136 FETCH (UID 136 BODYSTRUCTURE ((("TEXT" "plain" ("charset" "US-ASCII") NIL NIL "7BIT" 1361 3 NIL ("inline" NIL) NIL NIL)("TEXT" "html" ("charset" "US-ASCII") NIL NIL "7BIT" 1413 9 NIL ("inline" NIL) NIL NIL) "alternative" ("boundary" "=====mte=boundary=number=1491=====") ("inline" NIL) NIL NIL)("MESSAGE" "RFC822" NIL NIL NIL "7BIT" 169898 ("Wed, 5 Oct 2016 18:25:35 -0400" "Important Document(s) from Lowe's" ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "daniel" "windorsolutions.com")) NIL NIL NIL NIL) (("APPLICATION" "pdf" ("name" "image2016-10-05-182534.pdf") NIL "image2016-10-05-182534.pdf" "BASE64" 169338 NIL ("attachment" ("filename" "image2016-10-05-182534.pdf")) NIL NIL) "mixed" ("boundary" "==U2FsYW1hdE9EaW9z-57f57ddf0000a595==") NIL NIL NIL) 2305 NIL ("attachment" NIL) NIL NIL) "mixed" ("boundary" "=====mte=boundary=number=1490=====") NIL NIL NIL)) aaae OK UID FETCH completed ----IMAP REQUEST---- aaaf UID FETCH 136 (FLAGS INTERNALDATE BODY[HEADER] BODY[1.MIME] BODY[1]) ----IMAP RESPONSE---- * 136 FETCH (UID 136 INTERNALDATE "05-Oct-2016 22:25:41 +0000" FLAGS (\Seen) BODY[HEADER] {3464} (3464 bytes) BODY[1.MIME] {115} (115 bytes) BODY[1] {3115} (3115 bytes) ) aaaf OK UID FETCH completed int _numAttach = Imap.GetMailNumAttach(fullEmail); //1 int _attachSize = Imap.GetMailAttachSize(fullEmail, 0); //169898 string _fileName = Imap.GetMailAttachFilename(fullEmail, 0); //null
If I call bool attachmentSuccess = fullEmail.SaveAllAttachments(_attachmentFolder); //Returns success -- but no file is saved
This is LastErrorText
ChilkatLog: GetMailAttachFilename: DllDate: Nov 12 2016 ChilkatVersion: 9.5.0.64 UnlockPrefix: JHNSER.CB10917 Architecture: Little Endian; 64-bit Language: .NET 4.6 / x64 VerboseLogging: 1 ckx-imap-attach-nm-1 header is not present or empty index: 0 Attachment index out of range. attachmentIndex: 0 numAttachments: 0 Failed. --GetMailAttachFilename --ChilkatLog
If I call string _test = Imap.FetchAttachmentString(fullEmail, 0, "utf-8");
This is LastErrorText ChilkatLog: FetchAttachmentString(312ms): DllDate: Nov 12 2016 ChilkatVersion: 9.5.0.64 UnlockPrefix: JHNSER.CB10917 Architecture: Little Endian; 64-bit Language: .NET 4.6 / x64 VerboseLogging: 1 attachIndex: 0 charset: utf-8 uid: 136 bIsUid: 1 attachmentFilename: attachmentMsgPart: 2 attachmentEncoding: 7BIT attachmentSize: 169898 fetchAttachment(312ms): fetchCommand: aaag UID FETCH 136 (BODY[2]) ImapCmdSent: aaag UID FETCH 136 (BODY[2]) sendCommand: Elapsed time: 0 millisec getFetchAttachmentResponse(312ms): getPartialResponse(140ms): stopString: BODY[ sbLine: * 136 FETCH (UID 136 BODY[2] {169898} ImapCmdResp: * 136 FETCH (UID 136 BODY[2] {169898} Found stop string. --getPartialResponse receiveImapBytes: Elapsed time: 172 millisec ImapCmdResp: (169898 bytes) finalParenLine: ) getPartialResponse: sbLine: aaag OK UID FETCH completed Received complete response to final tag line. ImapCmdResp: aaag OK UID FETCH completed --getPartialResponse finalResponsePart: aaag OK UID FETCH completed bReceivedToFinalTagLine: 1 bOk: 1 success: 1 --getFetchAttachmentResponse --fetchAttachment decodedSize: 169898 Success. --FetchAttachmentString --ChilkatLog
This is returned by FetchAttachmentString
From: <donotreply@lowes.com> To: <daniel@windorsolutions.com> Subject: Important Document(s) from Lowe's Date: Wed, 5 Oct 2016 18:25:35 -0400 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==U2FsYW1hdE9EaW9z-57f57ddf0000a595==" --==U2FsYW1hdE9EaW9z-57f57ddf0000a595== Content-Type: application/pdf; name="image2016-10-05-182534.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="image2016-10-05-182534.pdf" Content-Description: image2016-10-05-182534.pdf JVBERi0xLjUKJYCAgIAKMTEgMCBvYmoKPDwgL1R5cGUgL1BhZ2UKIC9QYXJlbnQgMyAwIFIK L1Jlc291cmNlcyA8PCAvUHJvY1NldCBbL1BERiAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSV0v WE9iamVjdCA8PC9JMTMgMTMgMCBSPj4gPj4KL01lZGlhQm94IFswIDAgNjEyIDc5Ml0vUm90 CUT OUT A LOT OF LINES IDAwMDAwIG4gCjAwMDAxMTM1MDAgMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSAxNQovSW5m byAxIDAgUgovUm9vdCAyIDAgUgovSUQgWyA8YzczNWQ0OWY2ZDNlN2ZkYWExNWZkODMxY2Mx NmMwYjk+CjxjNzM1ZDQ5ZjZkM2U3ZmRhYTE1ZmQ4MzFjYzE2YzBiOT4gXQo+PgpzdGFydHhy ZWYKMTIzMTEwCiUlRU9GCg== --==U2FsYW1hdE9EaW9z-57f57ddf0000a595==--
Email that doesn't fail -- both emails are from the same sender, have the same subject same body and both contain a pdf document
Imap.SessionLog ----IMAP REQUEST---- aaad UID FETCH 135 RFC822.SIZE ----IMAP RESPONSE---- * 135 FETCH (UID 135 RFC822.SIZE 155924) aaad OK UID FETCH completed ----IMAP REQUEST---- aaae UID FETCH 135 (UID BODYSTRUCTURE) ----IMAP RESPONSE---- * 135 FETCH (UID 135 BODYSTRUCTURE (("TEXT" "plain" ("charset" "UTF-8") NIL NIL "7BIT" 1393 4 NIL NIL NIL NIL)("APPLICATION" "pdf" ("name" "image2016-10-05-165244.pdf") NIL "image2016-10-05-165244.pdf" "BASE64" 150648 NIL ("attachment" ("filename" "image2016-10-05-165244.pdf")) NIL NIL) "mixed" ("boundary" "==U2FsYW1hdE9EaW9z-57f5762c00060dcf==") NIL NIL NIL)) aaae OK UID FETCH completed ----IMAP REQUEST---- aaaf UID FETCH 135 (FLAGS INTERNALDATE BODY[HEADER] BODY[1.MIME] BODY[1]) ----IMAP RESPONSE---- * 135 FETCH (UID 135 INTERNALDATE "05-Oct-2016 21:52:53 +0000" FLAGS (\Seen) BODY[HEADER] {3485} (3485 bytes) BODY[1.MIME] {45} (45 bytes) BODY[1] {1393} (1393 bytes) ) aaaf OK UID FETCH completed int _numAttach = Imap.GetMailNumAttach(fullEmail); //1 int _attachSize = Imap.GetMailAttachSize(fullEmail, 0); //150648 string _fileName = Imap.GetMailAttachFilename(fullEmail, 0); //image2016-10-05-165244.pdf
If I call bool attachmentSuccess = fullEmail.SaveAllAttachments(_attachmentFolder); //Returns success -- file is saved to the harddrive
This is LastErrorText
ChilkatLog: GetMailAttachFilename: DllDate: Nov 12 2016 ChilkatVersion: 9.5.0.64 UnlockPrefix: JHNSER.CB10917 Architecture: Little Endian; 64-bit Language: .NET 4.6 / x64 VerboseLogging: 1 Success. --GetMailAttachFilename --ChilkatLog
If I call string _test = Imap.FetchAttachmentString(fullEmail, 0, "utf-8");
This is LastErrorText ChilkatLog: FetchAttachmentString(360ms): DllDate: Nov 12 2016 ChilkatVersion: 9.5.0.64 UnlockPrefix: JHNSER.CB10917 Architecture: Little Endian; 64-bit Language: .NET 4.6 / x64 VerboseLogging: 1 attachIndex: 0 charset: utf-8 uid: 135 bIsUid: 1 attachmentFilename: image2016-10-05-165244.pdf attachmentMsgPart: 2 attachmentEncoding: BASE64 attachmentSize: 150648 fetchAttachment(360ms): fetchCommand: aaag UID FETCH 135 (BODY[2]) ImapCmdSent: aaag UID FETCH 135 (BODY[2]) sendCommand: Elapsed time: 0 millisec getFetchAttachmentResponse(360ms): getPartialResponse(172ms): stopString: BODY[ sbLine: * 135 FETCH (UID 135 BODY[2] {150648} ImapCmdResp: * 135 FETCH (UID 135 BODY[2] {150648} Found stop string. --getPartialResponse receiveImapBytes: Elapsed time: 188 millisec ImapCmdResp: (150648 bytes) finalParenLine: ) getPartialResponse: sbLine: aaag OK UID FETCH completed Received complete response to final tag line. ImapCmdResp: aaag OK UID FETCH completed --getPartialResponse finalResponsePart: aaag OK UID FETCH completed bReceivedToFinalTagLine: 1 bOk: 1 success: 1 --getFetchAttachmentResponse --fetchAttachment decodedSize: 109932 Success. --FetchAttachmentString --ChilkatLogThis is returned by FetchAttachmentString%PDF-1.5 % 11 0 obj << /Type /Page /Parent 3 0 R /Resources << /ProcSet [/PDF /ImageB /ImageC /ImageI]/XObject <</i13>> >> /MediaBox [0 0 612 792]/Rotate 0/Contents 12 0 R >> endobj 12 0 obj << /Length 76 >> stream q Q q W 0 0 m 612 0 l
Thanks! You provided a lot of information, except for the 2nd thing I requested:
2) The verbose LastErrorText for the method call that fetches the email without attachments.
The variable named "fullEmail" contains an email. I need the verbose LastErrorText for whichever Imap method call downloaded that email. You've been giving me all of the information relating to downloading attachments after the email (without attachments) was downloaded, but I want to see the LastErrorText for the downloading of the email itself.
This post contains two LastErrorText the first block is for an email that works the second block is for an email that does not work
Email from which I can extract an attachment with the SaveAllAttachments
ChilkatLog: FetchSingle(703ms): DllDate: Nov 12 2016 ChilkatVersion: 9.5.0.64 UnlockPrefix: JHNSER.CB10917 Architecture: Little Endian; 64-bit Language: .NET 4.6 / x64 VerboseLogging: 1 msgId: 135 bUid: 1 autoDownloadAttachments: 0 Getting message size for progress monitoring... ImapCmdSent: aaad UID FETCH 135 RFC822.SIZE getCompleteResponse(78ms): ImapCmdResp: * 135 FETCH (UID 135 RFC822.SIZE 155924) ImapCmdResp: aaad OK UID FETCH completed --getCompleteResponse totalSize: 155924 totalSize: Elapsed time: 78 millisec fetchSingleEmailObject(625ms): msgId: 135 isUid: 1 fetchSingleComplete(625ms): autoDownloadAttachments: 0 fetchComplete(625ms): autoDownloadAttachments: 0 Fetching message summary. (UID BODYSTRUCTURE) fetchMsgSummary(359ms): fetchMultipleSummaries(359ms): ImapCmdSent: aaae UID FETCH 135 (UID BODYSTRUCTURE) getCompleteResponse2(359ms): ImapCmdResp: * 135 FETCH (UID 135 BODYSTRUCTURE (("TEXT" "plain" ("charset" "UTF-8") NIL NIL "7BIT" 1393 4 NIL NIL NIL NIL)("APPLICATION" "pdf" ("name" "image2016-10-05-165244.pdf") NIL "image2016-10-05-165244.pdf" "BASE64" 150648 NIL ("attachment" ("filename" "image2016-10-05-165244.pdf")) NIL NIL) "mixed" ("boundary" "==U2FsYW1hdE9EaW9z-57f5762c00060dcf==") NIL NIL NIL)) ImapCmdResp: aaae OK UID FETCH completed --getCompleteResponse2 --fetchMultipleSummaries isOK: serverResponse: aaae OK UID FETCH completed --isOK parseSummary: ---- parseItem: UID uid: 135 ---- parseItem: BODYSTRUCTURE bodystructure1: (("TEXT" "plain" ("charset" "UTF-8") NIL NIL "7BIT" 1393 4 NIL NIL NIL NIL)("APPLICATION" "pdf" ("name" "image2016-10-05-165244.pdf") NIL "image2016-10-05-165244.pdf" "BASE64" 150648 NIL ("attachment" ("filename" "image2016-10-05-165244.pdf")) NIL NIL) "mixed" ("boundary" "==U2FsYW1hdE9EaW9z-57f5762c00060dcf==") NIL NIL NIL)) aaae OK UID FETCH completedparseBodyStructure: parseMultipartBody: parseBodyStructure: parseNonMultipartBody: type: TEXT subType: plain captureParenList: charset: UTF-8 --captureParenList contentId: NIL descrip: NIL encoding: 7BIT size: 1393 numTextLines: 4 MD5: NIL part: 1 filename: filenameExact: --parseNonMultipartBody --parseBodyStructure parseBodyStructure: parseNonMultipartBody: type: APPLICATION subType: pdf captureParenList: name: image2016-10-05-165244.pdf --captureParenList contentId: NIL descrip: image2016-10-05-165244.pdf encoding: BASE64 size: 150648 MD5: NIL captureDisposition: disposition: attachment captureParenList: filename: image2016-10-05-165244.pdf --captureParenList --captureDisposition part: 2 filename: image2016-10-05-165244.pdf filenameExact: image2016-10-05-165244.pdf --parseNonMultipartBody --parseBodyStructure multipartSubType: mixed checkSetAttachment: type: TEXT multipartParentType: mixed childIndex: 0 disposition: bPassedAlternative: 0 bPassedRelated: 0 Not considered an attachment. --checkSetAttachment checkSetAttachment: type: APPLICATION multipartParentType: mixed childIndex: 1 disposition: attachment bPassedAlternative: 0 bPassedRelated: 0 Considered attachment because it is non-text under multipart/mixed. --checkSetAttachment imapAttachment: filename: image2016-10-05-165244.pdf msgPart: 2 attachmentSize: 150648 encoding: BASE64 --imapAttachment --parseMultipartBody --parseBodyStructure --parseSummary --fetchMsgSummary numAttachmentsFromMsgSummary: 1 ImapMsgParts: multipart/mixed () TEXT/plain (1) APPLICATION/pdf (2) --ImapMsgParts fetchCompleteWithoutAttachments(266ms): fetchCommand: aaaf UID FETCH 135 (FLAGS INTERNALDATE BODY[HEADER] BODY[1.MIME] BODY[1]) ImapCmdSent: aaaf UID FETCH 135 (FLAGS INTERNALDATE BODY[HEADER] BODY[1.MIME] BODY[1]) sendCommand: Elapsed time: 16 millisec getCompleteFetchResponse2(250ms): getPartialResponse(172ms): stopString: BODY[HEADER] sbLine: * 135 FETCH (UID 135 INTERNALDATE "05-Oct-2016 21:52:53 +0000" FLAGS (\Seen) BODY[HEADER] {3485} ImapCmdResp: * 135 FETCH (UID 135 INTERNALDATE "05-Oct-2016 21:52:53 +0000" FLAGS (\Seen) BODY[HEADER] {3485} Found stop string. --getPartialResponse flagsAndSizeData: * 135 FETCH (UID 135 INTERNALDATE "05-Oct-2016 21:52:53 +0000" FLAGS (\Seen) BODY[HEADER] {3485} flags: \Seen imapTopHeaderSize: 3485 receiveImapBytes: Elapsed time: 0 millisec ImapCmdResp: (3485 bytes) sbTopHeader: -------------------------------------------------- sbTopHeader: Return-Path: <LexPrin@lowes.com>
Received: from LXVPMSGBM21.LOWES.COM ([168.244.164.170]) by mx.perfora.net (mxeueus002) with ESMTPS (Nemesis) id 0LiVmE-1bJwsa2raG-00cfZw for <daniel@windorsolutions.com>; Wed, 05 Oct 2016 23:52:52 +0200 X-AuditID: ac14d41f-9dff3980000055ab-63-57f576336e4b Received: from msmsgex10wprd02.lowes.com (msmsgex10wprd02.lowes.com [172.26.122.12]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by (SMTP Banner) with SMTP id CA.D0.21931.33675F75; Wed, 5 Oct 2016 17:52:51 -0400 (EDT) Received: from isoprt75.2851.lowes.com (172.26.202.27) by MSMSGEX10WPRD02.lowes.com (172.26.122.12) with Microsoft SMTP Server id 14.3.301.0; Wed, 5 Oct 2016 17:52:44 -0400 To: <daniel@windorsolutions.com> From: <DoNotReply@lowes.com> Date: Wed, 5 Oct 2016 16:52:44 -0500 Subject: Important Document(s) from Lowe's X-Mailer: Lexmark MX611de Message-ID: <1475704364.268987.67680@isoprt75.2851.lowes.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==U2FsYW1hdE9EaW9z-57f5762c00060dcf==" X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrEIsWRmVeSWpSXmKPExsWyRqqKR9e47Gu4wdHfUhbf771ndWD06Lx1 lS2AMaqB0SYxLy+/JLEkVSEltTjZVskvtVzBJbM4OScxMze1qFhXwchIIas0p1LByMDQWEkh M8VWyVRJoSAnMTk1NzWvxFYpsaAgNS9FyY5LAQPYAJVl5imk5iXnp2TmpdsqeQb761pYmFrq GirZ+fmHeDq7WiU0SGS8PDuFtWDRHM6KDTs2sDQwzvjD0cXIySEhYCLxf/lMpi5GLg4hgWlM Em8WT4VyNjBKHJ/1g72LkYNDREBBoveoA0gDm4CMRPPKCewgNouAisS9cxMYQWxhAS2Jy9Ou s0EMlZToPtcCVsMrYCvR3rGPEcIWlDg58wkLiM0sECjx9v0tJhBbSEBRouvaRvYJjDyzkJTN QlIGYWtKtG7/zQ5hO0jsXX+dGcJWlJjS/RAozgFku0k0vZCBCOtLzDqyknEBI/sqRtGcirKC 3OL0pFwjQ72c/PLUYr3k/NxNjKCoE7kiv4Oxq8XpEKMAB6MSDy+r+tdwIdbEsuLK3EOMpkBf TmSWEk3OB8Z2Xkm8oaGliZGlmbG5pamhiZI4b0r3u3AhgXRg3GanphakFsUXleakFh9iZOLg lGpgdPxfb9mf7bBZeM/SdTdz5ug8WKr+bNKW8x7vApxZlcQWHLl7i/9WZo6UYsCzWs1UiRdO DS669Ud1X3E5VK9O2xzx6FFmr8O2rjPr1/9h7W+KjLq7eW/9soOmPz4JNzbP4Vz5RqFTSYq1 ObtTtZZHnU/BtuJGK/tr7uV31nA7cTVUZaX+1mVTYinOSDTUYi4qTgQAbGTV+bUCAAA= Envelope-To: <daniel@windorsolutions.com> X-UI-Filterresults: notjunk:1;V01:K0:39dQJ8pIt5U=:HMKAuQfK7QTx4JVZpOgKQ1GFkW 0ajKyH38fIJ25WaePzm48Lpmo+aROzOBWsSAN4+A7Yf9V/jU2PcnRT4W3hRsdxQn+Z3a2o+0h QdvmXqfvkLP6rZFalqHxIjgi4/O6dL6Wl+tPR7OtYRznYUddV6YlDFamgNBTdiX8mgsayZGZO MI/96ZlINCJ+yQYx/YcoMVm5jfWywNVXnxvYLFkFZk9X6+1IWgvk+BR5BWPB/ImLgKy8cuDl/ X6Cuv3xR/QePkqQJNJC40N6v4JKVtSabyk7yFD5/5+lY0UsFxxl8zXCD3shqvfsNoSePw/kQf Bd/EKfnnkEphowCVvtmHMTiohV5l396wzeE/DJGs9WuqSSO52qM6WB3EweQOVzEBXokldZjDr 5UYGIZ1w7O3Hmb+iSKuynutwQ3Xad+IWe4Sf0DtuvBx84pgDktEku5288uvheqBw6rGO1zahf D3ubBzaTNrBNJJsuQLq7CR66RcouQ6MRrJ1MOrUlFEBqgojTaPEJdELuN2WcsAWpL2cAZEPMA 1Y62sRCqAStzweFwRz2xDY/lBct7eRtyCuECvun7qjbkuY2BD3NZLz8Zu2Q5d6KYSAFhrdVLP WX1TUTlBRy3vac6qnEOZL+Ej+NjJk9ns574XqPwMQX2aVHEb6RaOEvtcMZ3kdT7q9E4rKIUU/ IQJ5ehKG7mUD5BcZVDDFcBuF3DKrlf3We6IaTFL1p+nZAZvyGlg9tSwmdkIVROq0aGCJLXZ80 W2F5khIADfFwx4uHy93z4deq0VB7COiDJYbabzshfETNvWpTIaYpuXa2iWHSsWQ3yxk6VfjhF /7+kpyedkH+89tv8b5tL+6guNxFA8SU6bRAqE/C06R4dVj2OqIMXwdlSYgMed76MPDCHn4P5v 3UjKQlHr40kXT8Tzzx7ZZUbytO1e7AkuQqyHfHdGFj79HSb4CyvUf04HlKVCREnNgCnZEQmFB sQGz9LiNQ1AoLChnnoUjUZ1E5qiDCFQtaXNQ7EXHqSByETKvy8eMu2abcX9mz0+mRjezmYyeE 9yQgalnj2M3z58UsBofzhYfKQ8VCHMNBHCPeTQ6mBqhSUCVnzLrl1e1HLhwpd6SpJDS66IOJH QlLVCBBDZm74Z3aa4DJg8l11ZibpRmCQgeHehBX0+HLXHfeZF44RNj9Meriyhx2DZD6kSaIVo 4dwfgf9aG+2cdMpVsDRK104MNhN43IPwJEJVN7ZvJiLxI9FBVCNXdt6rCSzoWCCQIFyqUn6PF HizMvh+scd0wY9w0PVx8yPjnDLM4257Y22yCGfIe7AZGImBzcSHG/YGo=
-------------------------------------------------- --sbTopHeader nextResponseLine: ImapCmdResp: BODY[1.MIME] {45} Checking for body... sbNextLine: BODY[1.MIME] {45} partSize: 45 receiveImapBytes: Elapsed time: 0 millisec ImapCmdResp: (45 bytes) --nextResponseLine nextResponseLine: ImapCmdResp: BODY[1] {1393} Checking for body... sbNextLine: BODY[1] {1393} partSize: 1393 receiveImapBytes: Elapsed time: 0 millisec ImapCmdResp: (1393 bytes) --nextResponseLine receiveFinalParenLine: finalParenLine: ) ImapCmdResp: ) --receiveFinalParenLine getPartialResponse(78ms): sbLine: aaaf OK UID FETCH completed Received complete response to final tag line. ImapCmdResp: aaaf OK UID FETCH completed --getPartialResponse finalResponsePart: aaaf OK UID FETCH completed bReceivedToFinalTagLine: 1 bOk: 1 success: 1 --getCompleteFetchResponse2 --fetchCompleteWithoutAttachments --fetchComplete --fetchSingleComplete ckx-imap-internaldate: 05-Oct-2016 21:52:53 +0000 ckx-imap-uid: 135 ckx-imap-isUid: YES ckx-imap-numAttach: 1 attachmentInfo: ckx-imap-attach-nm-1: image2016-10-05-165244.pdf ckx-imap-attach-sz-1: 150648 ckx-imap-attach-pt-1: 2 ckx-imap-attach-enc-1: BASE64 --attachmentInfo parseMime: Elapsed time: 0 millisec --fetchSingleEmailObject Success.
--FetchSingle --ChilkatLog
Email from which I can not extract an attachment with the SaveAllAttachments, but can still get the attachment via the FetchAttachmentString
ChilkatLog: FetchSingle(468ms): DllDate: Nov 12 2016 ChilkatVersion: 9.5.0.64 UnlockPrefix: JHNSER.CB10917 Architecture: Little Endian; 64-bit Language: .NET 4.6 / x64 VerboseLogging: 1 msgId: 136 bUid: 1 autoDownloadAttachments: 0 Getting message size for progress monitoring... ImapCmdSent: aaad UID FETCH 136 RFC822.SIZE getCompleteResponse(109ms): ImapCmdResp: * 136 FETCH (UID 136 RFC822.SIZE 176779) ImapCmdResp: aaad OK UID FETCH completed --getCompleteResponse totalSize: 176779 totalSize: Elapsed time: 109 millisec fetchSingleEmailObject(359ms): msgId: 136 isUid: 1 fetchSingleComplete(359ms): autoDownloadAttachments: 0 fetchComplete(359ms): autoDownloadAttachments: 0 Fetching message summary. (UID BODYSTRUCTURE) fetchMsgSummary(203ms): fetchMultipleSummaries(203ms): ImapCmdSent: aaae UID FETCH 136 (UID BODYSTRUCTURE) getCompleteResponse2(203ms): ImapCmdResp: * 136 FETCH (UID 136 BODYSTRUCTURE ((("TEXT" "plain" ("charset" "US-ASCII") NIL NIL "7BIT" 1361 3 NIL ("inline" NIL) NIL NIL)("TEXT" "html" ("charset" "US-ASCII") NIL NIL "7BIT" 1413 9 NIL ("inline" NIL) NIL NIL) "alternative" ("boundary" "=====mte=boundary=number=1491=====") ("inline" NIL) NIL NIL)("MESSAGE" "RFC822" NIL NIL NIL "7BIT" 169898 ("Wed, 5 Oct 2016 18:25:35 -0400" "Important Document(s) from Lowe's" ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "daniel" "windorsolutions.com")) NIL NIL NIL NIL) (("APPLICATION" "pdf" ("name" "image2016-10-05-182534.pdf") NIL "image2016-10-05-182534.pdf" "BASE64" 169338 NIL ("attachment" ("filename" "image2016-10-05-182534.pdf")) NIL NIL) "mixed" ("boundary" "==U2FsYW1hdE9EaW9z-57f57ddf0000a595==") NIL NIL NIL) 2305 NIL ("attachment" NIL) NIL NIL) "mixed" ("boundary" "=====mte=boundary=number=1490=====") NIL NIL NIL)) ImapCmdResp: aaae OK UID FETCH completed --getCompleteResponse2 --fetchMultipleSummaries isOK: serverResponse: aaae OK UID FETCH completed --isOK parseSummary: ---- parseItem: UID uid: 136 ---- parseItem: BODYSTRUCTURE bodystructure1: ((("TEXT" "plain" ("charset" "US-ASCII") NIL NIL "7BIT" 1361 3 NIL ("inline" NIL) NIL NIL)("TEXT" "html" ("charset" "US-ASCII") NIL NIL "7BIT" 1413 9 NIL ("inline" NIL) NIL NIL) "alternative" ("boundary" "=====mte=boundary=number=1491=====") ("inline" NIL) NIL NIL)("MESSAGE" "RFC822" NIL NIL NIL "7BIT" 169898 ("Wed, 5 Oct 2016 18:25:35 -0400" "Important Document(s) from Lowe's" ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "DoNotReply" "lowes.com")) ((NIL NIL "daniel" "windorsolutions.com")) NIL NIL NIL NIL) (("APPLICATION" "pdf" ("name" "image2016-10-05-182534.pdf") NIL "image2016-10-05-182534.pdf" "BASE64" 169338 NIL ("attachment" ("filename" "image2016-10-05-182534.pdf")) NIL NIL) "mixed" ("boundary" "==U2FsYW1hdE9EaW9z-57f57ddf0000a595==") NIL NIL NIL) 2305 NIL ("attachment" NIL) NIL NIL) "mixed" ("boundary" "=====mte=boundary=number=1490=====") NIL NIL NIL)) aaae OK UID FETCH completed parseBodyStructure: parseMultipartBody: parseBodyStructure: parseMultipartBody: parseBodyStructure: parseNonMultipartBody: type: TEXT subType: plain captureParenList: charset: US-ASCII --captureParenList contentId: NIL descrip: NIL encoding: 7BIT size: 1361 numTextLines: 3 MD5: NIL captureDisposition: disposition: inline --captureDisposition part: 1.1 filename: filenameExact: --parseNonMultipartBody --parseBodyStructure parseBodyStructure: parseNonMultipartBody: type: TEXT subType: html captureParenList: charset: US-ASCII --captureParenList contentId: NIL descrip: NIL encoding: 7BIT size: 1413 numTextLines: 9 MD5: NIL captureDisposition: disposition: inline --captureDisposition part: 1.2 filename: filenameExact: --parseNonMultipartBody --parseBodyStructure multipartSubType: alternative checkSetAttachment: type: TEXT multipartParentType: alternative childIndex: 0 disposition: inline bPassedAlternative: 0 bPassedRelated: 0 Not considered an attachment. --checkSetAttachment checkSetAttachment: type: TEXT multipartParentType: alternative childIndex: 1 disposition: inline bPassedAlternative: 0 bPassedRelated: 0 Not considered an attachment. --checkSetAttachment --parseMultipartBody --parseBodyStructure parseBodyStructure: parseNonMultipartBody: type: MESSAGE subType: RFC822 contentId: NIL descrip: NIL encoding: 7BIT size: 169898 discardEnvelope: dateTime: Wed, 5 Oct 2016 18:25:35 -0400 subject: Important Document(s) from Lowe's addressStructList: addressStruct: pname: NIL atDomainList: NIL mailboxName: DoNotReply hostName: lowes.com --addressStruct --addressStructList addressStructList: addressStruct: pname: NIL atDomainList: NIL mailboxName: DoNotReply hostName: lowes.com --addressStruct --addressStructList addressStructList: addressStruct: pname: NIL atDomainList: NIL mailboxName: DoNotReply hostName: lowes.com --addressStruct --addressStructList addressStructList: addressStruct: pname: NIL atDomainList: NIL mailboxName: daniel hostName: windorsolutions.com --addressStruct --addressStructList addressStructList: NIL --addressStructList addressStructList: NIL --addressStructList inReplyTo: NIL messageId: NIL --discardEnvelope embeddedMessageBodyStruct: parseBodyStructure: parseMultipartBody: parseBodyStructure: parseNonMultipartBody: type: APPLICATION subType: pdf captureParenList: name: image2016-10-05-182534.pdf --captureParenList contentId: NIL descrip: image2016-10-05-182534.pdf encoding: BASE64 size: 169338 MD5: NIL captureDisposition: disposition: attachment captureParenList: filename: image2016-10-05-182534.pdf --captureParenList --captureDisposition part: 1 filename: image2016-10-05-182534.pdf filenameExact: image2016-10-05-182534.pdf --parseNonMultipartBody --parseBodyStructure multipartSubType: mixed checkSetAttachment: type: APPLICATION multipartParentType: mixed childIndex: 0 disposition: attachment bPassedAlternative: 0 bPassedRelated: 0 Considered attachment because it is non-text under multipart/mixed. --checkSetAttachment imapAttachment: filename: image2016-10-05-182534.pdf msgPart: 1 attachmentSize: 169338 encoding: BASE64 --imapAttachment --parseMultipartBody --parseBodyStructure --embeddedMessageBodyStruct numRfc822Lines: 2305 MD5: NIL captureDisposition: disposition: attachment --captureDisposition part: 2 filename: filenameExact: --parseNonMultipartBody --parseBodyStructure multipartSubType: mixed checkSetAttachment: type: MESSAGE multipartParentType: mixed childIndex: 1 disposition: attachment bPassedAlternative: 1 bPassedRelated: 0 Considered attachment because child of multipart/mixed following multipart/alternative or multipart/related. --checkSetAttachment imapAttachment: filename: msgPart: 2 attachmentSize: 169898 encoding: 7BIT --imapAttachment --parseMultipartBody --parseBodyStructure --parseSummary --fetchMsgSummary numAttachmentsFromMsgSummary: 1 ImapMsgParts: multipart/mixed () multipart/alternative (1) TEXT/plain (1.1) TEXT/html (1.2) MESSAGE/RFC822 (2) --ImapMsgParts fetchCompleteWithoutAttachments(156ms): fetchCommand: aaaf UID FETCH 136 (FLAGS INTERNALDATE BODY[HEADER] BODY[1.MIME] BODY[1]) ImapCmdSent: aaaf UID FETCH 136 (FLAGS INTERNALDATE BODY[HEADER] BODY[1.MIME] BODY[1]) sendCommand: Elapsed time: 0 millisec getCompleteFetchResponse2(156ms): getPartialResponse(94ms): stopString: BODY[HEADER] sbLine: * 136 FETCH (UID 136 INTERNALDATE "05-Oct-2016 22:25:41 +0000" FLAGS (\Seen) BODY[HEADER] {3464} ImapCmdResp: * 136 FETCH (UID 136 INTERNALDATE "05-Oct-2016 22:25:41 +0000" FLAGS (\Seen) BODY[HEADER] {3464} Found stop string. --getPartialResponse flagsAndSizeData: * 136 FETCH (UID 136 INTERNALDATE "05-Oct-2016 22:25:41 +0000" FLAGS (\Seen) BODY[HEADER] {3464} flags: \Seen imapTopHeaderSize: 3464 receiveImapBytes: Elapsed time: 0 millisec ImapCmdResp: (3464 bytes) sbTopHeader: -------------------------------------------------- sbTopHeader: Return-Path: <lexprin@lowes.com> Received: from LXVPMSGBM23.LOWES.COM ([168.244.164.172]) by mx.perfora.net (mxeueus004) with ESMTPS (Nemesis) id 0LnRFo-1bG4eA3gnm-00hepS for <daniel@windorsolutions.com>; Thu, 06 Oct 2016 00:25:41 +0200 X-AuditID: ac14d421-95cfd98000005d41-da-57f57de39bf2 Received: from MSMSGEX10WPRD04.lowes.com (msmsgex10wprd04.lowes.com [172.26.122.14]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by (SMTP Banner) with SMTP id D2.16.23873.3ED75F75; Wed, 5 Oct 2016 18:25:39 -0400 (EDT) Received: from isoprt75.0532.lowes.com (172.26.202.27) by MSMSGEX10WPRD04.lowes.com (172.26.122.14) with Microsoft SMTP Server id 14.3.301.0; Wed, 5 Oct 2016 18:25:35 -0400 To: <daniel@windorsolutions.com> From: <donotreply@lowes.com> Date: Wed, 5 Oct 2016 18:25:35 -0400 Subject: Important Document(s) from Lowe's X-Mailer: Lexmark MX611de Message-ID: <1475706334.923020.72116@isoprt75.0532.lowes.com> MIME-Version: 1.0 content-type: multipart/mixed; boundary="=====mte=boundary=number=1490=====" X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprKIsWRmVeSWpSXmKPExsWyRqqKT/dx7ddwg12d5hbf771ndWD06Lx1 lS2AMaqB0SYxLy+/JLEkVSEltTjZVskvtVzBJbM4OScxMze1qFhXwchIIas0p1LByMDQWEkh M8VWyVRJoSAnMTk1NzWvxFYpsaAgNS9FyY5LAQPYAJVl5imk5iXnp2TmpdsqeQb761pYmFrq GirZ+fmHeDq7WiU0SGR8n/GDsWDDWq6Ko1+XsTcw7ujk6mLk5JAQMJFontnM1sXIxSEkMI1J 4tvsFihnA6PEkme9LF2MHBwiAgoSvUcdQBrYBGQkmldOYAexWQRUJDo+L2ECsYUFtCQuT7vO BjFUUqL7XAtYDa+ArcSXj/uhbEGJkzOfgI1kFgiUOLXWECQsJKAo0XVtI/sERp5ZSKpmIVSB hJkFHCR+n7/ACGErSkzpfsgOYbtJPP13DsrWl7h/dwvjAka2VYyiORVlBbnF6Um5RsZ6Ofnl qcV6yfm5mxhBsSVyRXEH44wWp0OMAhyMSjy8LOpfw4VYE8uKK3MPMZoCPTaRWUo0OR8YwXkl 8YaGliZGlmbG5pamhiZK4rwp3e/ChQTSgdGZnZpakFoUX1Sak1p8iJGJg1OqgTHpqrLBaxlh j5t3/3GfvPhQS4fP8eLe6QpcZw31Ux33qx7Wn247Qy54ey27250eGZYfrXvmpZ7Y+js3I9PM /pbY+V+8LtrXsy4daTyr5nH58vkD+nODFktE6bTtl9Ly5+jrbpsc+ebr9gjex62bt1byPEw1 s1mq3lgbvON8sVjSsvr6Zr0yNiWW4oxEQy3mouJEANxVy16oAgAA Envelope-To: <daniel@windorsolutions.com> X-UI-Filterresults: notjunk:1;V01:K0:zrCd/m5D5Ac=:DeT4PobWH7tEPqFFKCmKKcrwdq mzg3t/C3PHQPecAh8+fRJlXl4mvYnIRDaSy+p+sUuJR95i2zPmNgkB6BbXsC91eM9bQNNCPP/ BG/BqNtZ7zKF3jCoFTTWlr2nEfEXDiOHjNhzljOtRM2xtDw/DJFjAmGKiJB/AHw33e36cSI48 JdEmoid5EuXz5NV4tXWQ4CPrXy0RJVJ97IhT+pRWjI+prpXiW9MpUACjXHSnPV/cuMQetV4/B veW41+FKTBq9laK0qo81uXeEonQzc0qaBAQlMMe/w4JnZoA1FfrIZ6wVeTxrn34+kz2fSgOyi xnfcFF/y+JMRUsFHkLohli8od2H+reiRMc6lI32BBwoTIqqrEvwC1hiws42A1phgysjHo0CfN RFvLQL50Ycaue5ufsA1dIq9ymYAMbvDp0Ryk1ZbwowXAESFmXS9LhCY+ZZxK5b5ji7yxWcH6n DieARoUl2nHfie+cit2SOjvaABmr7/vuAFlvPyLsmlapd3OHeeuc5AHyq02ya7Dalra9AF0Nc TgPpdO5v6z+x7QohCWIkALPYNJypre5mKMPmRQCOhHnr/DFmTII30xCkuNj+eHG2dA+KRhwnK DXX2mEAwOgpxykbsyHFmIBab6P5DEY1ufHklmwhcv/00mgfb6Pm76SZa2a9qyN6MsClj4Adnj YX76oz2MfI6XRQn65ilOZ/UafAw7CVKoRcG9UJ2+jqztI4b4ZNqSfLnoZjPs7yc083rIPIaQh NSn0wYlkyeDLGTm0LbZ7I5eKmTcDJp8wu3DjpV9OPjhV/pT7yAUFkMSTWD3FL8pvDawG1T9AO i4F++Q1PVMRB7eb2KkN77ODKU5uvqD3VZs4++cKSWYzGENis49hDpKgcYAuW1fEObdlvcviq7 cDs8rF4eA8/18UdPOcpGHv+9/9Qj52YHL/az9W+8v5foGtboGm4n1BgZFqU7Xv9/j5Xn+GMzV Dhi2tWcyR89XK1lu5V7q/C0VQLp3Q+UkqNCgGRT66Tqib7fkyJiKt4DpSaw4EZ1II1ZPql8/C xSRYupi2Yzat/c59ATFYfsk2xNiA9Z1jJEIq4D1/r+eTCyWmqMpVg+mwnxVllHIKp/fMgeNK6 HrwOk5T3ntGUYTP1EQYFsxk+cuPks4hbdj46R7lA/CuUfnG39K7Di/Yv1tiCambgdMmY7aeqE PQoYHaAD0vXPXIA4kA5vT2rUecDh2WHPyH10U99/j2Qmm9WleAZN+xtkOZeWZ6xlSUsw1Bp9M TOhYBgGN2SV1vjVkl7usX2HXmYB3N1jB2IsfeMZWcsZ8jM02PMQ31dQI= -------------------------------------------------- --sbTopHeader nextResponseLine: ImapCmdResp: BODY[1.MIME] {115} Checking for body... sbNextLine: BODY[1.MIME] {115} partSize: 115 receiveImapBytes: Elapsed time: 0 millisec ImapCmdResp: (115 bytes) --nextResponseLine nextResponseLine: ImapCmdResp: BODY[1] {3115} Checking for body... sbNextLine: BODY[1] {3115} partSize: 3115 receiveImapBytes: Elapsed time: 0 millisec ImapCmdResp: (3115 bytes) --nextResponseLine receiveFinalParenLine: finalParenLine: ) ImapCmdResp: ) --receiveFinalParenLine getPartialResponse(62ms): sbLine: aaaf OK UID FETCH completed Received complete response to final tag line. ImapCmdResp: aaaf OK UID FETCH completed --getPartialResponse finalResponsePart: aaaf OK UID FETCH completed bReceivedToFinalTagLine: 1 bOk: 1 success: 1 --getCompleteFetchResponse2 --fetchCompleteWithoutAttachments --fetchComplete --fetchSingleComplete ckx-imap-internaldate: 05-Oct-2016 22:25:41 +0000 ckx-imap-uid: 136 ckx-imap-isUid: YES ckx-imap-numAttach: 1 attachmentInfo: ckx-imap-attach-nm-1: ckx-imap-attach-sz-1: 169898 ckx-imap-attach-pt-1: 2 ckx-imap-attach-enc-1: 7BIT --attachmentInfo parseMime: Elapsed time: 0 millisec --fetchSingleEmailObject Success. --FetchSingle --ChilkatLog
I understand the problem. The emails that have problems are because the "attachments" are really attachments within an attached email. In other words, the email itself has no direct attachments.
The email has an attached message, and the attached message contains within it a PDF attachment.
Normally, an email that has an attached message is such that the attached message is opaque. In other words, to get at the attachments contained within the attached messages, you would first get the attached email object via the GetAttachedMessage method. The Email object returned by GetAttachedMessage would contain the expected attachments.
For example, if you downloaded the full email, you would be surprised to see that it has no attachments. This is correct because it has an attached message, and within it are the attachments.
The difficulty is this: With the IMAP protocol, it would be good to download the email w/out the bulk data (i.e. without attachments) so we can see what's there and then pick-and-choose what to download. If the download-without-attachments indicates N attachments, but the download-full-email indicates no attachments, then people will be confused. I think at this point we'll just have to document the behavior...
The problem here is that Chilkat sees the attachments within the attached message, but is somehow not parsing the name/filename. Therefore, when you try to save the attachment to a file, there is no filename and it fails. (Getting as a string succeeds because the filename is not needed for it.) I'll see what I can do to fix it..
I don't need a "smooth" solution but I do need a reliable solution.
E.g. if there is a way to check whether it is an attached document or an attached message and than process the message accordingly would be sufficient.
At the moment this is how I am dealing with it. I feel that checking for a missing file name is not a very robust way to determine how to process the attachments.
for (int _iAttachment = 0; _iAttachment < _numAttachments; _iAttachment++) { string _fileName = Imap.GetMailAttachFilename(_email, _iAttachment); //There are two flows here -- emails that work and emails that do not work if (_fileName == null) { byte[] _attachmentContent = Imap.FetchAttachmentBytes(_email, _iAttachment); //MimeMessage is part of MimeKit a different library var message = MimeMessage.Load(new MemoryStream(_attachmentContent)); foreach (MimeEntity _mimeEntity in message.Attachments) { if (_mimeEntity.ContentType.MimeType != null && _mimeEntity.ContentType.MimeType.Equals(@"application/pdf", StringComparison.OrdinalIgnoreCase)) { MimePart _mimePart = (MimePart)_mimeEntity; var fileStream = File.Create(_attachmentFolder + "\\" + _mimePart.FileName); _mimePart.ContentObject.Stream.Seek(0, SeekOrigin.Begin); _mimePart.ContentObject.DecodeTo(fileStream); fileStream.Close(); //Create PDF Entry in the database CreatePDF(_emailEntity, _mimePart.FileName); } } } else { string _extension = System.IO.Path.GetExtension(_fileName); if (_extension != null && _extension.Equals(".pdf", StringComparison.OrdinalIgnoreCase)) { byte[] _attachmentContent = Imap.FetchAttachmentBytes(_email, _iAttachment); File.WriteAllBytes(_attachmentFolder + "\\" + _fileName, _attachmentContent); //Create PDF Entry in the database CreatePDF(_emailEntity, _fileName); } } }
After digging into the code, I see that it's not possible to consider the attachments contained within an attached message as "attachments" in the outer-layer email. In other words, technically the troublesome email has no direct attachments. It only has an attached message. After the fix, fetching that email will indicate that it has no attachments.
Here's the new build with the fix:
http://chilkatdownload.com/prerelease/chilkatdotnet46-9.5.0-win32.zip
http://chilkatdownload.com/prerelease/chilkatdotnet46-9.5.0-x64.zip
After downloading the email w/out attachments, check the email.NumAttachedMessages property. If non-zero, then get the attached message, and any attachments contained within it should be present (I think.. I still need to test this..)