http://vietjack.com/android/index.jsp Copyright © vietjack.com Send Mail Android Email thông điệp phân phối cách thức điện tử từ hệ thống người dùng tới nhiều người nhận thông qua mạng Trước bắt đầu Email Activity, bạn phải biết tính Email với Intent Intent mang liệu từ thành phần tới thành phần khác bên ứng dụng bên ứng dụng Để gửi mail từ ứng dụng, bạn triển khai Email Client lúc ban đầu, bạn sử dụng Client tồn Email App mặc định cung cấp Android, Gmail, Outlook, K-9 Mail, … Cho mục đích này, cần viết Activity mà chạy Email Client, sử dụng Implicit Intent với action data thích hợp Trong ví dụ, gửi mail từ ứng dụng sử dụng đối tượng Intent mà chạy Email Client tồn Tiếp theo, giải thích phần khác đối tượng Intent cần thiết để gửi Email Đối tượng Intent: Action để gửi Email Bạn sử dụng action ACTION_SEND để chạy Email Client cài đặt thiết bị Android bạn Cú pháp đơn giản để tạo Intent với ACTION_SEND là: Intent emailIntent = new Intent(Intent.ACTION_SEND); Đối tượng Intent: Dữ liệu/kiểu để gửi Email Để gửi Email, bạn cần xác định mailto: dạng URI sử dụng phương thức setData() kiểu liệu text/plain sử dụng phương thức setType(), sau: − emailIntent.setData(Uri.parse("mailto:")); emailIntent.setType("text/plain"); Đối tượng Intent: Extra để gửi Email Android có sẵn hỗ trợ để thêm trường TO, SUBJECT, CC, TEXT, … đính kèm với Intent trước gửi Intent tới Email Client Bạn sử dụng trường Extra sau email bạn: − Stt Extra Data & Miêu tả http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/android/index.jsp Copyright © vietjack.com EXTRA_BCC Một String[] giữ địa email mà nên Blind Carbon Copied EXTRA_CC Một String[] giữ địa email mà nên Carbon Copied EXTRA_EMAIL Một String[] giữ địa email nên gửi tới EXTRA_HTML_TEXT Một chuỗi gắn kết với Intent, sử dụng với ACTION_SEND để cung cấp thay cho EXTRA_TEXT dạng text định dạng HTML EXTRA_SUBJECT Một chuỗi giữ dòng Subject thơng điệp EXTRA_TEXT Một dãy ký tự gắn kết với Intent, sử dụng với ACTION_SEND để cung cấp liệu để gửi EXTRA_TITLE Một title để cung cấp tới người dùng sử dụng với ACTION_CHOOSER Ví dụ sau minh họa cách bạn gán liệu Extra tới Intent bạn: − emailIntent.putExtra(Intent.EXTRA_EMAIL , new String[]{"Recipient"}); emailIntent.putExtra(Intent.EXTRA_SUBJECT, "subject"); emailIntent.putExtra(Intent.EXTRA_TEXT , "Message Body"); Kết code sau: http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/android/index.jsp Copyright © vietjack.com VÍ DỤ EMAIL TRONG ANDROID Ví dụ Ví dụ sau minh họa cách sử dụng đối tượng Intent để chạy Email Client để gửi Email tới người nhận cho Để thử nghiệm ví dụ này, bạn cần thiết bị Mobile thực trang bị Android OS (Android Lollipop) nhất, không bạn gặp trục trặc với hình mơ Emulator Thứ hai, bạn cần có Email Client Gmail (theo mặc định phiên Android có ứng dụng Gmail Client) K9mail cài đặt thiết bị Bước Miêu tả Bạn sử dụng Android Studio để tạo ứng dụng Android với tên Tutorialspointdưới package làcom.example.tutorialspoint Trong tạo project này, đảm bảo bạn có Target SDK Compile With phiên Android SDK để sử dụng APIs cấp độ cao http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/android/index.jsp Copyright © vietjack.com Sửa đổi src/MainActivity.javafile thêm code cần thiết để gửi mail Sửa đổi res/layout/activity_main.xml thêm thành phần GUI cần Mình thêm nút đơn giản để chạy Email Client Sửa đổi res/values/strings.xml để định nghĩa giá trị cần thiết Sửa đổi AndroidManifest.xml Chạy ứng dụng để chạy Android Emulator kiểm tra kết thay đổi thực ứng dụng Sau nội dung Main Activity file 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(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present menu); return true; } } getMenuInflater().inflate(R.menu.main, http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/android/index.jsp Copyright © vietjack.com Sau nội dung res/layout/activity_main.xml file − Sau nội dung res/values/strings.xml để định nghĩa hai − Tutorialspoint Hello world! Settings Compose Email Sau nội dung mặc định AndroidManifest.xml: Cuối cùng, bạn chạy ứng dụng Android vừa tạo http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/android/index.jsp Copyright © vietjack.com Bây sử dụng nútCompose Email để liệt kê tất Email Client cài đặt Từ danh sách, bạn chọn Email Client để gửi Email Mình sử dụng Gmail mà cung cấp tất trường mặc định Ở đây, From: Email ID bạn đăng ký cho thiết bị Android bạn http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/android/index.jsp Copyright © vietjack.com Bạn sửa đổi số trường mặc định sau sử dụng nút Send Email để gửi mail tới người nhận http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 ... 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;... findViewById(R.id.sendEmail); startBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { sendEmail(); } }); } protected void sendEmail() { Log.i( "Send email" , ""); String[]... android: id="@+id/imageButton" android: src="@drawable/abc" android: layout_centerVertical="true" android: layout_centerHorizontal="true" />