首先,我想说一个使用gmail发件人要在按钮上发送邮件,请点击我的应用程序Solution From Here
现在在上面的代码中我无法附加文件。但后来我看到了Stack over flow的解决方案,因为在“GMailSender.java”文件中做了一些修改,修改后的链接是{{3} }
现在如何添加文件的附加部分我的问题是我不理解修改部分。 这是旧部分
public synchronized void sendMail(String subject,String body,String sender,String recipients)
修改后的部分
public synchronized void sendMail(String subject,String body,String sender,String recipients,File attachment)
这不是一个重复的问题,我只是想知道这个“文件附件”部分是什么以及我应该实现什么类型或方法来附加文件如果您有任何疑问请通过这两个链接,请找到解决方案提前谢谢
答案 0 :(得分:4)
您正在传递名为File
的{{1}}对象。这将是您想要附加到您的电子邮件的任何内容。
您可以将其附加到您的电子邮件中,例如:
attachment
编辑:从来没有必要从SD卡获取图像,但我认为你可以像这样轻松地创建一个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...
对象:
File
然后你将调用你的sendMail方法传入该文件对象。
答案 1 :(得分:1)
试试这个
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."));