2011-07-07 3 views
8

Sto inviando alcune immagini per posta utilizzando MFMailComposer. Sto convertendo l'immagine in Base64 e utilizzando il tag <img> per aggiungere immagini al corpo HTML (non lo aggiungo come allegato ).Perché MFMailComposer con <img> non mostra l'immagine nella posta?

[htmlString appendFormat: 
@"<img src='data:image/png;base64,%@' width=300 height=200 />", imageAsBase64]; 

Le immagini vengono visualizzate correttamente nel MFMailComposer, ma non ci sono immagini visualizzate nella posta reale che viene inviato dal MFMailComposer.

Cosa devo fare per farlo funzionare?

+2

Quali sono stai usando per vedere l'email? – Joe

+0

@Deepmist, Sì. Scusa per il ritardo della risposta. Sto usando Safari nel mio iMac – EmptyStack

risposta

5

Ho avuto lo stesso problema prima di un paio di settimane e sono venuto a sapere che Gmail non supporta le immagini incorporate. Puoi vedere le immagini in email in un altro provider di posta come l'email del tuo dominio ma non in Gmail.

Prova a inviare un'altra email e puoi vedere le immagini. Devi aggiungere immagini come allegato, quindi puoi vedere le immagini e mostrerà il fondo del tuo corpo email.

Spero che questo aiuto.

+0

Wow! Grande. Mostra l'immagine nella mia posta di Yahoo. Grazie! E non c'è altro modo per rendere l'immagine visibile in Gmail? Gmail è l'unica eccezione o ci sono altri server di posta che non visualizzano le immagini in questo caso? – EmptyStack

+0

Non sono molto sicuro degli altri ma con Gmail non funzionava e ho controllato il mio server di posta e funzionava. Quindi immagino che a parte Gmail dovrebbe funzionare in tutto. – Deeps

+0

OK. Grazie uomo! Apprezzo molto il vostro aiuto! – EmptyStack

0

È necessario aggiungere le immagini come allegato. L'email di rendering che vedi con HTML non viene visualizzata correttamente con l'URL dell'immagine mancante.

Ecco un esempio: l'avvertenza è che se vuoi includere elementi come un PDF devi includere un'immagine altrimenti mfmailcomposer fallirà ... questo in un bug di mela.

Ho trovato la soluzione ... È stato segnalato un bug al radar Apple. MFMailcomposer ha un bug in cui si deve inviare un'immagine insieme con gli allegati in più al fine di ottenere gli oggetti strani come un pdf a lavorare ... provare questo e sostituire il pdf con la scheda:

MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init]; 
NSString *emailSubject = [NSString localizedStringWithFormat:@"MedicalProfile"]; 
[controller setSubject:emailSubject]; 


NSString *fileName = [NSString stringWithFormat:@"%@.pdf", profileName]; 
NSString *saveDirectory = NSTemporaryDirectory(); 
NSString *saveFileName = fileName; 
NSString *documentPath = [saveDirectory stringByAppendingPathComponent:saveFileName]; 

*** YOU MUST INCLUDE AN IMAGE OR THE PDF ATTATCHMENT WILL FAIL!!!*** 
// Attach a PDF file to the email 
NSData *pdfData = [NSData dataWithContentsOfFile:documentPath];  
[controller addAttachmentData:pdfData mimeType:@"application/pdf" fileName:fileName]; 


// Attach an image to the email 
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"miniDoc" ofType:@"png"]; 
NSData *imageData = [NSData dataWithContentsOfFile:imagePath]; 
[controller addAttachmentData:imageData mimeType:@"image/png" fileName:@"doctor"]; 


[controller setMessageBody:[NSString stringWithFormat:@"%@'s Medical Profile attatched!", profileName] isHTML:NO]; 

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