2009-08-07 8 views
7

Creé correctamente un archivo txt (es decir, el archivo existe y se abre), me gustaría adjuntarlo a un correo electrónico que estoy generando correctamente (es decir, el correo electrónico se abre y puedo poner texto en el correo electrónico, etc. y enviarlo). Aquí está el código que tengo ahora para realizar la fijación:adjuntando un archivo de texto a un correo electrónico

// 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"]; 

El dataFilePath es un método que utilizo para obtener la ruta de un archivo, funciona bien como lo uso a menudo. El código anterior pone un < br /> < br />, luego tiene el texto del archivo de texto con algunos más < br /> < br /> ..breaks allí ... así que esto no conecta el archivarlo lo pega en el texto del correo electrónico ... Me gustaría adjuntar el archivo.

He copiado/modificado este código de otras publicaciones en stackoverflow y estoy teniendo dificultades para encontrar información en el sitio de apple. Nota: No estoy seguro de qué es el mimeType para un archivo txt, ya que su sitio web (www.iana.org) no denota un txt ... ???

Actualización: Cambió al código actualizado, y Gracias por confirmar que "simple" fue la elección correcta para mimeType.

Respuesta

7

Esto no es una solución completa, pero el tipo MIME de texto sin formato es:

text/plain
+0

podría explicar su respuesta? – AsifHabib

3

Esto podría ser un problema con su cliente de correo electrónico, y no con su programa. ¿El archivo de texto aparece como un archivo adjunto en la vista de redacción de correo, pero luego cuando recibe el correo electrónico está en el cuerpo principal?

Cuando reciba el correo electrónico, intente hacer una fuente de vista en él (o vea el original, o lo que su cliente de correo electrónico lo llame). Debería ver algo como esto en el correo electrónico:

--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 

Si ves que en el correo electrónico, a continuación, el archivo está siendo colocado. Es posible que su cliente de correo electrónico esté ignorando el encabezado MIME Content-Disposition. En GMail y en el correo de Apple, las secciones de correo electrónico como la anterior se muestran definitivamente como archivos adjuntos.

Por lo que vale la pena, éstas son algunas completa del código de trabajo crea un correo electrónico, añade un cuerpo HTML, añade un archivo adjunto de texto, y envía muestra la vista de composición:

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]; 
Cuestiones relacionadas