2012-01-27 15 views
5

estoy usando el siguiente código para enviar un correo electrónico con el contenido del objeto NSData (con el nombre de la variable: los datos):iOS: el envío de correo electrónico con el accesorio añade otra adjunto (.txt) de forma automática

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

Agrega una UIView generada como un pdf como un archivo adjunto y envía el correo electrónico. Todo está bien, además de un único problema:

Cuando se recibe el correo electrónico, junto con el pdf adjunto, hay otro archivo adjunto .txt cuyo contenido es: "Enviado desde mi iPad". Si no adjunto el pdf, aparece el mensaje "Enviado desde mi iPad" en el cuerpo del correo electrónico, en lugar de en un archivo adjunto.

¿Alguien tiene una idea de cómo se puede resolver esto? No quiero que el archivo de texto se adjunte en el mensaje.

Saludos,

Petar

+0

Hola, ¿hay alguna actualización de este problema o algún error reportado a Apple al que me refiera? – Amit

Respuesta

4

Parece que cuando se envía un correo electrónico con un archivo adjunto, todo en ella se envuelve como un mensaje multipart/mixed, y todo codificado como base 64, incluyendo el cuerpo del mensaje y la firma! Así que parece que este ...

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

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

SGkgTW9tIQ== 

(eso es "Hi Mom!" codificado como base 64)

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

tijeretazo

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

(eso es <html><body bgcolor="#FFFFFF"><div></div><div><br><br>Sent from my iPad</div></body></html> como base 64)

--_003_81E0DB72B1F643FBAA40D9BCB66A11E4_-- 

Incluso si va a Configuración >> Correo, Contactos, Calendarios y borra la firma, todavía obtiene un documento HTML vacío adjunto.

La respuesta correcta a largo plazo probablemente será enviar esto a Apple como un error y esperar. Mientras tanto, si esto es realmente un error espectacular, te sugiero que generes todo el cuerpo de correo electrónico multiparte/mezclado tú mismo, sin la firma, y ​​veas si eso engaña a MFMailComposeViewController para que piense que el correo electrónico no tiene datos adjuntos. Personalmente, creo que voy a decirle a mi cliente que viva con eso. :)

+0

Hola, ¿hay alguna actualización de este problema o algún error reportado a Apple al que me refiera? – Amit

Cuestiones relacionadas