2010-10-24 19 views
1

J'utilise mail.jar et activation.jar comme chemin de classe et j'ai programmé un envoi automatique de courrier et cela fonctionne correctement.Envoi du contenu du courrier requis en utilisant mail.jar et activation.jar

Dans mon programme, le contenu est déclaré en tant que chaîne. Mais mon exigence est, j'ai besoin de récupérer quelques-uns des comptes de différentes tables de ma base de données SQL et joindre la même chose dans mon contenu du courrier. Je pense que déclarer le contenu comme chaîne ne m'aidera pas à réaliser la tâche puisque le nombre de lignes que je vais envoyer dans le contenu du courrier sera plus de cinq ou six. Veuillez me faire savoir comment un grand texte peut être ajouté au contenu du courrier. Toute sorte de liens ou de tutoriels pour justifier la même sera très appréciable. Merci beaucoup d'avance .. Joyeux dimanche les gars .. !!

Répondre

1

Vous êtes probablement familier avec System.out.println etc ... Vous pouvez utiliser cette méthode pour imprimer sur une chaîne comme ceci:

StringWriter sw = new StringWriter(); 
PrintWriter pw = new PrintWriter(sw); 

pw.println("Hello");   // Appends two 
pw.println("World");   // separate lines 

pw.printf("Hello %d World", 5); // Using printf 

pw.println();     // appends a new-line 
pw.print("Another line.");  // appends string w/o new-line 

pw.println();     // appends two 
pw.println();     // newlines 

String rowFormat = "%8s %8s %8s %8s %8s%n"; 
pw.printf(rowFormat, "Col A", "Col B", "Col C", "Col XY", "Col De", "Col Ef"); 
pw.printf(rowFormat, "A", "19", "Car", "55", "Blue", "Last"); 
pw.printf(rowFormat, "X", "21", "Train C", "-4", "Red", "Demo"); 
pw.printf(rowFormat, "B", "-9", "Bike", "0", "Green", "Column"); 

String message = sw.toString(); 

System.out.println(message); 

l'extrait de code ci-dessus serait (dans le dernier System.out.println -call) d'impression:

Hello 
World 
Hello 5 World 
Another line. 

    Col A Col B Col C Col XY Col De 
     A  19  Car  55  Blue 
     X  21 Train C  -4  Red 
     B  -9  Bike  0 Green 

De cette façon, vous pouvez facilement construire une chaîne de message électronique en utilisant println -method calls.

+0

Merci pour l'explication. Je pense que je pourrais gérer l'utilisation de cela. Et est-il possible de former une table avec trois lignes et six colonnes en utilisant une chaîne dans le contenu du courrier? – LGAP

+0

Oui. J'irais certainement pour «printf» si j'avais besoin de mettre en place une table – aioobe

+0

Des exemples disponibles dans le web pour définir la même chose? – LGAP

1

Si vous avez simplement besoin d'envoyer quelques lignes au lieu d'une, vous pouvez toujours utiliser une seule chaîne. Une chaîne peut contenir plusieurs lignes de texte. Ajoutez simplement les nouvelles lignes si nécessaire.

En supposant que votre corps de message est au format texte brut, vous devez utiliser CR LF comme terminaison de ligne (\r\n à la fin de chaque ligne).

Ainsi, vous pouvez construire votre contenu comme ceci:

String content = "This is line 1 of the email\r\n" 
    + "This is line 2 of the email\r\n" 
    + "This is line 3 of the email\r\n"; 
+0

Je voudrais avoir quelques conseils à ce sujet. Suis un débutant en Java !!! – LGAP

+0

Voir la mise à jour de la réponse. – Grodriguez