2009-08-07 13 views
7

Udało mi się utworzyć plik txt (tzn. Plik istnieje i otwiera się), chciałbym dołączyć go do e-maila, który z powodzeniem generuję (tj. E-mail otwiera się i mogę umieścić tekst w e-mail itp. i wyślij go). Oto kod mam teraz do wykonywania załącznik:dołączanie pliku tekstowego do wiadomości e-mail

// Attach a file to the email 
NSString *path = [self dataFilePath:(@"myFile.txt")]; 
NSData *myData = [NSData dataWithContentsOfFile:path]; 
[picker addAttachmentData:myData mimeType:@"text/plain" fileName:@"myFile"]; 

dataFilePath to metoda używam uzyskać ścieżkę do pliku, to działa dobrze jak używam go często. Powyższy kod stawia kod < br /> < br />, a następnie zawiera tekst z pliku tekstowego z kilkoma dodatkowymi < br /> < br /> ..breaks ... więc to w rzeczywistości nie załącza plik wkleja go w tekście e-maila ... Chciałbym załączyć plik.

Skopiowałem/zmodyfikowałem ten kod z innych postów na stackoverflow i mam problem ze znalezieniem informacji na stronie Apple'a. Uwaga: Nie jestem pewien, jaki jest typ mimeType dla pliku txt, ponieważ ich strona internetowa (www.iana.org) nie oznacza txt ... ???

Aktualizacja: Zmieniono na zaktualizowany kod i dzięki za potwierdzenie, że "plain" był prawidłowym wyborem dla mimeType.

Odpowiedz

7

To nie jest kompletnym rozwiązaniem, ale typ MIME dla zwykłego tekstu jest:

text/plain
+0

mógłbyś wyjaśnić swoją odpowiedź? – AsifHabib

3

To może być problem z klienta e-mail, a nie z programu. Czy plik tekstowy pojawia się jako załącznik w widoku komponowania wiadomości e-mail, ale kiedy otrzymasz wiadomość e-mail, jest ona w głównej treści?

Po otrzymaniu wiadomości e-mail spróbuj zrobić na niej źródło widoku (lub wyświetlić oryginał lub jakikolwiek inny telefon e-mail). Powinieneś zobaczyć coś takiego w e-mailu:

--Apple-Mail-1-494911569 
Content-Disposition: attachment; 
    filename=myFile 
Content-Type: text/plain; 
    name=myFile 
Content-Transfer-Encoding: 7bit 

Text of the file here. 

--Apple-Mail-1-494911569 

Jeśli widzisz, że w wiadomości e-mail, a następnie plik jest prawidłowo podłączony. Możliwe, że twój klient poczty e-mail ignoruje nagłówek MIME Content-Disposition. W Gmailu i Apple mail, sekcje e-mail, takie jak ten powyżej są zdecydowanie wyświetlane jako załączniki.

Na co warto, oto niektóre kompletny kod produkcyjnym, tworzy wiadomość e-mail, dodaje ciało HTML dodaje załącznik tekst i wysyła pokazuje widok tworzenia wiadomości:

NSData *textData = [[self getEmailAttachment] dataUsingEncoding:NSUTF8StringEncoding]; 
NSString *htmlData = [self getEmailBodyHTML]; 

/* Set up the mail compose view and put in the body/attachment */ 
MFMailComposeViewController *mailComposer = [[[MFMailComposeViewController alloc] init] autorelease]; 
[mailComposer setMessageBody:htmlData isHTML:NO]; 
[mailComposer addAttachmentData:textData mimeType:@"text/plain" fileName:@"tripometer_report.csv"]; 

/* Set default subject */ 
[mailComposer setSubject:@"Email subject"]; 

mailComposer.mailComposeDelegate = self;  
[self presentModalViewController:mailComposer animated:YES]; 
Powiązane problemy