在Android中发送没有用户电子邮件/密码的邮件

时间:2016-10-06 13:59:42

标签: android email webview javamail email-integration

我正在尝试实现一种可以将邮件发送到我的电子邮件(始终)的方法,以便用户只需编写邮件并单击“发送”。如何实施?有没有办法做到这一点?

我所考虑的解决方案是创建一个在用户启动应用程序时已登录的电子邮件,这样用户就可以通过此电子邮件将邮件发送到我的真实电子邮件。你怎么看?如果可能的话,我更喜欢第一种方法:)

我现在处理它的方式是使用本机应用程序发送邮件,但我想解决这个问题并直接从我的应用程序发送。

这就是我现在正在做的事情:

  public void sendEmail()
    {
        String [] reciever = new String[]{"mymail@hotmail.com"};
        String subject = ("Feedback/Question");
        Intent mailIntent = new Intent(Intent.ACTION_SEND);
        mailIntent.putExtra(Intent.EXTRA_EMAIL, reciever);
        mailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
        mailIntent.putExtra(Intent.EXTRA_TEXT, msg.getText());
        mailIntent.setType("message/rfc822");
        startActivity(Intent.createChooser(mailIntent, "Choose an application"));
    }

我想到的其他东西是使用Webview,用户只需要写一条消息并点击“发送”。像大多数网站一样;你编写自己的电子邮件,主题和消息。但是,这个解决方案需要一个网站,我没有。除此之外,我找不到可以为我做这件事的现有网站。

我已阅读有关邮件API的信息,但此API要求用户拥有Gmail并且必须输入密码。

1 个答案:

答案 0 :(得分:0)

问题在于......如果您在没有密码的情况下执行此操作,则可以使用它来发送垃圾邮件。你不想要那个。

您可以在自己的应用中嵌入电子邮件用户名和密码,但仍有人可以从您的应用中提取该信息,并将其用于滥用您的电子邮件帐户。

来自@greenapps的建议方法是将电子邮件的使用转移到在服务器中运行的应用程序。然后,您的Android应用程序会联系服务器应用程序,该服服务器应用程序仅允许发送有限形式的电子邮件,并且仅允许发送给您的一个特定电子邮件地址。这意味着电子邮件用户名和密码仅存储在服务器上,可以更好地保护它。

当然,这仍然允许任何人访问服务器并要求它发送消息。他们无法对服务器做任何事情,他们只能要求它向您发送消息。这显着降低了攻击媒介,但仍然存在滥用的可能性。

访问服务器应用时,您可能需要提供某种密码。但同样,该密码需要嵌入您的Android应用中,有人可能会提取并使用该密码来滥用您的服务器应用。

您可以在安装Android应用时生成每用户唯一ID,并使用该ID来跟踪对您的服务器应用的任何滥用行为。这并不能防止滥用,但允许你切断滥用者。

您必须决定您愿意接受多少风险以及您希望这样做有多复杂,以减少滥用的可能性。