在 Android 中发送没有用户 E-mail/password 的邮件

Sending mails without the user's E-mail/password in Android

我正在尝试实现一种可以(始终)向我的电子邮件发送邮件的方法,这样用户只需编写一条消息并单击 "Send"。如何实施?有办法吗?

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

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

我现在就是这样做的:

  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,用户只需写一条消息并单击 "Send"。像大多数网站一样;您编写自己的电子邮件、主题和消息。但是,此解决方案需要一个网站,而我没有。除此之外,我找不到可以为我做这件事的现有网站。

我已经阅读了关于邮件 API 的内容,但是这个 API 要求用户拥有 Gmail 并且必须输入密码。

问题出在这里...如果您不使用密码,人们就可以用它来发送垃圾邮件。你不想要那个。

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

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

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

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

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

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