fbpx

Enviando e-mail no Android com Delphi XE5

Enviando e-mil no Android com Delphi XE5

Veja neste tutorial como sua aplicação Android desenvolvida com Delphi XE5 enviar e-mail utilizando o recurso do  próprio sistema operacional.

Quando podemos utilizar

Imagine que você tenha um aplicativo de força de vendas e necessite enviar um e-mail para um determinado cliente que conste no cadastro de sua aplicação. Poder fazer isso apenas clicando sobre o cliente pode gerar um ganho de tempo significativo na atividade de seu usuário, é exatamente isso que faremos nessa postagem.

Enviando e-mil no Android com Delphi XE5

Sempre Intent

Mais uma vez vamos nos comunicar diretamente com o Sistema Operacional Android, para fazê-lo a melhor maneira é fazendo uso de Intents, volto a lembrar que caso não tenha lido ainda a postagem que já fiz sobre o assunto considero altamente recomendável a leitura: INTENTS COM DELPHI XE5 COMUNICANDO APPS ATRAVÉS DO ANDROID.

Concebendo a aplicação

Abra o Delphi XE5 e inicie um Novo Projeto Mobile em Branco, como já fizemos inúmeras vezes aqui no blog. Construiremos uma interface bem simples, inserindo no formulário principal da aplicação: 1 Button, 1 Edit e 1 Image. Como descrito abaixo alteraremos suas propriedades:

  • Button1
    • Align -> alBottom
    • Text -> E-mail
  • Edit1
    • Align -> alTop
    • KeyboardTye -> vktEmailAddress
  • Image1
    • Align -> alClient
    • MultiResBitmap -> [selecione uma imagem de sua preferência]
    • WrapMode -> iwStretch

Ao final do processo teremos uma tela bem parecida com a imagem abaixo.

Tela da Aplicação de e-mail

Basicamente, ao clicar no Botão o usuário vai enviar um e-mail para o destinatário informado no Edit. Vamos aos códigos!

Implementando a funcionalidade

Primeiramente vamos inserir na cláusula uses da seção implementation os seguintes Namespaces:

implementation

{$R *.fmx}
uses 
FMX.Helpers.Android, Androidapi.Jni.GraphicsContentViewText, 
Androidapi.Jni.Net, Androidapi.Jni.JavaTypes, Androidapi.JNIBridge;

No evento OnClick do Button1 vamos inserir o código abaixo:

procedure TForm1.Button1Click(Sender: TObject);
var
  Destinatario : string;
  Intent : JIntent;
  Destinatarios: TJavaObjectArray<JString>;
begin
  if Edit1.Text <> EmptyStr then
    begin
            Destinatario := Edit1.Text;
            Destinatarios := TJavaObjectArray<JString>.Create(1);

            Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_SEND);
            Destinatarios.Items[0] := StringToJString(Destinatario);
            Intent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL, Destinatarios);
            Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT, StringToJString('E-mail de Teste'));
            Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT, StringToJString('corpo do email'));
            Intent.setType(StringToJString('plain/text'));
            SharedActivity.startActivity(TJIntent.JavaClass.createChooser(Intent,
              StrToJCharSequence('Qual aplicativo deseja usar?')));
    end;

end;

Detalhando algumas linhas

A Intent ACTION_SEND não necessita de uma URI, entretanto passamos para ela alguns EXTRAS, que funcionam como se fosse parâmetros adicionais para o preenchimento de campos na Activity a ser chamada, vamos detalhá-los:

  • TJIntent.JavaClass.EXTRA_EMAIL –> destinatário do e-mail.
  • TJIntent.JavaClass.EXTRA_SUBJECT –> assunto do e-mail.
  • TJIntent.JavaClass.EXTRA_TEXT –> corpo do e-mail.

Adicionamos passamos também o tipo de texto a ser utilizado na intent através da linha: Intent.setType(StringToJString(‘plain/text’));

Notem na declaração de variáveis temos a linha:

Destinatarios TJavaObjectArray<JString>;

Que declara um array de string’s do nativas do Java (JString), que instanciado para conter uma única posição na linha: Destinatarios := TJavaObjectArray<JString>.Create(1); ,  para depois neste array inserirmos o destinatário de nosso e-mail, vide linha contendo o código: Destinatarios.Items[0] := StringToJString(Destinatario);

Conferindo o Resultado

Execute o projeto e confira o resultado!

Temos nossa aplicação Delphi XE5 enviando e-mail pelo próprio Android.
Até a próxima!

 

 

 

 

 

,

Comente