在后台发送数据到电子邮件

时间:2013-11-14 09:48:14

标签: android background broadcastreceiver

我正在努力在我的电子邮件Id上发送我的消息数据。我创建了一个包含editText(用于emailId)和Button的mainActivity类。 另一个类是BroadcastReceiver类,我在其中检索数据。 现在我无法理解如何将这些数据发送到后台提供的电子邮件中。 我google了很多但无法得到所需的回复。 请分享想法并帮助我。

3 个答案:

答案 0 :(得分:8)

我为此创建了开源库。用法非常简单:

BackgroundMail bm = new BackgroundMail(context);
bm.setGmailUserName("yourgmail@gmail.com");
bm.setGmailPassword("yourgmailpassword");
bm.setMailTo("receiver@gmail.com");
bm.setFormSubject("Subject");
bm.setFormBody("Body");
bm.send();

使用此权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/> 

您可以在此处下载: https://github.com/kristijandraca/BackgroundMailLibrary

答案 1 :(得分:2)

在Android中,您可以使用明确的电子邮件意图发送电子邮件,但它会显示一个电子邮件屏幕,并且不允许在后台发送数据。

要在后台发送数据,您可以使用 java mail api 发送邮件。

看看这个http://www.tutorialspoint.com/java/java_sending_email.htm

答案 2 :(得分:-1)

这是使用显式电子邮件意图发送电子邮件的一种方式,但这不会在后台发送

 Intent sendemai = new Intent(Intent.ACTION_SEND);
 sendemai.putExtra(Intent.EXTRA_EMAIL,
                        new String[] { toaddress });
 sendemai.putExtra(Intent.EXTRA_CC,
                        new String[] { emailadd }); 
 sendemai.putExtra(Intent.EXTRA_SUBJECT, sub);
 sendemai.putExtra(Intent.EXTRA_TEXT, body); 
 // need this to prompts email client only
 sendemai.setType("message/rfc822"); 
 startActivity(Intent.createChooser(payment_request,
                        "Select email application"));

如果您想要在后台发送,则需要提供一些用户安全凭据。See Here