Tôi muốn gửi email thông qua đơn đăng ký của mình. Tôi cần gửi email dựa trên HTML chỉ qua G-Mail. Tôi tìm thấy các giải pháp sau đây mà mỗi người trong số họ có ưu và khuyết điểm.Android, Cách gửi email HTML và buộc Android gửi qua G-Mail chứ không phải các ứng dụng khác?
1) Sử dụng Intent (Intent.ACTION_SEND). Đây là cách rất đơn giản và tôi có thể thấy cơ thể của mình ở định dạng HTML nhưng vấn đề là khi tôi nhấp vào nút "Gửi email", rất nhiều ứng dụng như Facebook và Google+ bật lên vô ích và tôi không nên hiển thị nó trong danh sách đó . Đây là mã của nó:
String html = "<!DOCTYPE html><html><body><a href=\"http://www.w3schools.com\" target=\"_blank\">Visit W3Schools.com!</a>" + "<p>If you set the target attribute to \"_blank\", the link will open in a new browser window/tab.</p></body></html>";
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"MY EMAIL ADDRESS"});
intent.putExtra(Intent.EXTRA_SUBJECT, "subject here");
intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(html));
startActivity(Intent.createChooser(intent, "Send email..."));
2) Sử dụng Intent (Intent.ACTION_SENDTO). Bằng cách này, lọc các ứng dụng vô ích và chỉ cho tôi các ứng dụng thư khách. Nhưng nó không hiển thị email của tôi ở định dạng HTML trong ứng dụng khách gmail. Khi tôi gửi email, một số khách hàng hiển thị nội dung ở định dạng HTML trong khi những người khác không xác định HTML và liên kết của tôi hoạt động giống như văn bản thuần túy. Mã này cũng giống như:
String html = "<!DOCTYPE html><html><body><a href=\"http://www.w3schools.com\" target=\"_blank\">Visit W3Schools.com!</a>" + "<p>If you set the target attribute to \"_blank\", the link will open in a new browser window/tab.</p></body></html>";
Intent send = new Intent(Intent.ACTION_SENDTO);
String uriText = "mailto:MY EMAIL ADDRESS" + "?subject=subject here" + "&body=" + html;
uriText = uriText.replace(" ", "%20");
Uri uri = Uri.parse(uriText);
send.setData(uri);
startActivity(Intent.createChooser(send, "Send mail..."));
3) Gửi mail bằng cách sử JavaMail API mà thêm rất nhiều phức tạp cho ứng dụng và tôi đã không kiểm tra nó cho đến nay.
Đề xuất của bạn là gì? Tôi cần một cách để có lợi thế về cách thứ nhất và thứ hai. Tôi cần khi người dùng nhấp vào nút nó cho thấy khách hàng Gmail và tôi có thể hiển thị cho anh ta/cô ấy nội dung html trong phần cơ thể của khách hàng.
mọi đề xuất sẽ được đánh giá cao. Cảm ơn
======================
Cập nhật
Something về mã 2 là sai. Mã này là như thế này:
String html = "<!DOCTYPE html><html><body><a href=\"http://www.w3schools.com\" target=\"_blank\">Visit W3Schools.com!</a>" + "<p>If you set the target attribute to \"_blank\", the link will open in a new browser window/tab.</p></body></html>";
Intent send = new Intent(Intent.ACTION_SENDTO);
String uriText = "mailto:MY EMAIL ADDRESS" + "?subject=subject here" + "&body=" + Html.fromHtml(html);
uriText = uriText.replace(" ", "%20");
Uri uri = Uri.parse(uriText);
send.setData(uri);
startActivity(Intent.createChooser(send, "Send mail..."));
Html.fromHtml (html)? Nó có hoạt động không? – Merve
Như bạn có thể thấy trong ảnh chụp màn hình cuối cùng của tôi, nó xóa tất cả các thẻ HTML nhưng liên kết (dòng đầu tiên) được hiển thị dưới dạng văn bản thuần túy. so sánh nó với hình ảnh thứ hai xin vui lòng. Cảm ơn. – Hesam
@Hesam Tôi không thể đạt được giải nhất.Tôi đã thử dán mã hoàn chỉnh của bạn (mã đầu tiên) và các liên kết được hiển thị dưới dạng văn bản thuần túy. Có suy nghĩ gì không? – SKP