2016-04-13 38 views
0

添付ファイル付きの電子メールを送信するには、次のコードがあります。問題は、添付ファイル(単純なテキストファイル)が空であることです。しかし、ファイルはそうではありません。 メールの中にあります。テキストが正しく表示されています。エラーコードはありません。添付ファイル付き電子メールをJavaで送信する

private void emailSenden() throws MessagingException, FileNotFoundException, IOException { 

    Properties props = new Properties(); 
    props.put("mail.transport.protocol", "smtp"); 
    props.put("mail.smtp.host", SMTP_HOST_NAME); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.port", "587"); 

    Authenticator auth = new SMTPAuthenticator(); 
    Session mailSession = Session.getDefaultInstance(props, auth); 

    MimeMessage msg = new MimeMessage(mailSession); 
    msg.setFrom(new InternetAddress("[email protected]", "Muster AG")); 
    msg.setRecipients(Message.RecipientType.TO, "[email protected]"); 
    msg.setSubject("Update erfolgreich."); 
    msg.setSentDate(new Date()); 

    try { 
     Multipart mp = new MimeMultipart(); 

     MimeBodyPart textPart = new MimeBodyPart(); 
     textPart.setText("Update erfolgreich"); 
     mp.addBodyPart(textPart); 

     MimeBodyPart attachFilePart = new MimeBodyPart(); 
     attachFilePart.attachFile(new File("C:" + File.separator + "log" + File.separator + "logDatei.txt")); 
     mp.addBodyPart(attachFilePart); 

     msg.setContent(mp); 
     msg.saveChanges(); 
     Transport.send(msg); 

     System.out.println("Email gesendet"); 

    } catch (MessagingException e) { 
     throw new RuntimeException(e); 
    } 
} 

private class SMTPAuthenticator extends javax.mail.Authenticator { 
    public PasswordAuthentication getPasswordAuthentication() { 
     String username = SMTP_AUTH_USER; 
     String password = SMTP_AUTH_PWD; 
     return new PasswordAuthentication(username, password); 
    } 
} 
+0

を試してみてくださいうhttp://stackoverflow.com/questions/16117365/sending-mail-attachment-using-java – Chris

+0

と少しのGoogle検索そのチュートリアルを返すとおそらくここに投稿するよりも時間がかかりませんでした:http://www.tutorialspoint.com/javamail_api/javamail_api_send_email_with_attachment.htm – Chris

+0

これはeasly Googleで検索することができます、次回検索しようとします。 – Severiano

答えて

1

これはすでに求められているように見えるこの

attachFilePart = new MimeBodyPart(); 
String filename = "c:\log\logDatei.txt"; 
DataSource source = new FileDataSource(filename); 
attachFilePart .setDataHandler(new DataHandler(source)); 
attachFilePart .setFileName(filename); 
multipart.addBodyPart(attachFilePart); 
+0

Thx、解決策はありません...まだ動作していません – user3515460

関連する問題