如何在java中附加生成的pdf文件邮件

如何在java中附加生成的pdf文件邮件,java,servlets,Java,Servlets,请告诉我如何将可用的pdf文件附加到邮件。 我正在使用mail.jar和activation.jar发送邮件。 我可以发送邮件,但我不知道如何发送带有附件的pdf文件。 所以请给我提个建议 多谢各位 我只是试试 String filename = "file.pdf"; Multipart multipart1 = new MimeMultipart(); BodyPart messageBodyPart = new Mime

请告诉我如何将可用的
pdf文件
附加到
邮件
。 我正在使用
mail.jar
activation.jar
发送
邮件。
我可以发送
邮件
,但我不知道如何发送带有附件的
pdf文件。
所以请给我提个建议
多谢各位

我只是试试

           String filename = "file.pdf";
            Multipart multipart1 = new MimeMultipart();
            BodyPart messageBodyPart = new MimeBodyPart();
            DataSource source = new FileDataSource(filename);
            messageBodyPart.setDataHandler(new DataHandler(source));
            messageBodyPart.setFileName(filename);
            multipart1.addBodyPart(messageBodyPart);
但它仍然无法获取数据,它的附件为空。

请尝试以下操作:

        String SMTP_HOST_NAME = "mail.domain.com";  
        String SMTP_PORT = "111";   

        String SMTP_FROM_ADDRESS="xxx@domain.com";  
        String SMTP_TO_ADDRESS="yyy@domain.com";  
        String subject="Textmsg";  
        String fileAttachment = "C:\\filename.pdf";  

          Properties props = new Properties();  

          props.put("mail.smtp.host", SMTP_HOST_NAME);  
          props.put("mail.smtp.auth", "true");  
          props.put("mail.debug", "true");  
          props.put("mail.smtp.port", SMTP_PORT );  
          Session session = Session.getInstance(props,new javax.mail.Authenticator()  
            {protected javax.mail.PasswordAuthentication   
                getPasswordAuthentication()   
            {return new javax.mail.PasswordAuthentication("xxxx@domain.com","password");}});  
          try{  

          Message msg = new MimeMessage(session);  

          msg.setFrom(new InternetAddress(SMTP_FROM_ADDRESS));  
       // create the message part   
          MimeBodyPart messageBodyPart =   
            new MimeBodyPart();  
      //fill message  
          messageBodyPart.setText("Test mail one");  
          Multipart multipart = new MimeMultipart();  
          multipart.addBodyPart(messageBodyPart);  
       // Part two is attachment  
          messageBodyPart = new MimeBodyPart();  
          DataSource source =   
            new FileDataSource(fileAttachment);  
          messageBodyPart.setDataHandler(  
            new DataHandler(source));  
          messageBodyPart.setFileName(fileAttachment);  
          multipart.addBodyPart(messageBodyPart);  
      // Put parts in message  
          msg.setContent(multipart);  


          msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(SMTP_TO_ADDRESS));  

          msg.setSubject(subject);  
         // msg.setContent(content, "text/plain");  

          Transport.send(msg);  
          System.out.println("success....................................");  
          }  
          catch(Exception e){  
              e.printStackTrace();        
          }
来源:

试试这个:

        String SMTP_HOST_NAME = "mail.domain.com";  
        String SMTP_PORT = "111";   

        String SMTP_FROM_ADDRESS="xxx@domain.com";  
        String SMTP_TO_ADDRESS="yyy@domain.com";  
        String subject="Textmsg";  
        String fileAttachment = "C:\\filename.pdf";  

          Properties props = new Properties();  

          props.put("mail.smtp.host", SMTP_HOST_NAME);  
          props.put("mail.smtp.auth", "true");  
          props.put("mail.debug", "true");  
          props.put("mail.smtp.port", SMTP_PORT );  
          Session session = Session.getInstance(props,new javax.mail.Authenticator()  
            {protected javax.mail.PasswordAuthentication   
                getPasswordAuthentication()   
            {return new javax.mail.PasswordAuthentication("xxxx@domain.com","password");}});  
          try{  

          Message msg = new MimeMessage(session);  

          msg.setFrom(new InternetAddress(SMTP_FROM_ADDRESS));  
       // create the message part   
          MimeBodyPart messageBodyPart =   
            new MimeBodyPart();  
      //fill message  
          messageBodyPart.setText("Test mail one");  
          Multipart multipart = new MimeMultipart();  
          multipart.addBodyPart(messageBodyPart);  
       // Part two is attachment  
          messageBodyPart = new MimeBodyPart();  
          DataSource source =   
            new FileDataSource(fileAttachment);  
          messageBodyPart.setDataHandler(  
            new DataHandler(source));  
          messageBodyPart.setFileName(fileAttachment);  
          multipart.addBodyPart(messageBodyPart);  
      // Put parts in message  
          msg.setContent(multipart);  


          msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(SMTP_TO_ADDRESS));  

          msg.setSubject(subject);  
         // msg.setContent(content, "text/plain");  

          Transport.send(msg);  
          System.out.println("success....................................");  
          }  
          catch(Exception e){  
              e.printStackTrace();        
          }
来源:

您应该创建,如下所示:

Multipart multipart = new MimeMultipart();
messageBodyPart = new MimeBodyPart();
String filePath = "<file system path>";
String fileName = "display name"

