您好我正在通过Android应用程序发送邮件。我在我的应用程序中导入邮件库和激活库。
当我发送邮件已成功发送但附件没有。可以告诉我怎样才能发送它。
这是我的代码:
public synchronized void sendMail(String body, String recipients) throws Exception {
try{
MimeMessage message = new MimeMessage(session);
DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));
message.setSender(new InternetAddress("shankar.uclid@gmail.com"));
message.setSubject("Request For Claim");
MimeBodyPart messageBodyPart2=new MimeBodyPart(); // creating new MimeBodyPart object and setting DataHandler to this object
String filename="file:///android_asset/code.js"; //you can change according to your choice
DataSource source=new FileDataSource(filename);
messageBodyPart2.setDataHandler(new DataHandler(source));
messageBodyPart2.setFileName(filename);
Multipart multipart=new MimeMultipart();
multipart.addBodyPart(messageBodyPart2);
message.setContent(multipart);
message.setDataHandler(handler);
showLog("recepetent is "+recipients);
if (recipients.indexOf(',') < 0)
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("shankar.uclid@gmail.com"));
else
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
Transport.send(message);
}catch(Exception e){
e.printStackTrace();
}
}
我不知道为什么我的附件没有得到。
谢谢
答案 0 :(得分:1)
请尝试这种方式,希望这有助于您解决问题。
public static void email(Context context, String to, String cc,String subject, String body, List<String> files)
{
//need to "send multiple" to get more than one attachment
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("text/plain");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
new String[]{to});
emailIntent.putExtra(android.content.Intent.EXTRA_CC,
new String[]{cc});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(Intent.EXTRA_TEXT, body);
//has to be an ArrayList
ArrayList<Uri> uris = new ArrayList<Uri>();
//convert from paths to Android friendly Parcelable Uri's
for (String file : files)
{
File fileIn = new File(file);
Uri u = Uri.fromFile(fileIn);
uris.add(u);
}
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
context.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
}