2017-07-06 1 views
-3

le titre dit tout: Comment envoyer un fichier pdf à un e-mail générique de l'application Java?Comment envoyer un pdf via e-mail à partir de Java

+1

S'il vous plaît modifier votre question pour supprimer toute mention de PDFBox. Votre question est essentiellement comment envoyer un fichier via smtp avec Java. –

Répondre

1

Vous pouvez envoyer un email avec un fichier PDF en pièce jointe à l'aide de cette référence -

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

class SendMailWithAttachment 
{ 
    public static void main(String [] args) 
    {  
     String to="[email protected]"; //Email address of the recipient 
     final String user="[email protected]"; //Email address of sender 
     final String password="xxxxx"; //Password of the sender's email 

     //Get the session object  
     Properties properties = System.getProperties(); 

     //Here pass your smtp server url 
     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); } });  

     //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");   

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

      //Create new MimeBodyPart object and set DataHandler object to this object   
      MimeBodyPart messageBodyPart2 = new MimeBodyPart();  
      String filename = "YourPDFFileName.pdf";//change accordingly  
      DataSource source = new FileDataSource(filename);  
      messageBodyPart2.setDataHandler(new DataHandler(source));  
      messageBodyPart2.setFileName(filename);    

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

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

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

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

Vous pouvez également consulter JavaTPoint

+0

Merci. Mais je reçois cette erreur: com.sun.mail.smtp.SMTPSendFailedException: 550 Accès refusé - nom incorrect HELO (Voir RFC2821 4.1.1.1) \t à com.sun.mail.smtp.SMTPTransport.issueSendCommand (SMTPTransport. java: 1829) \t à com.sun.mail.smtp.SMTPTransport.mailFrom (SMTPTransport.java:1368) \t à com.sun.mail.smtp.SMTPTransport.sendMessage (SMTPTransport.java:886) \t à javax .mail.Transport.send0 (Transport.java:191) \t à javax.mail.Transport.send (Transport.java:120) \t à testemail.SendMailWithAttachment.main (SendMailWithAttachment.java:53) –

+0

@Da niel-san Je pense que vous avez simplement copié le code ci-dessus. J'ai ajouté des commentaires dans ma réponse s'il vous plaît vérifier cela. –