1

我对 Android 编程比较陌生,但在 Java 和其他编码语言方面有经验。作为我目前正在制作的程序的一部分,我希望能够在按下按钮时发送预定义的电子邮件。我目前正在查看此代码:

在不使用默认/内置应用程序的情况下使用 JavaMail API 在 Android 中发送电子邮件

我目前能够启动启动 MailSenderActivity.class 的意图。但是,我无法理解如何通过 GmailSender.class 发送电子邮件。我相信我误解了如何使用提供的代码。我是否应该在主页上的代码中创建两个单独的意图来启动两个活动,一个接一个,如下所示?如果没有,我该怎么做?

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

另外,我想知道代码中为/从、主题、正文等定义的空间。我看到 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"是发件人(发件人字段)。

"user@yahoo.com"是收件人(收件人字段)。您可以用逗号指定更多,例如

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

您还会看到这GMailSender只是一个类,而不是一个活动。因此,它不需要Intent;只需实例化类。此外,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 回答