如何通过设备上的默认邮件应用程序直接发送电子邮件

时间:2014-02-22 23:37:59

标签: android email

我有一个类型的问题,通常会让我说“你为什么要这样做”并假设它会被用于恶意目的,但是这里......

如果不实施我自己的电子邮件发件人,如何在没有用户互动的情况下发送电子邮件?

在您提出任何建议之前 - 我知道Javamail并且之前我已经使用过这种方法,如果需要,我会回过头来。我也知道如何触发选择器以及如何open a compose screen directly。我想要的不是那些。

我的应用中有反馈表单。 3个文本字段和一个按钮。当用户点击按钮时,我将字段中的数据发送给自己,但为了节省我的应用程序的大小,我希望通过当前安装的任何邮件应用程序/默认发送邮件,所有这些都没有进一步的用户交互。

这可能吗?

6 个答案:

答案 0 :(得分:3)

您可以使用手机的短信功能:

SmsManager sms = SmsManager.getDefault();
String myPhoneNumber = "800 333-1212";
String toEmailAddress = "foo@foo.com";
String myEmailBody = "Here is my email message";
sms.sendTextMessage( toEmailAddress,"1"+myPhoneNumber, myEmailBody, null, null);

当然,您的电子邮件看起来并不漂亮,但是......也不要忘记清单中的SEND_SMS权限。显然,这对于只有wifi和没有电话的平板电脑不起作用。

答案 1 :(得分:1)

您希望实现的目标不符合您的条件,但您必须有足够的选择以更清洁的方式实现同​​样的目标。

1.像@Oliver提到的那样使用像ACRA这样的图书馆和服务。

2.实现一个简单的RESTful API并使用它来发送您的数据,您可以使用Google应用引擎等服务来使这更方便。

  1. 实施您自己的电子邮件发件人,这根本不理想。
  2. 显然你的应用需要一个后端。

答案 2 :(得分:1)

你做不到。 Android手机上没有默认邮件服务。 Gmail通常是安装的,但并非所有设备都附加了Gmail帐户,并且并非每个人都使用它,即使他们这样做。如果他们使用类似hotmail,yahoo或POP3 / IMAP帐户的东西,那么绝对没有办法知道或使用它。你想要的功能不是内置于android。

答案 3 :(得分:1)

首先, 你不能通过Android手机做到这一点。

如果你真的需要静静地从Android手机发送电子邮件, 您可以实现一个Web服务,该服务接受来自您应用程序的输入并从您的服务器发送邮件。

选项2是实现一种Web服务,无需电子邮件即可接受反馈。

答案 4 :(得分:0)

有几种方法可以在不使用邮件应用的情况下发送邮件:

1)使用webservice将数据发送到服务器,服务器将电子邮件发送给特定用户。

email data->server->mail to Specific user

2)使用java mail API发送电子邮件。 Sending Email in Android using JavaMail API without using the default/built-in app

答案 5 :(得分:-1)

Android有意图的概念。您将带有数据的Intent发送到系统和应用程序,该系统和应用程序可以处理该意图并由系统选择它可以对这些数据执行的操作。

我相信Intens是与默认电子邮件客户端进行交互的唯一可靠方式。您无法更改其他应用的行为,因此您无法在概念上执行此操作。

您必须在应用中实施电子邮件客户端,或者只处理默认应用的行为。