2016-10-06 4 views
0

私は自分の電子メールにメールを送ることができる方法を実装しようとしています。(常に)メッセージを書き、 「送信」をクリックします。これはどのように実装できますか?それを行う方法はありますか?Androidのユーザーの電子メール/パスワードなしでメールを送信する

私が考えた解決策は、ユーザーがアプリを起動したときに既にサインインされている電子メールを作成することです。この方法で、この電子メールから実際のE-郵便物。どう思いますか?可能であれば最初の方法が好きです:)

私が今扱うのは、ネイティブアプリを使用してメールを送信することですが、私はそれを回避して自分のアプリから直接送信したいと考えています。

は、これは私が今それをやっている方法です:私は考えた他の

public void sendEmail() 
    { 
     String [] reciever = new String[]{"[email protected]"}; 
     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を使用することです。ほとんどのウェブサイトのように。あなたは自分のEメール、トピック、メッセージを書いています。しかし、この解決策にはウェブサイトが必要ですが、私はそれを持っていません。それに加えて私のためにそれを行うことができる既存のウェブサイトを見つけることができませんでした。

私はメールAPIについて読んだことがありますが、このAPIにはGmailがあり、パスワードを書かなければなりません。

+0

Javaメールをご覧ください。 – greenapps

+0

@greenappsすでにそれをしていますが、解決策を見つけることができませんでした:) –

+0

その後、ワットは問題ですか? Javaメールはそれを行います。 – greenapps

答えて

0

これは問題です...パスワードなしで行うと、人々はそれを使って迷惑メールを送信することができます。あなたはそれを望んでいません。

アプリにメールのユーザー名とパスワードを埋め込むことはできますが、誰かがアプリからその情報を抽出して電子メールアカウントを悪用することができます。

@greenappsからの推奨されるアプローチは、電子メールの使用をサーバーで実行されるアプリケーションに移動することです。あなたのAndroidアプリはサーバアプリに接続し、実際にメールを送信します。サーバーアプリケーションでは、限定された形式の電子メールのみを送信し、特定の電子メールアドレスのみに送信することができます。これは、電子メールのユーザー名とパスワードがサーバー上に保存されることを意味し、サーバーをより安全に保護することができます。

もちろん、誰でもサーバーにアクセスしてメッセージの送信を依頼することができます。彼らはサーバーで何もできません、彼らはあなたにメッセージを送信するように頼むことができます。これにより攻撃ベクトルは大幅に減少しますが、悪用の可能性はまだあります。

サーバーアプリケーションにアクセスするときに、何らかのパスワードを入力する必要がある場合があります。しかし、このパスワードはAndroidアプリに埋め込まれている必要があります。Androidアプリを引き出して、あなたのサーバーアプリを乱用することができます。

Androidアプリがインストールされているときにユーザーごとの固有IDを生成し、それを使用してサーバーアプリケーションの不正使用を追跡できます。それは虐待を防ぐものではありませんが、あなたは虐待を断つことができます。

虐待の可能性を減らすために、どの程度のリスクを受け入れるか、どの程度複雑にするかを決める必要があります。

関連する問題