Android - E-Mail senden
Email sind Nachrichten, die auf elektronischem Wege von einem Systembenutzer über ein Netzwerk an einen oder mehrere Empfänger verteilt werden.
Bevor Sie mit der E-Mail-Aktivität beginnen, müssen Sie die E-Mail-Funktionalität mit Absicht kennen. Intent überträgt Daten von einer Komponente zu einer anderen Komponente innerhalb der Anwendung oder außerhalb der Anwendung.
Um eine E-Mail von Ihrer Anwendung aus zu senden, müssen Sie nicht von Anfang an einen E-Mail-Client implementieren. Sie können jedoch eine vorhandene E-Mail verwenden, z. B. die Standard-E-Mail-App von Android, Google Mail, Outlook, K-9 Mail usw. Zu diesem Zweck müssen wir eine Aktivität schreiben, die einen E-Mail-Client mit einer impliziten Absicht mit der richtigen Aktion und den richtigen Daten startet. In diesem Beispiel senden wir eine E-Mail von unserer App mithilfe eines Intent-Objekts, mit dem vorhandene E-Mail-Clients gestartet werden.
Im folgenden Abschnitt werden verschiedene Teile unseres Intent-Objekts erläutert, die zum Senden einer E-Mail erforderlich sind.
Absichtsobjekt - Aktion zum Senden von E-Mails
Du wirst benutzen ACTION_SENDAktion zum Starten eines auf Ihrem Android-Gerät installierten E-Mail-Clients. Es folgt eine einfache Syntax zum Erstellen einer Absicht mit der Aktion ACTION_SEND.
Intent emailIntent = new Intent(Intent.ACTION_SEND);
Absichtsobjekt - Daten / Typ zum Senden von E-Mails
Um eine E-Mail zu senden, müssen Sie angeben mailto: als URI mit setData () -Methode und Datentyp wird zu text/plain Verwenden der setType () -Methode wie folgt:
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");
Absichtsobjekt - Extra zum Senden von E-Mails
Android verfügt über eine integrierte Unterstützung zum Hinzufügen von TO-, SUBJECT-, CC-, TEXT- usw. Feldern, die an die Absicht angehängt werden können, bevor die Absicht an einen Ziel-E-Mail-Client gesendet wird. Sie können folgende zusätzliche Felder in Ihrer E-Mail verwenden:
Sr.Nr. | Zusätzliche Daten und Beschreibung |
---|---|
1 | EXTRA_BCC Ein String [] mit E-Mail-Adressen, die blind kopiert werden sollen. |
2 | EXTRA_CC Ein String [] mit E-Mail-Adressen, die kopiert werden sollen. |
3 | EXTRA_EMAIL Ein String [] mit E-Mail-Adressen, an die gesendet werden soll. |
4 | EXTRA_HTML_TEXT Eine konstante Zeichenfolge, die der Absicht zugeordnet ist und mit ACTION_SEND verwendet wird, um eine Alternative zu EXTRA_TEXT als HTML-formatierten Text bereitzustellen. |
5 | EXTRA_SUBJECT Eine konstante Zeichenfolge, die die gewünschte Betreffzeile einer Nachricht enthält. |
6 | EXTRA_TEXT Eine konstante CharSequence, die der Absicht zugeordnet ist und mit ACTION_SEND verwendet wird, um die zu sendenden Literaldaten bereitzustellen. |
7 | EXTRA_TITLE Ein CharSequence-Dialogfeldtitel, der dem Benutzer bei Verwendung mit einem ACTION_CHOOSER zur Verfügung gestellt wird. |
Hier ist ein Beispiel, das Ihnen zeigt, wie Sie Ihrer Absicht zusätzliche Daten zuweisen können:
emailIntent.putExtra(Intent.EXTRA_EMAIL , new String[]{"Recipient"});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "subject");
emailIntent.putExtra(Intent.EXTRA_TEXT , "Message Body");
Die Ausgabe des obigen Codes ist wie unten gezeigt ein Bild
E-Mail-Beispiel
Beispiel
Das folgende Beispiel zeigt Ihnen in der Praxis, wie Sie mit dem Intent-Objekt den E-Mail-Client starten, um eine E-Mail an die angegebenen Empfänger zu senden.
Um mit diesem Beispiel per E-Mail experimentieren zu können, benötigen Sie ein aktuelles Mobilgerät mit dem neuesten Android-Betriebssystem. Andernfalls kann es zu Problemen mit dem Emulator kommen, der möglicherweise nicht ordnungsgemäß funktioniert. Zweitens müssen Sie einen E-Mail-Client wie GMail (standardmäßig jede Android-Version mit Google Mail-Client-App) oder K9mail auf Ihrem Gerät installiert haben.
Schritt | Beschreibung |
---|---|
1 | Mit Android Studio erstellen Sie eine Android-Anwendung und benennen sie unter dem Paket com.example.tutorialspoint als Tutorialspoint . |
2 | Ändern src / MainActivity.java Datei und fügen Sie erforderlichen Code darauf zu achten , E - Mail zu senden. |
3 | Ändern Sie die Layout-XML-Datei res / layout / activity_main.xml und fügen Sie bei Bedarf eine beliebige GUI-Komponente hinzu. Ich füge eine einfache Schaltfläche hinzu, um den E-Mail-Client zu starten. |
4 | Ändern Sie res / values / strings.xml , um die erforderlichen konstanten Werte zu definieren |
5 | Modify AndroidManifest.xml wie unten gezeigt |
6 | Führen Sie die Anwendung aus, um den Android-Emulator zu starten, und überprüfen Sie das Ergebnis der in der Anwendung vorgenommenen Änderungen. |
Es folgt der Inhalt der geänderten Hauptaktivitätsdatei 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();
}
}
}
Es folgt der Inhalt von res/layout/activity_main.xml Datei -
Hier zeigt abc das Tutorialspoint-Logo an
<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>
Es folgt der Inhalt von res/values/strings.xml zwei neue Konstanten definieren -
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Tutorialspoint</string>
<string name="compose_email">Compose Email</string>
</resources>
Es folgt der Standardinhalt von 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>
Lassen Sie uns versuchen, Ihre auszuführen tutorialspointAnwendung. Ich gehe davon aus, dass Sie Ihr aktuelles Android Mobile-Gerät mit Ihrem Computer verbunden haben. Um die App in Android Studio auszuführen, öffnen Sie eine der Aktivitätsdateien Ihres Projekts und klicken Sie in
Jetzt benutzen Compose EmailKlicken Sie auf die Schaltfläche, um alle installierten E-Mail-Clients aufzulisten. Aus der Liste können Sie einen der E-Mail-Clients auswählen, um Ihre E-Mail zu senden. Ich werde den Google Mail-Client verwenden, um meine E-Mail zu senden, in der alle bereitgestellten Standardfelder wie unten gezeigt verfügbar sind. HierFrom: Dies ist die Standard-E-Mail-ID, die Sie für Ihr Android-Gerät registriert haben.
Sie können eines der angegebenen Standardfelder ändern und schließlich die Schaltfläche E-Mail senden verwenden, um Ihre E-Mail an die genannten Empfänger zu senden.