Bom pessoal vamos começar mais um post, hoje vamos desenvolver uma ferramenta extremamente útil e simples, vamos enviar um e-mail sem precisar sair de nosso aplicativo.
Vamos começar
Vamos começar com uma sinlge View e vamos colocar 1 botão nela, e não precisamos de mais nada em nossa interface.
Para enviar e-mail é necessário que importemos o framework MessageUI ele será o responsável por enviar nossos dados, com a classe importada precisamos agora criar um componente e vamos também importar nosso delegate, nosso arquivo .h está assim:
#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>
@interface ViewController : UIViewController <MFMailComposeViewControllerDelegate>{
MFMailComposeViewController *formularioEmail;
}
-
(IBAction)envia:(UIButton *)sender;
Criamos também a action do botão que fará o disparo do e-mail. Agora vamos para nosso .m onde implementaremos o resto de nosso código:
Dentro de nossa action vamos implementar o seguinte código.
// dentro de nossa action vamos colocar os dados para enviar
// pré defini destinatários (não é necessário)
// NSArray *destinatario = [[NSArray alloc]initWithObjects:@”contato@yesbr.com.br”, nil];
//
// [formularioEmail setToRecipients:destinatario];
formularioEmail = [[MFMailComposeViewController alloc]init];
formularioEmail.mailComposeDelegate = self;
// setSubject adiciona um assunto ao email
[formularioEmail setSubject:@”Email de teste”];
// temos agora o corpo da mensagem
[formularioEmail setMessageBody:@”Enviamos nossa mensagem” isHTML:NO];
[self presentModalViewController:formularioEmail animated:YES];
A vantagem de usar esses métodos que já temos tudo criado pelo celular apenas chamamos o formulário de e-mail, o que torna todo o processo muito mais simples, e intuitivo para o usuário.
Os comentários já deixam o código bem fácil de entender mas vamos explicar apenas a questão de destinatários, em algumas situações, o aplicativo tem que enviar e-mail para um destinatário específico por exemplo um formulário de contato enviará o e-mail para o contato, nessa situação podemos implementar o setToRecipents e colocamos os destinatários em um array para poder enviar o e-mail a vários usuários por vez.
Feito a implementação de nossa ação para envio vamos obter a resposta se nosso e-mail foi ou não enviado. Para isso vamos implementar o seguinte método nele com base na resposta celular mostra um alerta se o e-mail foi ou não enviado com sucesso.
-(void)mailComposeController:(MFMailComposeViewController *)controller
didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{
UIAlertView *mensagem;
if (result) {
mensagem = [[UIAlertView alloc]initWithTitle:@”Enviado” message:@”Email enviado com sucesso” delegate:self cancelButtonTitle:@”ok” otherButtonTitles:nil, nil];
}
if (error) {
mensagem = [[UIAlertView alloc]initWithTitle:@”Erro” message:@”Erro ao enviar mensagem” delegate:self cancelButtonTitle:@”ok” otherButtonTitles:nil, nil];
}
[mensagem show];
[self dismissViewControllerAnimated:YES completion:nil];
}
Bom pessoal esse projeto foi extremamente simples, porém é bem interessante para implementar no seus apps.
No comment yet, add your voice below!