DataSource source = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
Multipart Multipart=new MimeMultipart();
messageBodyPart=新的MimeBodyPart();
字符串filePath=“”;
String fileName=“显示名称”
DataSource source=新文件DataSource(文件);
setDataHandler(新的DataHandler(源));
messageBodyPart.setFileName(文件名);
multipart.addBodyPart(messageBodyPart);
现在,使用方法。

您应该创建,如下所示:

Multipart multipart = new MimeMultipart();
messageBodyPart = new MimeBodyPart();
String filePath = "<file system path>";
String fileName = "display name"

DataSource source = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
Multipart Multipart=new MimeMultipart();
messageBodyPart=新的MimeBodyPart();
字符串filePath=“”;
String fileName=“显示名称”
DataSource source=新文件DataSource(文件);
setDataHandler(新的DataHandler(源));
messageBodyPart.setFileName(文件名);
multipart.addBodyPart(messageBodyPart);

现在,使用方法。

使用JavaMail发送带有附件的电子邮件:

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;  

class SendAttachment
{ 
    public static void main(String [] args)
    {    
        String to="ABC@gmail.com";//change accordingly   
        final String user="ABC@XYZ.com";//change accordingly   
        final String password="xxxxx";//change accordingly     

        //1) get the session object      
        Properties properties = System.getProperties();  
        properties.setProperty("mail.smtp.host", "mail.javatpoint.com");   
        properties.put("mail.smtp.auth", "true");    

        Session session = Session.getDefaultInstance(properties,   
                new javax.mail.Authenticator() {   
            protected PasswordAuthentication getPasswordAuthentication() {   
                return new PasswordAuthentication(user,password);    }   });       

        //2) compose message      
        try{    
            MimeMessage message = new MimeMessage(session);    
            message.setFrom(new InternetAddress(user));     
            message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));    
            message.setSubject("Message Aleart");         

            //3) create MimeBodyPart object and set your message text        
            BodyPart messageBodyPart1 = new MimeBodyPart();     
            messageBodyPart1.setText("This is message body");          

            //4) create new MimeBodyPart object and set DataHandler object to this object        
            MimeBodyPart messageBodyPart2 = new MimeBodyPart();      
            String filename = "SendAttachment.java";//change accordingly     
            DataSource source = new FileDataSource(filename);    
            messageBodyPart2.setDataHandler(new DataHandler(source));    
            messageBodyPart2.setFileName(filename);             

            //5) create Multipart object and add MimeBodyPart objects to this object        
            Multipart multipart = new MimeMultipart();    
            multipart.addBodyPart(messageBodyPart1);     
            multipart.addBodyPart(messageBodyPart2);      

            //6) set the multiplart object to the message object    
            message.setContent(multipart );        

            //7) send message    
            Transport.send(message);      
            System.out.println("message sent....");   

        }catch (MessagingException ex) {ex.printStackTrace();}  
    }
} 

来源:

使用JavaMail发送带有附件的电子邮件:

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;  

class SendAttachment
{ 
    public static void main(String [] args)
    {    
        String to="ABC@gmail.com";//change accordingly   
        final String user="ABC@XYZ.com";//change accordingly   
        final String password="xxxxx";//change accordingly     

        //1) get the session object      
        Properties properties = System.getProperties();  
        properties.setProperty("mail.smtp.host", "mail.javatpoint.com");   
        properties.put("mail.smtp.auth", "true");    

        Session session = Session.getDefaultInstance(properties,   
                new javax.mail.Authenticator() {   
            protected PasswordAuthentication getPasswordAuthentication() {   
                return new PasswordAuthentication(user,password);    }   });       

        //2) compose message      
        try{    
            MimeMessage message = new MimeMessage(session);    
            message.setFrom(new InternetAddress(user));     
            message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));    
            message.setSubject("Message Aleart");         

            //3) create MimeBodyPart object and set your message text        
            BodyPart messageBodyPart1 = new MimeBodyPart();     
            messageBodyPart1.setText("This is message body");          

            //4) create new MimeBodyPart object and set DataHandler object to this object        
            MimeBodyPart messageBodyPart2 = new MimeBodyPart();      
            String filename = "SendAttachment.java";//change accordingly     
            DataSource source = new FileDataSource(filename);    
            messageBodyPart2.setDataHandler(new DataHandler(source));    
            messageBodyPart2.setFileName(filename);             

            //5) create Multipart object and add MimeBodyPart objects to this object        
            Multipart multipart = new MimeMultipart();    
            multipart.addBodyPart(messageBodyPart1);     
            multipart.addBodyPart(messageBodyPart2);      

            //6) set the multiplart object to the message object    
            message.setContent(multipart );        

            //7) send message    
            Transport.send(message);      
            System.out.println("message sent....");   

        }catch (MessagingException ex) {ex.printStackTrace();}  
    }
} 

来源:

如果你用谷歌搜索它,你甚至不需要问这个问题如果你用谷歌搜索它,你甚至不需要问这个问题我遵循你的代码,附上文件,但它不包含数据,意味着它附加了0K。测试了代码,它工作正常。现在它给我的文件找不到例外,然后给它正确的文件路径或用新代码更新你的问题。您使用的是绝对文件路径吗???非常感谢您最终完成了它的工作。我遵循您的代码,附加了文件,但不包含数据,意味着附加了0K。测试了代码,它工作正常。现在,它给我的文件找不到异常,然后给它正确的文件路径或用新代码更新您的问题。您使用的是绝对文件路径吗???非常感谢您最后的工作。