1

私はAndroidプログラミングに比較的慣れていませんが、Javaやその他のコーディング言語の経験があります。私が現在作成しているプログラムの一部として、ボタンが押されたときに事前定義された電子メールを送信できるようにしたいと考えています。私は現在このコードを見ています:

デフォルト/組み込みアプリを使用せずにJavaMailAPIを使用してAndroidでメールを送信する

現在、MailSenderActivity.classを開始するインテントを開始できます。ただし、GmailSender.classを介してメールを送信する方法を理解できません。提供されたコードの使い方を誤解していると思います。以下のように、ホームページのコードで、両方のアクティビティを次々に開始する2つの別々のインテントを作成することになっていますか?そうでない場合、どうすればよいですか?

public void SendEmail(View v) {
    Intent i = new Intent(getBaseContext(), MailSenderActivity.class);    
    Intent j = new Intent(getBaseContext(), GMailSender.class);       
    startActivity(i);
}

また、コード内のto / from、subject、bodyなどの定義されたスペースについて疑問に思っています。MailSenderActivity.classに

                try {   
                GMailSender sender = new GMailSender("username@gmail.com", "password");
                sender.sendMail("This is Subject",   
                        "This is Body",   
                        "user@gmail.com",   
                        "user@yahoo.com");

user@gmail.comとuser@yahoo.comは両方ともメールの受信者ですか?そして、私が電子メールの内容を定義することになっているコードの他の場所はありますか?

御時間ありがとうございます。

4

1 に答える 1

1

sendMail()下にスクロールして残りの答えを読むと、メソッドがすべての手がかりを与えることがわかります。

public synchronized void sendMail(String subject, String body, String sender, String recipients) 

つまり "user@gmail.com"、送信者です(Fromフィールド)。

"user@yahoo.com"受信者です([宛先]フィールド)。カンマでさらに指定できます。例:

"user@yahoo.com,user_2@gmail.com"

GMailSenderまた、これは単なるクラスであり、アクティビティではないことがわかります。したがって、インテントは必要ありません。クラスをインスタンス化するだけです。また、MailSenderActivityの実装を示すコードサンプルですGMailSender。使用する必要はありません。

例えば

public void SendMail (View v) {
  try {   
    GMailSender sender = new GMailSender("your_username@gmail.com", "password");
    sender.sendMail("Subject",   
                    "Email body",   
                    "Fromfield@gmail.com",   
                    "toField@example.com");   
  } catch (Exception e) {   
    Log.e("SendMail", e.getMessage(), e);   
  } 
}

また、Javaの命名規則では、メソッドは小文字で始める必要があると規定されていることに注意してください。これらの規則を順守し、コードを適切にリファクタリングする必要があります。

于 2013-01-13T19:44:03.220 に答える