【问题标题】:Sending mails without the user's E-mail/password in Android在 Android 中发送没有用户电子邮件/密码的邮件
【发布时间】:2017-02-15 07:39:06
【问题描述】:

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

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

我现在处理它的方式是使用本机应用程序发送邮件,但我想绕过它并直接从我的应用程序发送。

这就是我现在的做法:

  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 并且必须输入密码。

【问题讨论】:

  • 看看java邮件。
  • @greenapps 已经这样做了,但找不到解决方案:)
  • 那么问题出在哪里? Java 邮件可以做到。
  • this solution solution requires a website。但是您的应用程序不会发送静默电子邮件。相反,它会将一些数据上传到网络服务器。然后网络服务器可以发送电子邮件。
  • 奇怪的是,您在主题中提到的事情没有在您的帖子中描述。所以很难理解你想要什么。

标签: android webview jakarta-mail email


【解决方案1】:

问题来了...如果您在没有密码的情况下执行此操作,人们可以使用它来发送垃圾邮件。你不想这样。

您可以在您的应用中嵌入您的电子邮件用户名和密码,但仍然有人可以从您的应用中提取该信息并使用它来滥用您的电子邮件帐户。

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

当然,这仍然允许任何人访问服务器并要求它发送消息。他们不能对服务器做任何事情,他们只能要求它向您发送消息。这显着减少了攻击向量,但仍有可能被滥用。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 2017-08-08
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多