Java:发送带附件的电子邮件:无法发送附件

时间:2015-05-12 16:16:00

标签: java android email

我正在努力创建应用,但我遇到了问题。在我将一些数据插入名为“message.txt”的文件后,我无法通过电子邮件发送此文件,因为我的智能手机说“无法发送附件”。我该如何解决这个问题?

这是代码:

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    String address = ...
    byte[] messagetosend = ...
    String filename = "message.txt";
    File file = new File(getExternalFilesDir(null), filename);
    FileOutputStream outputstream;
    try {
        outputstream = openFileOutput(filename,MODE_WORLD_READABLE);
        outputstream.write(messagetosend);
        outputstream.flush();
        outputstream.getFD().sync();
        outputstream.close();
    } catch (Exception e1) {
        e1.printStackTrace();
    }
    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{address});
    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
    sendIntent.setType("*/*");
    startActivity(Intent.createChooser(sendIntent,"Send with..."));
    }

2 个答案:

答案 0 :(得分:0)

第三方应用无权访问该文件。使用FileProvider投放,或将文件复制到external storage而不是internal storage

答案 1 :(得分:0)

如果您已将该文件保存为应用专用, 该应用程序可以查看是否正常,但外部电子邮件客户端将无法看到它。 您需要将其写入外部存储,或将其公开。您将了解访问级别visit this linkvisit this

或尝试使用JavaMail here is solvedhere is too

发送电子邮件