IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

[ITEXT et JAVAMAIL] envoyer pdf en piece jointe


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 157
    Par défaut [ITEXT et JAVAMAIL] envoyer pdf en piece jointe
    Bonjour à tous,
    Voila comme le dit l'intitulé j'aimerais savoir comment envoyer en piece jointe (avec javamail) un pdf générer avec itext mais sans créer le pdf physiquement sur le disque(donc sans PdfWriter)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    try{
    		Document docPdf = new Document(PageSize.A4);
                    docPdf.open();
                    //je construis mon pdf....et je le ferme
                    docPdf.close();
                    //je créé un mail avec une piece jointe File et non Document
                   Properties props = System.getProperties( );
          props.put("mail.smtp.host", "mail.company.com");
          Session session = Session.getDefaultInstance(props, null);
     
          Message msg = new MimeMessage(session);
          msg.setFrom(new InternetAddress("logs@company.com"));
          msg.setRecipient(Message.RecipientType.TO,
                           new InternetAddress("root@company.com"));
          msg.setSubject("Today's Logs");
     
          Multipart mp = new MimeMultipart( );
          MimeBodyPart mbp1 = new MimeBodyPart( );
          mbp1.setContent("Log file for today is attached.", "text/plain");
          mp.addBodyPart(mbp1);
     
          File f = new File("docPdf.pdf");//impossible bien sur et caste impossible
          MimeBodyPart mbp = new MimeBodyPart( );
          mbp.setFileName(f.getName( ));
          mbp.setDataHandler(new DataHandler(new FileDataSource(f)));
          mp.addBodyPart(mbp);
     
          msg.setContent(mp);
          Transport.send(msg);
          ...............

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 157
    Par défaut
    Bon, j'arrive à envoyer mon pdf en piece jointe mais seulement en le créant physiquement sur le disque en faisant une instance de PdfWriter, y a t-il un moyen de ne pas le créer physiquement sur le disque????

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 157
    Par défaut
    up!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 157
    Par défaut
    ok , j'ai finis par trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    public Message checkMail(String ServeurSNMP,File fichierTemp,String mailingList,String Subject,String content,String typSource,String nomSource){
    //.........................
                     File fichierTemp = null;
                      Properties props = System.getProperties( );
    		  props.put("mail.smtp.host", ServeurSNMP);
    		  Session session = Session.getDefaultInstance(props, null);	
    		  msg = new MimeMessage(session);
    		  msg.setFrom(new InternetAddress("maniolo@free.fr"));
    msg.setRecipient(Message.RecipientType.TO,
    						   new InternetAddress(mailingList));
    		  msg.setSubject(Subject);
     
    		  mp = new MimeMultipart();
    		  mbp1 = new MimeBodyPart();
    		  mbp1.setContent(content, "text/plain");
    		  mp.addBodyPart(mbp1);
     
    		  mbp = new MimeBodyPart();
                      //je passe en parametre mon fichiertemp de type File
    		  FileDataSource source = new FileDataSource(fichierTemp);
    		  mbp.setDataHandler(new DataHandler(source));
    		  mbp.setFileName(nomSource);
    		  mp.addBodyPart(mbp);
     
    		  msg.setContent(mp);
    		  Transport.send(msg);
    //..............................;
     
    et dans la classe principale :
     
    Document docPdf        = null;
    PdfWriter pdfWriter 	= null;	
    File temp = File.createTempFile("monfichier",".pdf");
     
    pdfWriter = PdfWriter.getInstance(docPdf, new FileOutputStream(temp));
    docPdf.open();
     
    //.......construction du pdf...............
     
    //puis on ferme bien tout et on appel la methode de la classe mail
    docPdf.close();
    pdfWriter.close();		
    checkMail.checkMail(ServeurSNMP, temp,mailingList, Subject, content, typSource ,nomSource);	
    temp.deleteOnExit();

  5. #5
    Invité de passage
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 1
    Par défaut Petit probleme
    salut
    comme toi je cherche à joindre un fichier sans l'enregistrer sur le disque.
    J'ai pris ton code mais je ne parviens pas à le faire fonctionner.
    Tout d'abord quand tu appelles ta méthodes, tu remets à null ton fichierTemp ce que je ne comprend pas. Ensuite j'ai une exception car tu appelles FileOutputStream sur ton temp qui est null.
    Si tu vois mon erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    public class EnvoiMailPdf {
     
    	public static void main(String[] args) throws IOException, DocumentException {
    		Document docPdf = null;
    		PdfWriter pdfWriter = null;
    		File temp = File.createTempFile("monfichier",".pdf");
     
    		pdfWriter = PdfWriter.getInstance(docPdf, new FileOutputStream(temp));
    		docPdf.open();
     
    		docPdf.add(new Paragraph("Mail de test"));
    		docPdf.close();
    		pdfWriter.close();
    		String mailingList = "***********";
    		String subject = "Test";// Sujet du mail
    		String content = "Mail pour tester l'envoi";
    		String nomSource ="piecejointe";
     
    		String ServeurSNMP = "**********";
    		EnvoiMailPdf.checkMail(ServeurSNMP, temp, mailingList, subject, content, nomSource);
    		temp.deleteOnExit();
    	}
     
    	public static void checkMail(String ServeurSNMP, File fichierTemp,
    			String mailingList, String Subject, String content, String nomSource) {		
    		String from = "*********";
     
    		Properties props = System.getProperties();
    		props.put("mail.smtp.host", ServeurSNMP);
    		Session session = Session.getDefaultInstance(props, null);
    		MimeMessage msg = new MimeMessage(session);
    		try {
    		msg.setFrom(new InternetAddress(from));
    		msg.setRecipient(Message.RecipientType.TO, new InternetAddress(
    				mailingList));
    		msg.setSubject(Subject);
     
    		Multipart mp = new MimeMultipart();
    		MimeBodyPart mbp = new MimeBodyPart();
    		mbp.setContent(content, "text/plain");
    		mp.addBodyPart(mbp);
     
    		FileDataSource source = new FileDataSource(fichierTemp);
    		mbp.setDataHandler(new DataHandler(source));
    		mbp.setFileName(nomSource);
    		mp.addBodyPart(mbp);
     
    		msg.setContent(mp);
     
    		Transport.send(msg);
    	} catch (Exception e) {
    		System.err.println("L'envoi du mail a échoué : " + e.getMessage());
    	}
     
    	}
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fonction mail pour l'envoi de fichier pdf en piece jointe
    Par mathieu.dubiez dans le forum Langage
    Réponses: 2
    Dernier message: 09/08/2012, 09h55
  2. Envoyer document par piece jointe dans sous dossier
    Par webmantoine dans le forum Configuration
    Réponses: 0
    Dernier message: 12/10/2009, 11h45
  3. Envoyer mail avec piece jointe par outlook
    Par skunkies dans le forum Windows Forms
    Réponses: 6
    Dernier message: 18/11/2008, 01h09
  4. Mail() avec un PDF en piece jointe
    Par HWICE dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 29/07/2008, 17h44
  5. [vba E] Envoyer Email Avec Piece Jointe
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/03/2007, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo