2015-06-23 1 views
1

У меня есть функция отправки почты, но теперь мне нужно прикрепить документ, но я не знаю, как это сделать или если я могу это сделать, вот кодОтправка электронной почты с прикрепленным файлом

public void enviar(){ 
    Properties props = System.getProperties(); 
    props.put("mail.smtp.starttls.enable", true); // added this line 
    props.put("mail.smtp.host", "smtp.gmail.com"); 
    props.put("mail.smtp.user", "[email protected]"); 
    props.put("mail.smtp.password", "xxxx"); 
    props.put("mail.smtp.port", "587"); 
    props.put("mail.smtp.auth", true); 

    Session session = Session.getInstance(props,null); 
    MimeMessage message = new MimeMessage(session); 
    // Create the email addresses involved 
    try { 
     InternetAddress from = new InternetAddress("[email protected]"); 
     message.setSubject("Informe fichadas"); 
     message.setFrom(from); 
     message.addRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]")); 

     // Create a multi-part to combine the parts 
     Multipart multipart = new MimeMultipart("alternative"); 

     // Create your text message part 
     BodyPart messageBodyPart = new MimeBodyPart(); 
     messageBodyPart.setText("some text to send"); 

     // Add the text part to the multipart 
     multipart.addBodyPart(messageBodyPart); 

     // Create the html part 
     messageBodyPart = new MimeBodyPart(); 
     String htmlMessage = "Informe fichadas"; 
     messageBodyPart.setContent(htmlMessage, "text/html"); 
     multipart.addBodyPart(messageBodyPart); 

     // Associate multi-part with message 
     message.setContent(multipart); 

     // Send message 
     Transport transport = session.getTransport("smtp"); 
     transport.connect("smtp.gmail.com", "user", "pass"); 
     System.out.println("Transport: "+transport.toString()); 
     transport.sendMessage(message, message.getAllRecipients()); 


    } catch (AddressException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (MessagingException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

Как я могу прикрепить файл? файл находится в этом пути (C: \ hola.txt)

ответ

2

Добавить

  // Part two as attachment 
     messageBodyPart = new MimeBodyPart(); 
     String filename = "c:\hola.txt"; 
     DataSource source = new FileDataSource(filename); 
     messageBodyPart.setDataHandler(new DataHandler(source)); 
     messageBodyPart.setFileName(filename); 
     multipart.addBodyPart(messageBodyPart); 

Прямо над

// Associate multi-part with message 
     message.setContent(multipart); 

Источник: http://www.tutorialspoint.com/javamail_api/javamail_api_send_email_with_attachment.htm

+0

Я добавил код, который вы совместно, и показать эту ошибку Исключение в потоке «AWT-EventQueue-0» java.lang.NullPointerException – marcss