1

私は、一連のユーザー入力に基づいて文字列を作成する非常に単純な 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)ちょっとしたハックのようです...

誰か考えや提案はありますか?

ありがとう、グリンチ

4

2 に答える 2

1

これを回答ではなくコメントにするほどの評判はありませんが、このチュートリアルに従うことで正しい軌道に乗ることができますhttp://www.developerfusion.com/code/1975/sending-email-using-smtp -and-java/正直なところ、私は自分自身でこれを行ったことはありません。Android ドキュメントから、Socket、DataInputStream、および DataOutputStream がすべてサポートされていることを知っているので、機能しない理由はわかりません。

于 2012-06-09T10:39:24.970 に答える
0

元の投稿で述べた PHP ソリューションを使用することにしました。残念ながら、どのメールクラスも機能させることができませんでした。アプリがインターネットにアクセスするためのアクセス許可を明示的に割り当てる必要があることを知りませんでした! 以下をマニフェスト ファイルに追加すると、PHP がうまく機能しました。

皆様のご支援とご指導に感謝いたします。
グリンチ

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
于 2012-07-08T11:19:30.457 に答える