Android - Gửi Email

Email là thông điệp được phân phối bằng phương tiện điện tử từ một người sử dụng hệ thống đến một hoặc nhiều người nhận thông qua mạng.

Trước khi bắt đầu Hoạt động email, Bạn phải biết chức năng Email với mục đích, Mục đích đang mang dữ liệu từ thành phần này sang thành phần khác trong ứng dụng hoặc bên ngoài ứng dụng.

Để gửi email từ ứng dụng của bạn, bạn không phải triển khai ứng dụng email ngay từ đầu, nhưng bạn có thể sử dụng ứng dụng hiện có như ứng dụng Email mặc định được cung cấp từ Android, Gmail, Outlook, K-9 Mail, v.v. Đối với điều này mục đích, chúng ta cần viết Hoạt động khởi chạy ứng dụng email khách, sử dụng Ý định ngầm với hành động và dữ liệu phù hợp. Trong ví dụ này, chúng tôi sẽ gửi email từ ứng dụng của mình bằng cách sử dụng đối tượng Intent khởi chạy ứng dụng email hiện có.

Phần sau giải thích các phần khác nhau của đối tượng Intent của chúng tôi cần để gửi email.

Đối tượng ý định - Hành động gửi Email

Bạn sẽ sử dụng ACTION_SENDđể khởi chạy ứng dụng email được cài đặt trên thiết bị Android của bạn. Sau đây là cú pháp đơn giản để tạo một ý định với hành động ACTION_SEND.

Intent emailIntent = new Intent(Intent.ACTION_SEND);

Đối tượng ý định - Dữ liệu / Loại để gửi Email

Để gửi một email, bạn cần chỉ định mailto: vì URI sử dụng phương thức setData () và kiểu dữ liệu sẽ là text/plain sử dụng phương thức setType () như sau:

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

Đối tượng Ý định - Thêm để gửi Email

Android có hỗ trợ tích hợp để thêm các trường TO, SUBJECT, CC, TEXT, v.v. có thể được đính kèm vào ý định trước khi gửi ý định đến ứng dụng email khách mục tiêu. Bạn có thể sử dụng các trường bổ sung sau trong email của mình -

Sr.No. Dữ liệu & Mô tả bổ sung
1

EXTRA_BCC

Chuỗi [] chứa các địa chỉ e-mail nên được sao chép một cách mù mờ.

2

EXTRA_CC

Chuỗi [] chứa các địa chỉ e-mail cần được sao chép carbon.

3

EXTRA_EMAIL

Chuỗi [] chứa các địa chỉ e-mail sẽ được gửi đến.

4

EXTRA_HTML_TEXT

Chuỗi không đổi được liên kết với Intent, được sử dụng với ACTION_SEND để cung cấp một thay thế cho EXTRA_TEXT dưới dạng văn bản có định dạng HTML.

5

EXTRA_SUBJECT

Một chuỗi không đổi chứa dòng chủ đề mong muốn của thư.

6

EXTRA_TEXT

Một CharSequence không đổi được liên kết với Intent, được sử dụng với ACTION_SEND để cung cấp dữ liệu theo nghĩa đen sẽ được gửi.

7

EXTRA_TITLE

Tiêu đề hộp thoại CharSequence để cung cấp cho người dùng khi được sử dụng với ACTION_CHOOSER.

Dưới đây là một ví dụ cho bạn thấy cách gán dữ liệu bổ sung cho mục đích của bạn -

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

Phần mở rộng của mã trên như hình ảnh minh họa bên dưới

Ví dụ về Email

Thí dụ

Ví dụ sau đây cho bạn thấy thực tế cách sử dụng đối tượng Intent để khởi chạy ứng dụng Email để gửi Email đến những người nhận nhất định.

Để thử nghiệm Email với ví dụ này, bạn sẽ cần thiết bị Di động thực tế được trang bị Hệ điều hành Android mới nhất, nếu không, bạn có thể gặp khó khăn với trình giả lập có thể không hoạt động bình thường. Thứ hai, bạn sẽ cần phải có ứng dụng Email như GMail (Theo mặc định, mọi phiên bản Android có Ứng dụng ứng dụng khách Gmail) hoặc K9mail được cài đặt trên thiết bị của bạn.
Bươc Sự miêu tả
1 Bạn sẽ sử dụng Android studio để tạo một ứng dụng Android và đặt tên là Tutorialspoint theo gói com.example.tutorialspoint .
2 Sửa đổi tệp src / MainActivity.java và thêm mã bắt buộc để thực hiện việc gửi email.
3 Sửa đổi tệp XML bố cục res / layout / activity_main.xml thêm bất kỳ thành phần GUI nào nếu cần. Tôi đang thêm một nút đơn giản để khởi chạy Ứng dụng khách qua email.
4 Sửa đổi res / giá trị / string.xml để xác định các giá trị hằng số bắt buộc
5 Sửa đổi AndroidManifest.xml như hình dưới đây
6 Chạy ứng dụng để khởi chạy trình giả lập Android và xác minh kết quả của các thay đổi được thực hiện trong ứng dụng.

Sau đây là nội dung của tệp hoạt động chính được sửa đổi 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();
      }
   }
}

Sau đây sẽ là nội dung của res/layout/activity_main.xml tập tin -

Ở đây abc chỉ ra về logo hướng dẫn
<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>

Sau đây sẽ là nội dung của res/values/strings.xml để xác định hai hằng số mới -

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

Sau đây là nội dung mặc định của 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>

Hãy cố gắng chạy tutorialspointứng dụng. Tôi giả sử bạn đã kết nối thiết bị di động Android thực tế với máy tính của mình. Để chạy ứng dụng từ Android Studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào

biểu tượng Chạy từ thanh công cụ. Trước khi khởi động ứng dụng của bạn, trình cài đặt Android studio sẽ hiển thị cửa sổ sau để chọn một tùy chọn mà bạn muốn chạy ứng dụng Android của mình. Chọn thiết bị di động của bạn làm tùy chọn rồi kiểm tra thiết bị di động của bạn sẽ hiển thị màn hình sau -

Bây giờ sử dụng Compose Emailđể liệt kê tất cả các ứng dụng email đã cài đặt. Từ danh sách, bạn có thể chọn một trong các ứng dụng email để gửi email của mình. Tôi sẽ sử dụng ứng dụng khách Gmail để gửi email của mình, email này sẽ có sẵn tất cả các trường mặc định được cung cấp như hình dưới đây. ĐâyFrom: sẽ là ID email mặc định mà bạn đã đăng ký cho thiết bị Android của mình.

Bạn có thể sửa đổi một trong các trường mặc định đã cho và cuối cùng sử dụng nút gửi email để gửi email của bạn đến những người nhận được đề cập.