Respuesta

16

:) Sí, usted puede hacer esto:

MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init]; 
composer.mailComposeDelegate = self; 
[composer setSubject:subject]; 
[composer setMessageBody:message isHTML:YES];      

donde el mensaje es sólo una NSString con contenido HTML. En el interior puedes agregar todo el HTML que quieras.

4

Uso setMessageBody:isHTML: y pasar un enlace HTML adecuada en el cuerpo (<a href="your_url">your link text</a>) y pasar al parámetro YESisHTML.

4

¿probó en su código su sugerencia? Lo intenté antes de llegar a este sitio web, y lamento decir que no funciona en absoluto. El enlace aparece realmente en azul, el HTML se lee como html, pero no es posible ningún enlace. Cuando hago clic en el enlace, puedo editarlo ...

¿Alguna sugerencia mejor?

+0

¿Ha hecho clic en el correo electrónico recibido o en el modo de edición? – AsifHabib

26

Eliminé mi respuesta anterior porque era incorrecta e irrelevante. Después de mucho pelo tirando de I finalmente descubrí lo que estaba pasando en mi caso y es probablemente lo que está sucediendo en esta pregunta.

Cuando compone el cuerpo HTML para el MFMailComposeViewController debe poner saltos de línea en el HTML. Si cualquier línea es> 76 caracteres de largo, el cuerpo va a ser interpretada como sigue:

Content-Type: text/html; charset=UTF-8 
Content-Transfer-Encoding: quoted-printable 

Si pones saltos de línea en el Content-Transfer-Encoding: quoted-printable no va a pasar y todo funciona como se esperaba. Asumiendo que tienes HTML apropiado.

A modo de ejemplo, construir el cuerpo de la siguiente manera:

NSMutableString *body = [NSMutableString string]; 
// add HTML before the link here with line breaks (\n) 
[body appendString:@"<h1>Hello User!</h1>\n"]; 
[body appendString:@"<a href=\"http://www.mysite.com/path/to/link\">Click Me!</a>\n"]; 
[body appendString:@"<div>Thanks much!</div>\n"]; 

Salud!

+1

¡Excelente! ¡Es bueno saber sobre los saltos de línea! Sálvame un poco de tiempo, el hombre aplaude. – MaKo

7

Tengo el mismo problema.

Mi enlace es HTML, puedo ver "azul", pero si hago clic en él, no abra Safari Mobile. Me está permitido editar el texto.

En una clase tengo esto:

-(id) init{ 
    self = [super init]; 
    if (self) { 
      if ([MFMailComposeViewController canSendMail]) { 
       self.mailComposeDelegate = self; 
       [self setSubject: @"Subject"]; 
       [self setMessageBody: @"<h2>Body</h2><a href='http://www.google.com'>link example</a>" isHTML: YES]; 
      } 
      else { 
       UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Mail Accounts" 
                   message:@"You don't have a Mail account configured, please configure to send email." 
                   delegate:nil 
                 cancelButtonTitle:@"OK" 
                 otherButtonTitles: nil]; 
       [alert show]; 
      } 
    } 
    return self; 
} 

-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{ 
    [controller dismissModalViewControllerAnimated: YES]; 
} 

Aquí se puede ver el iPad Captura de pantalla: iPad Screen shot

Si envío, y luego ir a "Sent" Bandeja de las obras de enlace, entonces creo que el problema es el evento que abre los enlaces.

Gracias.

+0

¿Has hecho clic? redirigir en el enlace si es así, por favor publique aquí @Oceanicsix Gracias – Maul

+0

Hola, hace más de un año, si soy sincero ahora no recuerdo cómo terminé este problema. Lo siento y suerte! – Mikel

Cuestiones relacionadas