Электронная почта — это сообщения, распространяемые с помощью электронных средств от одного пользователя системы одному или нескольким получателям через сеть.
Прежде чем приступить к работе с электронной почтой, вы должны знать функциональность электронной почты с намерением. Намерение передает данные из одного компонента в другой компонент в приложении или за его пределами.
Чтобы отправить электронное письмо из вашего приложения, вам не нужно реализовывать почтовый клиент с самого начала, но вы можете использовать существующий, такой как почтовое приложение по умолчанию, предоставляемое из Android, Gmail, Outlook, K-9 Mail и т. Д. Для этого Для этого нам нужно написать Activity, которая запускает почтовый клиент с неявным намерением с правильным действием и данными. В этом примере мы собираемся отправить электронное письмо из нашего приложения с помощью объекта Intent, который запускает существующие почтовые клиенты.
В следующем разделе описываются различные части нашего объекта Intent, необходимые для отправки электронного письма.
Intent Object — Действие для отправки электронной почты
Вы будете использовать действие ACTION_SEND для запуска почтового клиента, установленного на вашем Android-устройстве. Ниже приведен простой синтаксис для создания намерения с действием ACTION_SEND.
Intent emailIntent = new Intent(Intent.ACTION_SEND);
Намеренный объект — данные / тип для отправки электронной почты
Чтобы отправить электронное письмо, вам нужно указать mailto: в качестве URI, используя метод setData (), а тип данных будет text / plain, используя метод setType () следующим образом:
emailIntent.setData(Uri.parse("mailto:")); emailIntent.setType("text/plain");
Intent Object — Дополнительно для отправки электронной почты
Android имеет встроенную поддержку для добавления полей TO, SUBJECT, CC, TEXT и т. Д., Которые можно прикрепить к цели перед отправкой намерения целевому почтовому клиенту. Вы можете использовать следующие дополнительные поля в вашей электронной почте —
Sr.No. | Дополнительные данные и описание |
---|---|
1 |
EXTRA_BCC Строка [], содержащая адреса электронной почты, которые должны быть слепо скопированы. |
2 |
EXTRA_CC Строка [], содержащая адреса электронной почты, которые должны быть скопированы. |
3 |
EXTRA_EMAIL Строка [], содержащая адреса электронной почты, которые должны быть доставлены. |
4 |
EXTRA_HTML_TEXT Константа String, связанная с Intent, используемая с ACTION_SEND для предоставления альтернативы EXTRA_TEXT в виде текста в формате HTML. |
5 |
EXTRA_SUBJECT Постоянная строка, содержащая желаемую строку темы сообщения. |
6 |
EXTRA_TEXT Константа CharSequence, связанная с Intent, используемая с ACTION_SEND для предоставления литеральных данных для отправки. |
7 |
EXTRA_TITLE Заголовок диалога CharSequence для предоставления пользователю при использовании с ACTION_CHOOSER. |
EXTRA_BCC
Строка [], содержащая адреса электронной почты, которые должны быть слепо скопированы.
EXTRA_CC
Строка [], содержащая адреса электронной почты, которые должны быть скопированы.
EXTRA_EMAIL
Строка [], содержащая адреса электронной почты, которые должны быть доставлены.
EXTRA_HTML_TEXT
Константа String, связанная с Intent, используемая с ACTION_SEND для предоставления альтернативы EXTRA_TEXT в виде текста в формате HTML.
EXTRA_SUBJECT
Постоянная строка, содержащая желаемую строку темы сообщения.
EXTRA_TEXT
Константа CharSequence, связанная с Intent, используемая с ACTION_SEND для предоставления литеральных данных для отправки.
EXTRA_TITLE
Заголовок диалога CharSequence для предоставления пользователю при использовании с ACTION_CHOOSER.
Вот пример, показывающий, как назначить дополнительные данные для вашего намерения —
emailIntent.putExtra(Intent.EXTRA_EMAIL , new String[]{"Recipient"}); emailIntent.putExtra(Intent.EXTRA_SUBJECT, "subject"); emailIntent.putExtra(Intent.EXTRA_TEXT , "Message Body");
Результат вышеприведенного кода такой, как показано ниже
Пример электронной почты
пример
В следующем примере показано, как на практике использовать объект Intent для запуска почтового клиента для отправки электронного письма указанным получателям.
Чтобы по электронной почте поэкспериментировать с этим примером, вам понадобится мобильное устройство с новейшей ОС Android, в противном случае вы можете столкнуться с проблемой эмулятора, который может работать некорректно. Во-вторых, вам понадобится почтовый клиент, такой как GMail (по умолчанию каждая версия Android с клиентским приложением Gmail) или K9mail, установленный на вашем устройстве.
шаг | Описание |
---|---|
1 | Вы будете использовать Android studio для создания приложения Android и назовите его как Tutorialspoint в пакете com.example.tutorialspoint . |
2 | Измените файл src / MainActivity.java и добавьте необходимый код для отправки электронной почты. |
3 | Измените XML-файл макета. Res / layout / activity_main.xml добавьте любой компонент GUI, если это необходимо. Я добавляю простую кнопку для запуска почтового клиента. |
4 | Измените файл res / values / strings.xml, чтобы определить необходимые постоянные значения |
5 | Измените AndroidManifest.xml, как показано ниже |
6 | Запустите приложение, чтобы запустить эмулятор Android, и проверьте результат изменений, внесенных в приложение. |
Ниже приводится содержимое измененного основного файла активности 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(); } } }
Ниже будет содержание файла res / layout / activity_main.xml —
Здесь abc указывает на логотип 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>
Ниже будет содержимое файла res / values / strings.xml для определения двух новых констант:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Tutorialspoint</string> <string name="compose_email">Compose Email</string> </resources>
Ниже приводится содержимое по умолчанию для 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>
Давайте попробуем запустить ваше приложение tutorialspoint . Я предполагаю, что вы подключили свое фактическое мобильное устройство Android к компьютеру. Чтобы запустить приложение из Android Studio, откройте один из файлов деятельности вашего проекта и нажмите «Выполнить». значок с панели инструментов. Перед запуском приложения программа установки Android Studio отобразит следующее окно, чтобы выбрать вариант, в котором вы хотите запустить приложение Android. Выберите мобильное устройство в качестве параметра, а затем проверьте свое мобильное устройство, которое отобразит следующий экран —
Теперь используйте кнопку « Написать письмо», чтобы вывести список всех установленных почтовых клиентов. Из списка вы можете выбрать один из почтовых клиентов для отправки вашей электронной почты. Я собираюсь использовать клиент Gmail для отправки своего электронного письма, в котором будут доступны все поля по умолчанию, как показано ниже. Здесь From: будет идентификатором электронной почты по умолчанию, который вы зарегистрировали для своего устройства Android.
Вы можете изменить любое из указанных полей по умолчанию и, наконец, использовать кнопку отправки электронной почты, чтобы отправить свою электронную почту указанным получателям.