Quiero enviar un correo electrónico desde la aplicación de mi iPhone. He oído que el SDK de iOS no tiene una API de correo electrónico. No quiero usar el siguiente código porque saldrá de mi aplicación:
NSString *url = [NSString stringWithString: @"mailto:[email protected][email protected]&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
Entonces, ¿cómo puedo enviar un correo electrónico desde mi aplicación?
ios
iphone
email
cocoa-touch
Khushi
fuente
fuente
presentModalViewController:animated:
ydismissModalViewControllerAnimated:
han sido marcados como obsoletos - en lugar de los métodos de reemplazo basados en bloquespresentViewController:animated:completion:
ydismissViewControllerAnimated:completion:
se debe utilizar.@interface viewController : UIViewController <MFMailComposeViewControllerDelegate>
[self presentModalViewController:controller animated:YES];
reemplaza con[self presentViewController:controller animated:YES completion:nil];
y[self dismissModalViewControllerAnimated:YES];
reemplaza con[self dismissViewControllerAnimated:YES completion:nil];
MFMailComposeViewController es el camino a seguir después del lanzamiento del software iPhone OS 3.0. Puedes mirar el código de muestra o el tutorial que escribí .
fuente
Algunas cosas que me gustaría agregar aquí:
El uso de la URL mailto no funcionará en el simulador ya que mail.app no está instalado en el simulador. Sin embargo, funciona en el dispositivo.
Hay un límite en la longitud de la URL de mailto. Si la URL tiene más de 4096 caracteres, mail.app no se iniciará.
Hay una nueva clase en OS 3.0 que le permite enviar un correo electrónico sin salir de su aplicación. Vea la clase MFMailComposeViewController.
fuente
Si desea enviar un correo electrónico desde su aplicación, el código anterior es la única forma de hacerlo a menos que codifique su propio cliente de correo (SMTP) dentro de su aplicación, o haga que un servidor envíe el correo por usted.
Por ejemplo, podría codificar su aplicación para invocar una URL en su servidor que enviaría el correo por usted. Luego simplemente llama a la URL desde su código.
Tenga en cuenta que con el código anterior no puede adjuntar nada al correo electrónico, que el método del cliente SMTP le permitiría hacer, así como el método del lado del servidor.
fuente
El siguiente código se utiliza en mi aplicación para enviar un correo electrónico con un archivo adjunto. Aquí los archivos adjuntos son una imagen. Puede enviar cualquier tipo de archivo. Lo único que debe tener en cuenta es que debe especificar el correcto .
agregue esto a su archivo .h
Agregue MessageUI.framework a su archivo de proyecto
El método de delegado es como se muestra a continuación
fuente
Este es el código que puede ayudarlo, pero no olvide incluir el mensaje ui framewark e incluir el método de delegados MFMailComposeViewControllerDelegate
fuente
Swift 2.2. Adaptado de la respuesta de Esq
Codigo del cliente :
fuente
Para enviar un correo electrónico desde la aplicación de iPhone, debe hacer la siguiente lista de tareas.
Paso 1: Importa
#import <MessageUI/MessageUI.h>
en tu clase de controlador donde deseas enviar un correo electrónico.Paso 2: agregue el delegado a su controlador como se muestra a continuación
Paso 3: agregue el siguiente método para enviar correos electrónicos.
Paso 4: Implemente MFMailComposeViewController Delegate
fuente
Swift 2.0
fuente
Heres una versión Swift:
Fuente
fuente
Escribí un contenedor simple llamado KRNSendEmail que simplifica el envío de correo electrónico a una llamada de método.
El KRNSendEmail está bien documentado y agregado a CocoaPods.
https://github.com/ulian-onua/KRNSendEmail
fuente