2012-01-27 10 views
5

Używam następujący kod do wysyłania wiadomości e-mail z treścią obiektu NSData (z nazwą zmiennej: dane):iOS: wysyłanie e-maili z załącznikami dodaje inny załączeniu (.txt) plik automatycznie

MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init]; 

[controller setSubject:@"Subject"]; 
[controller addAttachmentData:data mimeType:@"application/pdf" fileName:@"Attachment"]; 
[controller setMessageBody:@"Please find attached the connections for..." isHTML:NO]; 

controller.mailComposeDelegate = self; 
[self presentModalViewController:controller animated:YES]; 

Dodaje UIView wygenerowany jako plik pdf jako załącznik i wysyła wiadomość e-mail. To wszystko jest dobre, oprócz jednego problemu:

Po otrzymaniu wiadomości e-mail, wraz z dołączonym plikiem pdf, znajduje się inny załączony plik .txt, którego zawartość to: "Wysłane z mojego iPada". Jeśli nie dołączę pliku pdf, wiadomość "Wysłane z mojego iPada" pojawi się w treści wiadomości e-mail, zamiast w załączonym pliku.

Czy ktoś ma pojęcie, jak można to rozwiązać? Nie chcę, aby plik tekstowy był dołączony do wiadomości.

Pozdrawiam,

Petar

+0

Witam, czy jest aktualizacja tego problemu lub jakikolwiek błąd zgłoszony firmie Apple, do którego mogę się odwołać? – Amit

Odpowiedz

4

Wydaje się, że podczas wysyłania wiadomości e-mail z załącznikiem, wszystko w nim jest opakowane jako wieloczęściowy/mieszany wiadomości, a wszystko zakodowane jako base64, w tym treść wiadomości i podpis! Więc wygląda to tak ...

Content-Type: multipart/mixed; 
    boundary="_003_81E0DB72B1F643FBAA40D9BCB66A11E4_" 

--_003_81E0DB72B1F643FBAA40D9BCB66A11E4_ 
Content-Type: text/plain; charset="utf-8" 
Content-Transfer-Encoding: base64 

SGkgTW9tIQ== 

(to "Hi Mom!" zakodowany jako base64)

--_003_81E0DB72B1F643FBAA40D9BCB66A11E4_ 
Content-Type: application/octet-stream; name="MyAttachment.xlsx" 
Content-Description: MyAttachment.xlsx 
Content-Disposition: attachment; filename="MyAttachment.xlsx"; size=15262 
Content-Transfer-Encoding: base64 

UEsDBBQABgAIAAAAIQA3Mb2RgAEAAIQFAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC 

ciach

AF81AABkb2NQcm9wcy9hcHAueG1sUEsFBgAAAAANAA0AaAMAACA4AAAAAA== 

--_003_81E0DB72B1F643FBAA40D9BCB66A11E4_ 

Content-Type: text/html; name="ATT00001.htm" 
Content-Description: ATT00001.htm 
Content-Disposition: attachment; filename="ATT00001.htm"; size=91 
Content-Transfer-Encoding: base64 

PGh0bWw+PGJvZHkgYmdjb2xvcj0iI0ZGRkZGRiI+PGRpdj48L2Rpdj48ZGl2Pjxicj48YnI+U2VudCBmcm9tIG15IGlQYWQ8L2Rpdj48L2JvZHk+PC9odG1sPg== 

(to <html><body bgcolor="#FFFFFF"><div></div><div><br><br>Sent from my iPad</div></body></html> jako base64)

--_003_81E0DB72B1F643FBAA40D9BCB66A11E4_-- 

Nawet jeśli przejdziesz do Ustawienia >> Poczta, kontakty, kalendarze i usunąć podpis, nadal masz dołączony pusty dokument HTML.

Prawidłowa odpowiedź długoterminowa prawdopodobnie będzie przesłaniem tego do Apple jako błędu i czekaniem. W międzyczasie, jeśli to naprawdę błąd programu Showstopper, sugerowałbym wygenerowanie całej wieloczęściowej/mieszanej treści wiadomości e-mail samemu, bez podpisu, i zobaczenie, czy to fools MFMailComposeViewController do myślenia, że ​​e-mail nie ma załącznika. Osobiście myślę, że po prostu powiem mojemu klientowi, żeby z tym zamieszkał. :)

+0

Witam, czy jest aktualizacja tego problemu lub jakikolwiek błąd zgłoszony firmie Apple, do której mogę się odwołać? – Amit

Powiązane problemy