当前位置: 首页 > 知识库问答 >
问题:

未将Json文件附加到android电子邮件

卫成和
2023-03-14

我试图发送一个附加的json文件到电子邮件,但是由于某种原因,在发送/创建电子邮件时,json文件没有被附加。注意:我不希望用户选择要附加的文件,我希望它被固定/自动设置。

我有以下权限在我的Androidanifest.xml

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

还有密码

   private void backupJsonToEmail(String jsonString) {
    // create file

    if(!getFilesDir().exists()){
        getFilesDir().mkdir();
    }
    String filePath = getFilesDir() + File.separator + BACKUP_NAME;
    System.out.println("file path: " + filePath);
    // /data/user/0/com.my.stuff/files/backup.json

    try {
        FileOutputStream fos = new FileOutputStream(filePath);
        DataOutputStream outStream = new DataOutputStream(new BufferedOutputStream(fos));
        outStream.writeBytes(jsonString);
        outStream.close();

        // send to email
        try {
            File file = new File(filePath);
            long fileKbSize = file.length() / 1024;
            System.out.println("FILE SIZE IS: " + fileKbSize + " kb"); // 69 kb...

            Uri uri = Uri.fromFile(file);
            String to[] = {"test@yahoo.com"};

            Intent originalIntent = ShareCompat.IntentBuilder.from(this)
                    .setType("application/json")
                    .setEmailTo(to)
                    .setStream(uri)
                    .setSubject("test")
                    .setText("here is the attached json")
                    .getIntent();
            originalIntent.setData(Uri.parse("mailto:"));
            originalIntent.setAction(Intent.ACTION_SENDTO);

            Intent finalIntent = Intent.createChooser(originalIntent, "choose an email application");
            startActivity(finalIntent);

        } catch (Throwable t) {
            Toast.makeText(this, "Request failed try again: " + t.toString(), Toast.LENGTH_LONG).show();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

}

编辑1:在做了@piyushpk建议的建议更改后,我现在在选择电子邮件应用程序时会出现以下错误:

for Yahoo Mail: "The attachment is too big to send"
for Gmail: "Permission denied for the attachment"

然而,根据我的打印声明,文件大小只有69KB。。。

共有1个答案

左丘涵畅
2023-03-14

我想你正试图使用内置的电子邮件应用程序发送一个json文件,雅虎正在抱怨大小,Gmail否认了这一点,因为json被认为不是一个安全的扩展。

取而代之的是使用一些SMTP电子邮件api,如发送网格等来发送文件,而无需任何内置的Android应用程序。https://github.com/sendgrid/sendgrid-java

邮件枪发送网格是相当好的选择

 类似资料:
  • 问题内容: 我想发送带有PDF附件的电子邮件。我创建了PDF文件,然后执行了以下操作,但我认为这是错误的: 在发送电子邮件之前,我可以看到附件,但是当我发送电子邮件时,它的发送没有附件,这是因为我没有正确附加文件。 问题答案: 您错了。使用代替。

  • 问题内容: 有没有办法将图像附加到用PHP创建的html格式的电子邮件中? 我们需要确保在发送给可能在阅读电子邮件时无法访问Internet的客户的电子邮件上带有公司徽标(显然,他们可以下载文件)。 问题答案: 尝试使用PEARMail_Mime软件包,该软件包可以为您嵌入图像。 您需要使用addHTMLImage()方法并传递内容ID(cid),这是一个唯一的文本字符串,您还将在img的src属

  • 问题内容: 以下Java代码用于将文件附加到电子邮件。我想通过电子邮件发送 多个 文件附件。任何建议,将不胜感激。 问题答案: 好吧,自从我完成JavaMail工作已经有一段时间了,但是看起来您可以重复多次此代码: 例如,您可以编写一个方法来做到这一点: 然后从您的主要代码中,只需调用: 等等

  • 我正在尝试发送一封带有附件的确认电子邮件,电子邮件地址为strapi provider email NodeEmailer。该插件显然支持附件,但我不知道我应该在strapi后端的何处添加这些附件。有人知道如何将附件添加到通过strapi NodeEmailer发送的电子邮件中吗?

  • 我使用以下处理器获取电子邮件的第一个附件并将其上传到ftp服务器。 路由配置 邮件处理器 这通常有效,但对于“大”附件来说,它实际上需要永远。(仅 5 MB 附件半小时) 原木 我还尝试像这样转换附件: 但这给了我以下信息: 使用Filezilla上传到ftp服务器非常有效。另外,当我在另一条路径上使用camel-ftp时(由文件上传触发),上传到ftp服务器的速度非常快。所以我有一种感觉,是依恋

  • 问题内容: 我正在使用sendgrid发送电子邮件,并且使用以下代码可以正常工作,但没有附件。 但是我需要发送附件,因此我搜索了github源和Web文档API,由于某种原因,没有javadocs,但是有一个示例GitHub sendgrid, 所以我一直在尝试直到它起作用为止,我缩小了一些异常和响应代码,起初我是被禁止的未经授权,最好是响应202,表示有效且已排队(在此处检查),这是我的代码发送