Android - Enviando e-mail

Email são mensagens distribuídas por meio eletrônico de um usuário do sistema para um ou mais destinatários por meio de uma rede.

Antes de iniciar a atividade de e-mail, você deve conhecer a funcionalidade de e-mail com a intenção, a intenção é transportar dados de um componente para outro componente dentro ou fora do aplicativo.

Para enviar um e-mail de seu aplicativo, você não precisa implementar um cliente de e-mail desde o início, mas pode usar um já existente, como o aplicativo de e-mail padrão fornecido pelo Android, Gmail, Outlook, K-9 Mail etc. propósito, precisamos escrever uma Activity que inicie um cliente de e-mail, usando um Intent implícito com a ação e os dados corretos. Neste exemplo, enviaremos um e-mail de nosso aplicativo usando um objeto Intent que inicia os clientes de e-mail existentes.

A seção a seguir explica as diferentes partes de nosso objeto Intent necessárias para enviar um e-mail.

Objeto de intenção - ação para enviar e-mail

Você vai usar ACTION_SENDação para iniciar um cliente de e-mail instalado em seu dispositivo Android. A seguir está uma sintaxe simples para criar um intent com a ação ACTION_SEND.

Intent emailIntent = new Intent(Intent.ACTION_SEND);

Objeto de intenção - dados / tipo para enviar e-mail

Para enviar um e-mail você precisa especificar mailto: como URI usando o método setData () e o tipo de dados será text/plain usando o método setType () da seguinte maneira -

emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");

Objeto de intenção - Extra para enviar e-mail

O Android tem suporte integrado para adicionar campos TO, SUBJECT, CC, TEXT etc. que podem ser anexados ao intent antes de enviar o intent a um cliente de e-mail de destino. Você pode usar os seguintes campos extras em seu e-mail -

Sr. Não. Dados extras e descrição
1

EXTRA_BCC

Uma String [] contendo endereços de e-mail que deveriam ser copiados em carbono.

2

EXTRA_CC

Uma String [] contendo endereços de e-mail que devem ser copiados.

3

EXTRA_EMAIL

Uma String [] contendo endereços de e-mail que devem ser entregues.

4

EXTRA_HTML_TEXT

Uma string constante que é associada ao Intent, usada com ACTION_SEND para fornecer uma alternativa a EXTRA_TEXT como texto formatado em HTML.

5

EXTRA_SUBJECT

Uma string constante contendo a linha de assunto desejada de uma mensagem.

6

EXTRA_TEXT

Um CharSequence constante que está associado ao Intent, usado com ACTION_SEND para fornecer os dados literais a serem enviados.

7

EXTRA_TITLE

Um título de diálogo CharSequence para fornecer ao usuário quando usado com um ACTION_CHOOSER.

Aqui está um exemplo que mostra como atribuir dados extras à sua intenção -

emailIntent.putExtra(Intent.EXTRA_EMAIL  , new String[]{"Recipient"});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "subject");
emailIntent.putExtra(Intent.EXTRA_TEXT   , "Message Body");

A saída do código acima é mostrada abaixo como uma imagem

Exemplo de Email

Exemplo

O exemplo a seguir mostra na prática como usar o objeto Intent para iniciar o cliente de email para enviar um email para os destinatários fornecidos.

Para experimentar este exemplo por e-mail, você precisará de um dispositivo móvel real equipado com o sistema operacional Android mais recente, caso contrário, poderá ter dificuldades com o emulador, que pode não funcionar corretamente. Em segundo lugar, você precisará ter um cliente de e-mail como o GMail (por padrão, todas as versões do Android têm o aplicativo cliente do Gmail) ou K9mail instalado no seu dispositivo.
Degrau Descrição
1 Você usará o Android Studio para criar um aplicativo Android e nomeá-lo como Tutorialspoint em um pacote com.example.tutorialspoint .
2 Modifique o arquivo src / MainActivity.java e adicione o código necessário para cuidar do envio de e-mail.
3 Modifique o arquivo XML de layout res / layout / activity_main.xml e adicione qualquer componente GUI, se necessário. Estou adicionando um botão simples para iniciar o cliente de email.
4 Modifique res / values ​​/ strings.xml para definir os valores constantes necessários
5 Modifique AndroidManifest.xml conforme mostrado abaixo
6 Execute o aplicativo para iniciar o emulador Android e verifique o resultado das alterações feitas no aplicativo.

A seguir está o conteúdo do arquivo de atividade principal modificado src/com.example.Tutorialspoint/MainActivity.java.

package com.example.tutorialspoint;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      Button startBtn = (Button) findViewById(R.id.sendEmail);
      startBtn.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
            sendEmail();
         }
      });
   }
	
   protected void sendEmail() {
      Log.i("Send email", "");
      String[] TO = {""};
      String[] CC = {""};
      Intent emailIntent = new Intent(Intent.ACTION_SEND);
      
      emailIntent.setData(Uri.parse("mailto:"));
      emailIntent.setType("text/plain");
      emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);
      emailIntent.putExtra(Intent.EXTRA_CC, CC);
      emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Your subject");
      emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message goes here");
      
      try {
         startActivity(Intent.createChooser(emailIntent, "Send mail..."));
         finish();
         Log.i("Finished sending email...", "");
      } catch (android.content.ActivityNotFoundException ex) {
         Toast.makeText(MainActivity.this, "There is no email client installed.", Toast.LENGTH_SHORT).show();
      }
   }
}

A seguir estará o conteúdo de res/layout/activity_main.xml arquivo -

Aqui abc indica sobre o logotipo do tutorialspoint
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >
   
   <TextView
      android:id="@+id/textView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Sending Mail Example"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp" />
      
   <TextView
      android:id="@+id/textView2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point "
      android:textColor="#ff87ff09"
      android:textSize="30dp"
      android:layout_above="@+id/imageButton"
      android:layout_alignRight="@+id/imageButton"
      android:layout_alignEnd="@+id/imageButton" />
      
   <ImageButton
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageButton"
      android:src="@drawable/abc"
      android:layout_centerVertical="true"
      android:layout_centerHorizontal="true" />
      
   <Button 
      android:id="@+id/sendEmail"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:text="@string/compose_email"/>
    
</LinearLayout>

A seguir estará o conteúdo de res/values/strings.xml para definir duas novas constantes -

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">Tutorialspoint</string>
   <string name="compose_email">Compose Email</string>
</resources>

A seguir está o conteúdo padrão de AndroidManifest.xml -

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.Tutorialspoint" >
   
   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.tutorialspoint.MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

Vamos tentar executar o seu tutorialspointinscrição. Presumo que você tenha conectado seu dispositivo Android Mobile real ao computador. Para executar o aplicativo do Android Studio, abra um dos arquivos de atividade do seu projeto e clique no ícone Executar na barra de ferramentas. Antes de iniciar seu aplicativo, o instalador do Android Studio exibirá a seguinte janela para selecionar uma opção onde você deseja executar seu aplicativo Android. Selecione seu dispositivo móvel como uma opção e, em seguida, verifique seu dispositivo móvel, que exibirá a seguinte tela -

Agora usa Compose Emailbotão para listar todos os clientes de e-mail instalados. Na lista, você pode escolher um dos clientes de email para enviar seu email. Vou usar o cliente Gmail para enviar meu e-mail, que terá todos os campos padrão fornecidos disponíveis conforme mostrado abaixo. AquiFrom: será o ID de e-mail padrão que você registrou para o seu dispositivo Android.

Você pode modificar qualquer um dos campos padrão fornecidos e, finalmente, usar o botão enviar e-mail para enviar seu e-mail para os destinatários mencionados.