通过电子邮件发送Android应用

时间:2012-06-09 10:27:44

标签: java android email

我正在构建一个非常简单的Android应用程序,它根据一堆用户输入创建一个字符串。我想让用户能够通过电子邮件发送应用程序中的字符串。

我来自php背景,这是非常直接的:有一个功能,它接受“到”地址,正文,主题等,并方便地发送电子邮件来自 php:

mail($to,$subject,$message,$headers)

这基本上是我想在Android环境中复制的内容。我已经取得了一些成功,如下所示,但这只是打开用户电子邮件客户端

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
String emailTo = userEmail;
String emailSubject = "Subject Line";
String emailBody = userString;
emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,emailTo);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,emailSubject);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(emailBody));
startActivity(Intent.createChooser(emailIntent, "Send mail..."));

最后,我尝试调出一个php脚本来执行发送:

String phpSend = "http://www.MyPHPSendScript.com?emailbody=userString";
try {
  URL url = new URL(phpSend);
  url.openConnection().getContent();
  } catch (Exception e) {
      out.println("Failed to send email");
  }

但是a)这失败了,b)看起来有点像黑客......

有没有人有任何想法/建议?

谢谢, 格林奇

2 个答案:

答案 0 :(得分:1)

我没有足够的声誉将这个作为评论而不是答案,但是按照本教程可以让你走上正确的轨道,http://www.developerfusion.com/code/1975/sending-email-using-smtp-and-java/虽然说实话我还没有在我之前做过这个。我从android文档中知道Socket,DataInputStream和DataOutputStream都是支持的,所以不要看到它为什么不起作用的原因。

答案 1 :(得分:0)

我决定使用原始帖子中提到的PHP解决方案。我担心我无法使用任何电子邮件类。我不知道您必须明确指定应用程序访问互联网的权限!我将以下内容添加到我的清单文件中,并且PHP处理了一个款待。

感谢您的帮助和指导!
格林奇

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