【问题标题】:Emailing a text file in background when button is clicked单击按钮时在后台通过电子邮件发送文本文件
【发布时间】:2012-06-23 23:09:39
【问题描述】:

我想附加一个文本文件,并在按下按钮时自动在后台通过电子邮件将其发送到预定义的电子邮件地址。

我正在创建一个这样的文本文件:

   try {
    FileOutputStream fos = openFileOutput("abc.txt",MODE_PRIVATE);
    String s = "Data to be written ok fine cool";fos.write(s.getBytes());
   } catch (Exception e) {
e.printStackTrace();

}

如何设置自动发送电子邮件?

【问题讨论】:

    标签: java android android-intent email


    【解决方案1】:

    您可以创建一个新线程来为您发送电子邮件... 或者更优雅的解决方案是在应用程序开始时生成第二个线程,当有新消息要发送时,您的主线程会通知第二个线程。

    【讨论】:

      【解决方案2】:

      请参阅this link,了解如何在没有意图的情况下发送电子邮件。如教程中所述,您将需要javamail-android libraries

      注意Mail 类中的addAttachment 方法。

      【讨论】:

      • 由于某种原因,代码示例中缺少这些方法。当我使用代码时也是如此。只需将方法添加到类中,他们需要做的就是设置方法名称中提到的类变量。 setFrom(String) 将设置 _form 变量等。
      • 我想在邮件中附上我上面创建的“abc.txt”文件,但不知道我会给什么文件位置
      • 您正在使用openFileOutput。看看stackoverflow.com/questions/4926027/…
      • 不知道我做错了什么,没有错误,但电子邮件没有发送smrtm.in/rCK1
      【解决方案3】:

      这取决于您希望如何发送电子邮件。 This 链接显示如何在不使用默认邮件客户端的情况下发送电子邮件。 这让用户选择

      private void sendEmail() {
              final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
              emailIntent.setType("plain/text");
              emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, String[]{"recipient@example.com"} );
              emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject");
              emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "content");
              this.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
          }
      

      【讨论】:

        【解决方案4】:

        要在后台发送邮件,您可以使用 AsyncTask 并使其自动(不使用任何 Intent)use JavaMail api

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-11-14
          • 2012-03-10
          • 1970-01-01
          • 2011-08-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多