【问题标题】:How to Attach FIles Through Mail in android如何在android中通过邮件附加文件
【发布时间】:2012-02-29 01:15:24
【问题描述】:

嗨,首先我想说一个使用 gmail 发件人要在按钮上发送邮件,请单击我的应用程序中的Solution From Here

现在在上面的代码中我无法附加文件。但后来我看到了 Stack over flow 的解决方案来解决这个问题,因为在“GMailSender.java”文件中进行了一些修改,修改后的链接是Here

现在我的问题是我不理解修改后的部分。 这是旧的部分

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

修改部分是

public synchronized void sendMail(字符串主题、字符串正文、字符串发件人、字符串收件人、文件附件)

这不是一个重复的问题我只是想知道这个“文件附件”部分是什么以及我应该执行什么类型或方法来附加文件如果您有任何疑问请通过这两个链接找到解决方案提前致谢

【问题讨论】:

    标签: android gmail attachment


    【解决方案1】:

    您正在传递一个名为 attachmentFile 对象。这将是您想要附加到电子邮件的任何内容。

    您可以将其附加到您的电子邮件中,例如:

    MimeMessage message = new MimeMessage(session);
    message.setSender(new InternetAddress(sender));
    message.setSubject(subject);
    
    MimeBodyPart mbp1 = new MimeBodyPart();
    mbp1.setText(body);
    
    MimeBodyPart mbp2 = new MimeBodyPart();
    FileDataSource fds = new FileDataSource(attachment); //set attachment to filedatasource
    mbp2.setDataHandler(new DataHandler(fds)); //add the filedatasource object to your 2nd mimebodypart
    mbp2.setFileName(fds.getName());
    
    Multipart mp = new MimeMultipart();
    mp.addBodyPart(mbp1); 
    mp.addBodyPart(mbp2);
    
    message.setContent(mp);
    ...send email...
    

    编辑:不必从 SD 卡中获取图像,但我认为您可以像这样轻松地创建一个 File 对象:

    File imageFile = new File("path to image on sd card");
    

    然后您将调用您的 sendMail 方法并传入该文件对象。

    【讨论】:

    • 我不明白如何附加 jpeg 文件
    • 你从哪里提取 jpeg?
    • 一个图片文件从我的电脑到我的模拟器上的虚拟内存卡
    • 这是一个很好的 Android 数据存储教程developer.android.com/guide/topics/data/… 这应该让您对如何获取图像路径有所了解。我知道 File extStore = Environment.getExternalStorageDirectory();将为您提供 SD 卡的路径。
    • 文件 imageFile = new File("/sdcard/ss.jpg");这是我们指定路径的方法,再次感谢您做得好
    【解决方案2】:

    试试这个

    Intent i = new Intent(Intent.ACTION_SEND);  
    i.setType("message/rfc822") ; // use from live device
    i.putExtra(Intent.EXTRA_EMAIL, new String[]{"test@gmail.com"});  
    i.putExtra(Intent.EXTRA_SUBJECT,"subject goes here");  
    i.putExtra(Intent.EXTRA_TEXT,"body goes here");  
    i.putExtra(Intent.EXTRA_STREAM, new File(""));
    startActivity(Intent.createChooser(i, "Select email application."));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 2019-10-12
      相关资源
      最近更新 更多