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
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.