tarzent
Messages postés30Date d'inscriptionvendredi 12 juillet 2002StatutMembreDernière intervention15 mai 2009
-
31 oct. 2005 à 14:39
begueradj
Messages postés273Date d'inscriptiondimanche 4 octobre 2009StatutMembreDernière intervention24 juin 2014
-
23 juin 2011 à 16:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
begueradj
Messages postés273Date d'inscriptiondimanche 4 octobre 2009StatutMembreDernière intervention24 juin 20149 23 juin 2011 à 16:12
sans javamail ? est-ce que javamail est une méchante API ?
luque19
Messages postés11Date d'inscriptionvendredi 24 novembre 2006StatutMembreDernière intervention16 juin 2010 21 mai 2010 à 17:21
bonsoir
svp est ce qu'on aura pas besoin d'un jar pour l'envoi de mail ??
merci d'avance
liquideshark
Messages postés32Date d'inscriptionmercredi 2 août 2006StatutMembreDernière intervention29 mai 2007 8 mai 2010 à 22:41
Super cool ton post merci infiniment;
une question le send("Reply-To:" + from); il fait quoi ?
Merci ;)
rimh
Messages postés34Date d'inscriptionsamedi 17 avril 2010StatutMembreDernière intervention16 juin 2010 19 avril 2010 à 12:33
Bonjour, SVP quelqu'un peut m'aider de trouver un code en java qui permet la consultation de boite mail. c urgent SVP
grabatad
Messages postés16Date d'inscriptionmardi 7 mars 2006StatutMembreDernière intervention 2 mai 2012 12 déc. 2009 à 06:33
Bonjour sheorogath,
Et si j'ai besoin de m'authentifier au niveau de mon serveur, je fais quoi?
cs_minoucha05
Messages postés5Date d'inscriptionmardi 13 novembre 2007StatutMembreDernière intervention30 septembre 2009 30 sept. 2009 à 13:50
Bonjour à tous,
J'Aimerais savoir comment envoyer un email avec des fichiers jointes automatiquement à plusieurs destinaires à une date précise de chaque mois en langage java.
Merci c'est urgent
cs_michel59000
Messages postés1Date d'inscriptionsamedi 14 février 2009StatutMembreDernière intervention14 février 2009 14 févr. 2009 à 01:00
bonjour a tous
je voudrais savoir s'il est possible d'envoyer le message en html?
car j'ai besoin d'envoyer un beau mail! et je n'ai pas trop envi d'utiliser javamail
merci
tanabenezied
Messages postés11Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention24 novembre 2008 24 nov. 2008 à 01:16
informatique_sousou
tanabenezied
Messages postés11Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention24 novembre 2008 24 nov. 2008 à 01:16
OK
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 29 juil. 2008 à 22:07
lieu inapproprié: forum!
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 29 juil. 2008 à 17:24
salut ,
je veux savoir comment recevoir des masseges (mails ) en java ( javamail) c'est à dire detecter les messages reçus dans une boite et lire le différentes paramétres du message (expéditeur ,destinataire ,objet ,contenu).
merci au préalable pour toutes vos réponses .
cordialement
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 28 juil. 2008 à 17:52
Main-Class: ConnexionBD
et essaye sans le Class-path si le pb persiste puis sans le Created-by!
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 28 juil. 2008 à 17:49
salut ,
j'ai copié ma classe ConnexionBD dans un répertoire appli
dans le même répertoir j'ai crée mon fichier MANIFEST.MF
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 28 juil. 2008 à 17:23
Nämlich!
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 28 juil. 2008 à 17:22
la prochaine fois pose ta question sur le forum et non pas sur une source qui n'a aucun rapport avec ce que tu demande
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 28 juil. 2008 à 17:19
Excellent tuto:
http://java.developpez.com/faq/java/?page=execution ------------
Tout d'abord, il convient de créer un fichier Manifest.
Ce fichier contiendra le nom de la classe à exécuter ainsi que les archives à mettre dans le CLASSPATH.
Attention : il est nécessaire de terminer le fichier manifest par un saut de ligne.
Nous appellerons le fichier MANIFEST.MF et il sera placé dans un répertoire META-INF en racine de l'application (par exemple).
Les archives jar du classpath ne seront pas inclues dans ce jar mais seront situées par la suite dans le même répertoire que nous allons créer (ou dans un path bien défini).
Si l'on veut qu'elles soient rangées dans un répertoire il suffira de donner le path:
Class-Path: path1\archive1.jar path2\archive2.jar
Pour créer le jar il faut déjà supprimer tous les .java
L'idéal étant de copier tous les .class (avec leur arborescence s'ils sont packagés) dans un répertoire temporaire pour créer le jar dans ce répertoire. On peut aussi copier les fichiers qui seront accessibles dans le jar (images) s'il y en a.
La commande permettant de créer un fichier .jar est la suivante :
jar cvfm fichier-jar fichier-manifeste fichiers...
Voilà la signification des différents paramètres :
* fichier-jar : est le nom du jar à créer
* fichier-manifeste : fichier MANIFEST.MF
* fichiers : fichiers à ajouter à l'archive. Si un des fichiers est un répertoire, celui-ci est traité récursivement.
Dans le répertoire des .class, on exécutera donc la commande suivante :
jar cvfm monappli.jar META-INF/MANIFEST.MF .
Cela va nous créer un .jar éxécutable nommé monappli.jar avec le fichier MANIFEST.MF présent dans le répertoire META/INF. Ce jar se voit ajouter les fichiers du répertoire courant (spécifié par le caractère '.').
Le programme jar reconstruira le fichier Manifest et affichera sur la sortie standard les résultats (ça permet de vérifier qu'il est codé correctement).
On exécute ensuite le jar de la façon suivante :
java -jar monappli.jar
Les archives indiquées dans le Class-Path du Manifest seront recherchées selon leurs chemin relatif par rapport au fichier Jar principal.
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 28 juil. 2008 à 17:17
salut ,
j'obtiens seulement le fichier connbd.jar
il n'y a pas de fichier manifest
est ce qu'il y a une commande pour le créer ?
merci d'expliquer davantage
cordialement
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 28 juil. 2008 à 16:33
Le fichier Manifest est-il correctement crée?
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 28 juil. 2008 à 16:31
salut ,
je travaille en java ,je génére un fihier .jar dont la fonction et de faire une requte mysql et afficher le resultat ,
probleme rencontré :
au lancement du fichier.jar avec la commande java -jar fichier.jar
j'obtiens l'erreur suivante:
Failed to load Main-Class manifest attribute from
fichier.jar
cordialement
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 10 juil. 2008 à 13:39
oui mais le smtp est sur le lan ou pas ?
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 10 juil. 2008 à 11:11
C'est étonnant...
Et une recherche dans Google?
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 10 juil. 2008 à 10:32
salut,
j'ai fait des test en LAN avec des adresses internes (sous lotus notes) mais le probleme c'est que le message ne passe pas et me donne la méme erreur que ja'i déjà signalé?
cordialement.
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 10 juil. 2008 à 09:56
ouch, alors faire des tests en LAN...
Quel type de serveur? MS Windows ? Linux? Unix?
Je parle dans gMail, il faut activer une case dans "paramètre", "Transfert et POP/IMAP" et "Activer le protocole POP pour tous les messages"!
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 10 juil. 2008 à 09:51
bonjour,
merci pour toutes les réponses ,
s'il est possible veuillez précisez de quelle case vous parlez GillesWebmaster ?
sachant que je travaille sur un réseau local d'une entreprise et j'ai fait le test avec des adresses internes et je trouve le meme problème.
cordialement
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 9 juil. 2008 à 18:07
HA JE COMPRENDS; il faut ACTIVER l'option!
Je m'en rappelle: c'est comme pour le POP3; il faut cocher une case
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 9 juil. 2008 à 18:04
ou alors gmail n'authorise pas les connections externes
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 9 juil. 2008 à 17:53
Il semblerait que votre correspondant vous ai mis sur sa liste d'indésirables et du coup le serveur rejète les mails que vous lui adressé.
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 9 juil. 2008 à 17:00
salut,
oui bien sur j'ai lu tous les commentaires mais ile ne traitent pas l'exception que j'ai obtenu à savoir:
Exception in thread "main" com.sun.mail.smtp.SMTPSendFailedException: 554 Mail from expediteur@gmail.com rejected for policy reasons.
sachant que je peut se connecter au serveur de messagerie, voilà ce que j'obtient lorsque je debuge mon programme
DEBUG: setDebug: JavaMail version 1.4.1
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "10.128.1.160", port 25, isSSL false
220 SRV01010304.meditel.int ESMTP Service (Lotus Domino Release 7.0.2FP2) ready at Wed, 9 Jul 2008 15:53:54 +0100
DEBUG SMTP: connected to host "10.128.1.160", port: 25
EHLO ST-SM-1719
250-SRV01010304.meditel.int Hello ST-SM-1719 ([10.128.54.241]), pleased to meet you
250-HELP
250-SIZE 30720000
250 PIPELINING
DEBUG SMTP: Found extension "HELP", arg ""
DEBUG SMTP: Found extension "SIZE", arg "30720000"
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: use8bit false
MAIL FROM:<expediteur@meditel.ma>
554 Mail from expediteur@meditel.ma rejected for policy reasons.
DEBUG SMTP: got response code 554, with response: 554 Mail from handset@meditel.ma rejected for policy reasons.
RSET
250 Reset state
com.sun.mail.smtp.SMTPSendFailedException: 554 Mail from expediteur@meditel.ma rejected for policy reasons.
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1515)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1054)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:634)
at javax.mail.Transport.send0(Transport.java:189)
at javax.mail.Transport.send(Transport.java:118)
at postMail.(postMail.java:64)
at postMail.main(postMail.java:70)
QUIT
221 SRV01010304.meditel.int SMTP Service closing transmission channel
Exception in thread "main" com.sun.mail.smtp.SMTPSendFailedException: 554 Mail from handset@meditel.ma rejected for policy reasons.
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1515)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1054)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:634)
at javax.mail.Transport.send0(Transport.java:189)
at javax.mail.Transport.send(Transport.java:118)
at postMail.(postMail.java:64)
at postMail.main(postMail.java:70)
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 9 juil. 2008 à 16:50
as tu lu les commentaire de GillesWebmaster ?
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 9 juil. 2008 à 14:28
salut ,
je travaille sur eclipse et lorsque j'essaie d'envoyer un message avec java ,j'obtient l'erreur suivante:
Exception in thread "main" com.sun.mail.smtp.SMTPSendFailedException: 554 Mail from expediteur@gmail.com rejected for policy reasons.
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 8 juil. 2008 à 17:14
salut ,
je travaille sur eclipse et lorsque j'essaie d'envoyer un message avec java ,j'obtient l'erreur suivante:
Exception in thread "main" com.sun.mail.smtp.SMTPSendFailedException: 554 Mail from expediteur@gmail.com rejected for policy reasons.
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1515)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1054)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:634)
at javax.mail.Transport.send0(Transport.java:189)
at javax.mail.Transport.send(Transport.java:118)
at postMail.(postMail.java:58)
at postMail.main(postMail.java:64)
-------------------------------
le code utilisé est le suivant:
//Set the host smtp address
Properties props = new Properties();
props.put("mail.smtp.host", SMTP_HOST_NAME);
// create some properties and get the default Session
Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug);
// create a message
Message msg = new MimeMessage(session);
// set the from and to address
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++)
{
addressTo[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
// Optional : You can also set your custom headers in the Email if you Want
msg.addHeader("MyHeaderName", "myHeaderValue");
// Setting the Subject and Content Type
msg.setSubject(subject);
// msg.setContent(message, "text/plain");
Transport.send(msg);
}
public static void main(String args[]) throws Exception
{
new postMail( emailList, emailSubjectTxt, emailMsgTxt, emailFromAddress);
System.out.println("Sucessfully Sent mail to All Users");
}
}
-------------------------
c'est trés urgent ,je suis bloqué
merci,
cordialement
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 4 juil. 2008 à 10:43
bonjour à tous ,
le probleme envoyer des emails à partir d'une application en java web ,
est ce que je dois pas changer le DNS de ma machine et entrer comme DNS l'adresse ip du serveur de messagerie.
cordialement .
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 3 juil. 2008 à 17:11
merci infiniment pour toutes vos reponses
maintenant si je suis sur un réseau local et je veux envoyer des emails soit avec java ou HTML via Outlook et surtout via Lotus Notes ,les messages sont à envoyer à partir d'une application intranet via Lotus Notes 7
cordialement
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 3 juil. 2008 à 15:37
itch, pas à ma connaissance!
à moins de monter un petit serveur Linux domestique, je ne crois pas!?!
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 3 juil. 2008 à 15:33
merci pour le temps que vous m'accorder
si non si je veux envoyer des messages à partir de mon application sans utiliser le serveur SMTP est ce qu'il y a une solution pour le faire en java
cordialement
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 3 juil. 2008 à 15:02
Je ne crois pas qu'il existe des SMTP libres car ce serai la porte ouverte aux SPAMS et autres Pourriels (comme disent nos amis français)
@++
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 3 juil. 2008 à 14:43
merci pour vos eclaircissement ,
est ce que vous pouvez me donner un exemple d'un fournisseur que je peux utiliser sans probleme,
est e qu'il y a pas d'anomalies das mon code
merci bien GillesWebmaster
cordialement
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 3 juil. 2008 à 14:05
essaye avec un autre fournisseur que HOTMAIL!
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 3 juil. 2008 à 13:51
merci pour ta réponse
mais comment je peux trouver un FAI compaible SMTP?
sachant que je veux envoyer des emails à partir d'une application web et je suis sur un réseau local d'une société(opérateur télécom)
merci d'eclaircir un peu GillesWebmaster
et merci pour tous les membres du forum
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 3 juil. 2008 à 13:46
bonjour
et merci pour m'aider d'avance
j'utilise l'api eclipse et je désire envoyer un email
voilà mon code :
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.StringTokenizer;
public class MailTo {
public MailTo() {
}
public static boolean sendMail(Socket sock, String localHost,
String Destinataire, String from, String subject, String message)
throws IOException {
//connection a la socket passe par param
out = new PrintWriter(sock.getOutputStream());
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
//on recoi la ligne qui nous dit que l'on est connecté
receive();
//on envoi la premiere ligne qui indique de qui elle provien
send("HELO " + localHost);
//on nous dit qu'elle a bien etait recu
receive();
//on envoi l'adresse de l'expediteur
send("MAIL FROM: <" + from + ">");
//on nous dit que ca c'est bien passe
receive();
//on envoi l'adresse du destinataire
send("RCPT TO: <" + Destinataire + ">");
//on recupere la reponse
receive();
//on passe au chose serieuse pour commencer l'envoi du corps
send("DATA");
//on verifie que le serveur soit pret
receive();
//on envoi plusieur balise utile
send("Subject: " + subject);
send("Date: " + new Date());
send("Reply-To:" + from);
send("To: " + Destinataire);
//on envoi cahque ligne separement en utilisant \n comme delimitateur
StringTokenizer tokenizer = new StringTokenizer(message, "\n");
//la ligne ci dessous se traduit par : tant qu'il y a encore des ligne
while (tokenizer.hasMoreTokens())
send(tokenizer.nextToken());
//pour finir l'envoi d'un mail il faut envoi sur une ligne un seul point
send(".");
//on verifie que le mail a etait accepte
receive();
//on quitte
send("QUIT");
//on nous dit que ca a bien quitter
receive();
//on ferme les flux
in.close();
out.close();
sock.close();
return true;
}
//methode qui recoit les information du servveur
private static void receive() throws IOException {
String line = in.readLine();
if (line != null) {
System.out.println(line);
System.out.println("\n");
}
}
//methode qui envoi des infos au serveur
private static void send(String s) {
System.out.print(s);
System.out.print("\r\n");
System.out.flush();
out.print(s);
out.print("\r\n");
out.flush();
}
private static BufferedReader in;
private static PrintWriter out;
public static void main(String[] args) throws UnknownHostException, IOException {
// TODO Auto-generated method stub
try{
Socket sock= new Socket("stmp.hotmail", 25);
MailTo.sendMail(sock, "localHost", "lahrizi-zt@hotmail.com", "lahrizi-zt@hotmail.com", "salut", "salut ça marche");
}catch(Exception e){
e.printStackTrace();
}
}
}
probléme:
j'ai toujours l'exception suivante:
java.net.UnknownHostException: stmp.hotmail
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.(Unknown Source)
at java.net.Socket.(Unknown Source)
at MailTo.main(MailTo.java:83)
je pense que c'est un probléme de smtp.
c'est quelqu'un peut m'aider je serais trés reconnaissant
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 3 juil. 2008 à 12:05
1) Ce code n'intègre aucun serveur SMTP, c'est une appli séparée fournie par ton FAI (Provider)
2) les serveurs comme hotmail et autres ne sont pas compatible (volontairement) avec POP/SMTP puisque tu dois recourir à LEUR boite mail...
3) ton problème est un problème de connection au Serveur; Trouve un FAI compatible SMTP!
anouarderd
Messages postés20Date d'inscriptionvendredi 25 janvier 2008StatutMembreDernière intervention26 août 2008 3 juil. 2008 à 11:35
je travaille sur eclipse et je veux envoyer un mail en utilisant java
j'utilise le code suivant:
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.StringTokenizer;
public class MailTo {
public MailTo() {
}
public static boolean sendMail(Socket sock, String localHost,
String Destinataire, String from, String subject, String message)
throws IOException {
//connection a la socket passe par param
out = new PrintWriter(sock.getOutputStream());
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
//on recoi la ligne qui nous dit que l'on est connecté
receive();
//on envoi la premiere ligne qui indique de qui elle provien
send("HELO " + localHost);
//on nous dit qu'elle a bien etait recu
receive();
//on envoi l'adresse de l'expediteur
send("MAIL FROM: <" + from + ">");
//on nous dit que ca c'est bien passe
receive();
//on envoi l'adresse du destinataire
send("RCPT TO: <" + Destinataire + ">");
//on recupere la reponse
receive();
//on passe au chose serieuse pour commencer l'envoi du corps
send("DATA");
//on verifie que le serveur soit pret
receive();
//on envoi plusieur balise utile
send("Subject: " + subject);
send("Date: " + new Date());
send("Reply-To:" + from);
send("To: " + Destinataire);
//on envoi cahque ligne separement en utilisant \n comme delimitateur
StringTokenizer tokenizer = new StringTokenizer(message, "\n");
//la ligne ci dessous se traduit par : tant qu'il y a encore des ligne
while (tokenizer.hasMoreTokens())
send(tokenizer.nextToken());
//pour finir l'envoi d'un mail il faut envoi sur une ligne un seul point
send(".");
//on verifie que le mail a etait accepte
receive();
//on quitte
send("QUIT");
//on nous dit que ca a bien quitter
receive();
//on ferme les flux
in.close();
out.close();
sock.close();
return true;
}
//methode qui recoit les information du servveur
private static void receive() throws IOException {
String line = in.readLine();
if (line != null) {
System.out.println(line);
System.out.println("\n");
}
}
//methode qui envoi des infos au serveur
private static void send(String s) {
System.out.print(s);
System.out.print("\r\n");
System.out.flush();
out.print(s);
out.print("\r\n");
out.flush();
}
private static BufferedReader in;
private static PrintWriter out;
public static void main(String[] args) throws UnknownHostException, IOException {
// TODO Auto-generated method stub
try{
Socket sock= new Socket("stmp.hotmail", 25);
MailTo.sendMail(sock, "localHost", "lahrizi-zt@hotmail.com", "lahrizi-zt@hotmail.com", "salut", "salut ça marche");
}catch(Exception e){
e.printStackTrace();
}
}
}
le probléme c'est que j'ai toujours cette erreur:
java.net.UnknownHostException: stmp.hotmail
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.(Unknown Source)
at java.net.Socket.(Unknown Source)
at MailTo.main(MailTo.java:83)
et méme si je change "smtp.hotmail" par "smtp.hotmail.com" ou "smtp.yahoo.fr"
de plus je sais pas comment utliser le serveur smtp ???!
comment l'activer ou juste l'utiliser ???
a l'attente d'une reponse je serais trés trés reconnaissant!!
merci d'avance
styvodiabolo
Messages postés44Date d'inscriptionjeudi 1 juin 2006StatutMembreDernière intervention 4 janvier 2009 8 mars 2008 à 16:05
Mais bon, le document word que j'envoie fait toujours 0 Octet.
++
styvodiabolo
Messages postés44Date d'inscriptionjeudi 1 juin 2006StatutMembreDernière intervention 4 janvier 2009 8 mars 2008 à 12:04
Bonjour à vous,
Tout d'abord, merci à toi SHEOROGATH pour ce script.
Je voudrais juste revenir sur le commentaire de JGRIM où il explique comment rajouter une pièce jointe dans le mail.
Serait-il possible d'avoir un soupçon plus d'explications car je vois pas que sont les _NextPart_000_0000_01C83B43.03187040, de plus lorsque j'envoie une pièce jointe celle-ci fait O octet :/.
Dans la pièce jointe en question, j'ai testé une image avec l'objet Image puis ensuite un File, je pense que c'est une autre manière de faire mais je vois pas.
Merci d'avance pour vos réponses.
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 30 déc. 2007 à 00:04
ben a toi d'en trouver un ... j'en ai pas en rab lol
rafikconstantine
Messages postés6Date d'inscriptionsamedi 14 mai 2005StatutMembreDernière intervention29 décembre 2007 29 déc. 2007 à 23:57
vous pouvez m'aider meme en utilisant un autre serveur smtp a par gmail. ???????????,
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 29 déc. 2007 à 23:49
alors j'ai reçu comme message, kece ke je fais stp ?
rafikconstantine
Messages postés6Date d'inscriptionsamedi 14 mai 2005StatutMembreDernière intervention29 décembre 2007 28 déc. 2007 à 20:05
merci bcp, mais G rencontré un autre probleme C'st avec le serveur :
java.net.UnknownHostException: hotmail.smtp
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.(Unknown Source)
at java.net.Socket.(Unknown Source)
at mail.main(mail.java:7)
merci de me repondre stp.
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 28 déc. 2007 à 19:19
rafikconstantine
Messages postés6Date d'inscriptionsamedi 14 mai 2005StatutMembreDernière intervention29 décembre 2007 28 déc. 2007 à 15:18
Pffff je trouve vraiment un probleme avec ce code,
j'ai ajouté la classe de rception avec ce code
import java.net.Socket;
public class mail {
public static void main (String[] args){
Socket sock= new Socket("smtp.hotmail", 25);
Envoie.sendMail(sock, "localHost", "mail1", "mail2", "salut", "salut ça marche");
}
mais je vois ke j'ai cette erreur :Unhandled exception type IOException
aidez moi svp, je sais je crois ke le probleme est dans le serveur aidez plzzzzzzz
}
cs_jgrim
Messages postés1Date d'inscriptionmardi 25 septembre 2007StatutMembreDernière intervention21 décembre 2007 21 déc. 2007 à 15:05
Salut et merci pour ce code qui est effectivement efficace et peu couteux en ressource.
Pour ce qui de l'envoi de pièces jointes, il faut jouer sur les MIME
Pour cela j'ai du enlever le send("Content-Type: text/plain; charset="us-ascii"\r\n"); de ma Classe MailTo pour l'inclure directement dans le message. Ensuite on utilise un Content/type Multipart/mixed.
Exemple :
Socket soc = new Socket(server_messagerie, 25);
String localHost = localHostname();
String _from = "compte@DPI-pmu.fr";
String _to = "autre_compte@mail.fr";
String _subject = "Mise a jour alpha de " + nom_fichier_modifie;
// ATTENTION ==> la constittion du message ne fonctionne qu'a la condition d'avoir mis
// les \r\n et \n au bonne endroit dans les TAG.
String message = "Content-Type: multipart/mixed;" +
"boundary="----=_NextPart_000_0000_01C83B43.03187040"\r\n" +
"------=_NextPart_000_0000_01C83B43.03187040\n" +
"Content-Type: text/plain;\n" +
"charset="iso-8859-1" \n" +
" Content-Transfer-Encoding: quoted-printable \r\n" +
" \r\n" +
"Original : " + nom_fichier_original_cour + "\r\n" +
"Modifié : " + nom_fichier_modifie_cour + "\r\n" +
" \n" +
"------=_NextPart_000_0000_01C83B43.03187040\n" +
"Content-Type: text/plain;\n" +
" name=" + nom_fichier_original_cour + "\n" +
"Content-Transfer-Encoding: quoted-printable " +
"Content-Disposition: attachment;\n" +
" filename=" + nom_fichier_original_cour + "\r\n" +
contenu_nom_fichier_original + "\r\n" +
" \r\n" +
" \n" +
"------=_NextPart_000_0000_01C83B43.03187040\n" +
"Content-Type: text/plain;\n" +
" name=" + nom_fichier_modifie_cour + "\n" +
"Content-Transfer-Encoding: quoted-printable " +
"Content-Disposition: attachment;\n" +
" filename=" + nom_fichier_modifie_cour + "\r\n" +
contenu_nom_fichier_modifie + "\r\n" +
" \r\n" +
" \n" +
"------=_NextPart_000_0000_01C83B43.03187040 \n";
MailTo.sendMail(soc, localHost, user_base64, mdp_base64, _to, _from, _subject, message);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Bon c'est juste un exemple et le contenu de ma pièce jointe et dans le String contenu_nom_fichier_original et la deuxième pièce jointe et dans contenu_nom_fichier_modifie.
J'ai aussi fais le test pour une image et ça fonctionne en editant l'image comme un texte et en l'ajoutant au message.
Bon Fête à tout le monde en espérant que j'en ai aidé certain par ce message.
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 30 nov. 2007 à 16:56
Mieux vaut utiliser l'API JavaMail!
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 30 nov. 2007 à 16:27
oui faut voir les specification mime
j'ai regarde pour une implementation j'ai pas le temps actuellement
sinon quant a l'implementation je pense pas quelle soit tres complique
castrogne
Messages postés1Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention30 novembre 2007 30 nov. 2007 à 12:26
Bonjour,
super code pour se simplifier la vie!
Est-il possible d'envoyer une pièce jointe en modifiant un peu? Je suppose que oui, mais je ne connais pas le format...
Merci!
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 22 oct. 2007 à 17:02
oui...
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 22 oct. 2007 à 13:28
^^ sympa !
merci pour la precision et je suis content que ca ai pu etre utile
willy_easy
Messages postés2Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention22 octobre 2007 22 oct. 2007 à 11:42
Salut,
Ben je craiganis que multiplication des send RCPT TO et des TO ne fasse planté le bignou. En fait, ça passe tres bien.
Là il accepte toutes les adresses.
Par contre j'avais fait une erreur : J'avais doublé le tokenizer et le while, un pour le RCPT TO, un pour le TO. Dans ce cas le mail part bien comme il faut, mais aucune adresse n'apparait dans destinataire dans le mail reçu.
=> Il faut faire le StringTokenizer et le while que sur le RCPT TO et laissé la chaine d'adresses normale pour le TO.
Là tout se passe tres bien, chaque adresse est prise en compte, et on a bien toutes les adresses qui apparaissent en destinataires, bref un vrai mail quoi ;o).
Merci bcp.
amaratop
Messages postés3Date d'inscriptionvendredi 17 novembre 2006StatutMembreDernière intervention21 octobre 2007 21 oct. 2007 à 04:01
Bonjour !
Tu utilises un StringTokenizer
java.util.StringTokenizer st=new java.util.StringTokenizer(f.getTo().trim(),";");
while(st.hasMoreTokens()){}
"f" est le formulaire qui recupère le string de To
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 19 oct. 2007 à 18:49
ben heu tu utilise un stringtokeyniser et tu boucle sur la methode avec un while
ou alors peut etre qu'il y a une commande smtp qui redirige le mail vers plusieur destinataires ...
willy_easy
Messages postés2Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention22 octobre 2007 19 oct. 2007 à 13:28
Bonjour,
Ce script correspond pil poil à mon besoin. ;o)
Il marche très bien avec une seule adresse mail pour le destinataire, mais ne reconnait pas un String contenant plusieurs adresses séparées par des ";".
Y a-t-il une ruse ?
Merci
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 3 oct. 2007 à 14:48
Ha tu me rassures!
amaratop
Messages postés3Date d'inscriptionvendredi 17 novembre 2006StatutMembreDernière intervention21 octobre 2007 3 oct. 2007 à 14:28
Merci sheorogath c'etait un probleme de srveur le 10.3.0.3 n'était plus fonctionnel , je l'ai changé de meme que le controle et ca marche merci
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 3 oct. 2007 à 07:29
il ouvre pas la socket donc probleme de server et/ou de port
il faut que sur 10.3.0.3 tu ai un serveur smtp qui tourne
test.sendMail(sock,localhost,f.getDestinataire(),f.getFrom(),f.getSubject(),f.getMessage());
if (test.sendMail(sock,localhost,f.getDestinataire(),f.getFrom(),f.getSubject(),f.getMessage())==true)
=>
boolean b = test.sendMail(sock,localhost,f.getDestinataire(),f.getFrom(),f.getSubject(),f.getMessage());
if (b)
amaratop
Messages postés3Date d'inscriptionvendredi 17 novembre 2006StatutMembreDernière intervention21 octobre 2007 2 oct. 2007 à 12:09
Bonjour j'ai essayé le code d'envoie d'e-mail sans utiliser JavaMail dans une application java avec Struts mais j'ai ce message d'erreur:java.net.SocketException: Socket is closed
//connection a la socket passe par param
out = new PrintWriter(sock.getOutputStream());
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
//on recoi la ligne qui nous dit que l'on est connecté
receive();
//on envoi la premiere ligne qui indique de qui elle provien
send("HELO " + localHost);
//on nous dit qu'elle a bien etait recu
receive();
//on envoi l'adresse de l'expediteur
send("MAIL FROM: <" + from + ">");
//on nous dit que ca c'est bien passe
receive();
//on envoi l'adresse du destinataire
send("RCPT TO: <" + Destinataire + ">");
//on recupere la reponse
receive();
//on passe au chose serieuse pour commencer l'envoi du corps
send("DATA");
//on verifie que le serveur soit pret
receive();
//on envoi plusieur balise utile
send("Subject: " + subject);
send("Date: " + new Date());
send("Reply-To:" + from);
send("To: " + Destinataire);
//on envoi cahque ligne separement en utilisant \n comme delimitateur
StringTokenizer tokenizer = new StringTokenizer(message, "\n");
//la ligne ci dessous se traduit par : tant qu'il y a encore des ligne
while (tokenizer.hasMoreTokens())
send(tokenizer.nextToken());
//pour finir l'envoi d'un mail il faut envoi sur une ligne un seul point
send(".");
//on verifie que le mail a etait accepte
receive();
//on quitte
send("QUIT");
//on nous dit que ca a bien quitter
receive();
//on ferme les flux
in.close();
out.close();
sock.close();
return true;
}
//methode qui recoit les information du servveur
private static void receive() throws IOException {
String line = in.readLine();
if (line != null) {
System.out.println(line);
System.out.println("\n");
}
}
//methode qui envoi des infos au serveur
private static void send(String s) {
System.out.print(s);
System.out.print("\r\n");
System.out.flush();
out.print(s);
out.print("\r\n");
out.flush();
}
private static BufferedReader in;
private static PrintWriter out;
}
car je voudrait encoder mes caractères en utf-8 est ce que c'est bien comme ça que je dois le noter car cela ne change pas.
Merci
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 2 juil. 2007 à 23:55
avec plaisir ^^ c'est la pour ca
Le_Ronan
Messages postés3Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention26 juin 2007 2 juil. 2007 à 23:50
Je te remercie sheorogath,
Je cherchais justement un code pour ne pas utiliser javamail.
C'est tout bête, mais ça fonctionne au poil.
Merci encore !
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 27 juin 2007 à 18:45
Salut,
smtp.topnet.tn c'est protocole de communication vers ton serveur qui est chargé d'envoyer ton e-mail; Si tu possèdes un nom de domaine, renseigne toi auprès de ton hebergeur, sinon utilise le SMTP de ton FAI, si celui-ci autorise les envois anonymes de mails!
bebia
Messages postés2Date d'inscriptiondimanche 13 novembre 2005StatutMembreDernière intervention25 juin 2007 25 juin 2007 à 20:23
Bonjour,
je suis débutante en Java ,je developpe une application J2EE j'utilise Struts ,mon probléme c'est que je veux envoiyer un mail à partir de mon application ,et dans le code fourni ya beaucoups de trucs qu j'ai pas bien saisi
comme par exemple:Socket sock = new Socket("smtp.topnet.tn",25);le nom "smtp.topnet.tn",comment il a etait détérminé???j'ai téléchatgé un serveur SMTP mais pour le nom je coince
MERCI A VOUSSS
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 24 mai 2007 à 16:59
QU'AS TU FAIS???
c'est important car ta démarche pourrait aider quelqu'un!
sonsonnn
Messages postés10Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention24 mai 2007 24 mai 2007 à 15:45
je ne sais quel etais l erreur l'autre fois
sonsonnn
Messages postés10Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention24 mai 2007 24 mai 2007 à 10:41
non merci sava sa marche
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 22 mai 2007 à 20:33
c'est la connection a ton serveur smtp qui coince ... est tu sur de ne pas avoir besoin d'authentification?
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 22 mai 2007 à 18:16
Pourquoi tu ne te bases pas uniquement sur
Socket sock = new
Socket("serveur smtp",25);
MailIo.sendMail(sock,Host,from,mail,subject,message);
sonsonnn
Messages postés10Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention24 mai 2007 22 mai 2007 à 17:43
merci de me repondre le plus tot possible
sonsonnn
Messages postés10Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention24 mai 2007 22 mai 2007 à 12:37
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 18 mai 2007 à 11:49
c'est pas un serveur smtp ca se connecte a un serveur smtp
sonsonnn
Messages postés10Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention24 mai 2007 18 mai 2007 à 11:44
comment je lance le serveur smtp?
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 18 mai 2007 à 11:35
et tu coince ou ?
sonsonnn
Messages postés10Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention24 mai 2007 18 mai 2007 à 11:22
c'est juste pour l'envoie cet envoie ce fais automatiquement depuis mon application
merci
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 18 mai 2007 à 11:19
Oui mais sois plus précis: qu'est ce qui ne va pas?
sonsonnn
Messages postés10Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention24 mai 2007 18 mai 2007 à 11:14
es ce que tu peux m'aider d'avoir une fonction pour l'envoie de mail
merci pour l'aide
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 14 mai 2007 à 18:34
lol et tu attend quoi comme aide ?
sonsonnn
Messages postés10Date d'inscriptionmercredi 14 février 2007StatutMembreDernière intervention24 mai 2007 14 mai 2007 à 12:13
je fais mon projet de fin d'étude, mon application comporte un module pour l'envoie de mail à l'internaute pour lui indiquer la validation de son commande, mon application c'est une application de commerce électronique developper avec J2EE struts et hibernate
merci d'avance de m'aider au plus tôt possible
hitno17
Messages postés2Date d'inscriptionsamedi 25 juin 2005StatutMembreDernière intervention 8 avril 2007 8 avril 2007 à 19:35
OK sa joue je me suis débrouillé autrement mais merci pour tes explications.
amateur_java
Messages postés32Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention 6 août 2020 22 mars 2007 à 19:49
hitno17
les variables s'initialisent dés le debut apres la declaration de la methode:
string message="hello etc...";
ex:
# public class MailIo {
# public static string message="ton text";
etc..
# public MailIo() {
#
# }
surtout veille bien à respecter l'ecriture...si tu comprends toujous pas n'hesite ps à demander!
amateur
hitno17
Messages postés2Date d'inscriptionsamedi 25 juin 2005StatutMembreDernière intervention 8 avril 2007 22 mars 2007 à 11:44
Hello !! Dédà un moment que tu a fait ce code mais :
Je comprend pas très bien ou est-ce que tu met
String message = "";
...
Socket soc = new Socket("nom du serveur smtp",25);
MailIo.sendMail(....);
??
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 19 déc. 2005 à 18:10
String message = "";
...
Socket soc = new Socket("nom du serveur smtp",25);
MailIo.sendMail(....);
tout simplement
si ta d'autre probleme n'hesite pas ;)
amateur_java
Messages postés32Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention 6 août 2020 19 déc. 2005 à 15:53
comment initialiser les variables from subject message et destinataire.
car je n'arrive pas a atuliser ta source
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 27 nov. 2005 à 10:59
Oui j'ai été très imprécis: Outlook ne bloque pas mais il n'affiche pas le message en lui même...
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 27 nov. 2005 à 10:29
outlook ne m'as jamais bloqué !!! enfin je l'ajouterai peut etre mais merci de tes commentaire !!!
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 27 nov. 2005 à 09:40
J'ai trouvé pourquoi je ne recevais pas le corps du message: il faut ajouter cette ligne:$
et ajouterais ceci "send("From:""+nomFrom+""<" + from+">");"
juste après "send("To: " + Destinataire); "
voilà j'espère que c'est plus lisible...
Enfaite le reply-to n'est pas la meme chose que le from car le from s'affiches dans l'entête du message (testé sous MS Outlook 2003)...
Je ne comprends pas " le corps du message s'affiche dans la console a l'envoi" merci de m'expliquer
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 26 nov. 2005 à 23:17
le corps du message s'affiche dans la console a l'envoi !!!
apres c vrai que c pas tres ordonne au niveau des constructeur !! sinon pour le from c un peu comme le reply to !!
sinon dsl pour les fautes
Ps : tu pourrai essayez d'aerer ton prochain post car je ne suis pas sur de tout avoir saisie !!!
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 26 nov. 2005 à 23:11
Ta source n'est pas mal mais il y deux erreurs apparentes, hormis les fautes d'orthographe dans le commentaires; Le corps du message lui-même ne s'affiche malheureusement pas... ( je n'ai pas encore de solution). Tu disais en introduction que tu côté recepteur, c'est un peu désordonné et c'est vrai. Moi je modifierais ceci "public static boolean sendMail(Socket sock, String localHost,
String Destinataire, String from, String subject, String message)" par ceci"public static boolean sendMail(Socket sock, String localHost,
String from, String nomFrom, String Destinataire, String subject, String message) " et ajouterais ceci "send("From:""+nomFrom+""<" + from+">");" juste après "send("To: " + Destinataire); "...
Bonne soirée
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 31 oct. 2005 à 14:42
ouais bonne idee mais si je ne l'ai pas fait et que je me suis contente des throws c'est qu'envoyer un mail est tres rapides puis avec les sorties ecran c'est assez simple de voir si il y a eut un proble^me
merci pour le com
++
tarzent
Messages postés30Date d'inscriptionvendredi 12 juillet 2002StatutMembreDernière intervention15 mai 2009 31 oct. 2005 à 14:39
Salut,
Tu devrais englober tes flux dans des blocs try finally. Au cas ou une exception se leverait pendant l'execution de ton code ça fermerait quand même les flux...
23 juin 2011 à 16:12
21 mai 2010 à 17:21
svp est ce qu'on aura pas besoin d'un jar pour l'envoi de mail ??
merci d'avance
8 mai 2010 à 22:41
une question le send("Reply-To:" + from); il fait quoi ?
Merci ;)
19 avril 2010 à 12:33
12 déc. 2009 à 06:33
Et si j'ai besoin de m'authentifier au niveau de mon serveur, je fais quoi?
30 sept. 2009 à 13:50
J'Aimerais savoir comment envoyer un email avec des fichiers jointes automatiquement à plusieurs destinaires à une date précise de chaque mois en langage java.
Merci c'est urgent
14 févr. 2009 à 01:00
je voudrais savoir s'il est possible d'envoyer le message en html?
car j'ai besoin d'envoyer un beau mail! et je n'ai pas trop envi d'utiliser javamail
merci
24 nov. 2008 à 01:16
24 nov. 2008 à 01:16
29 juil. 2008 à 22:07
29 juil. 2008 à 17:24
je veux savoir comment recevoir des masseges (mails ) en java ( javamail) c'est à dire detecter les messages reçus dans une boite et lire le différentes paramétres du message (expéditeur ,destinataire ,objet ,contenu).
merci au préalable pour toutes vos réponses .
cordialement
28 juil. 2008 à 17:52
et essaye sans le Class-path si le pb persiste puis sans le Created-by!
28 juil. 2008 à 17:49
j'ai copié ma classe ConnexionBD dans un répertoire appli
dans le même répertoir j'ai crée mon fichier MANIFEST.MF
puis j'ai lancer la commande
C:\work\appli>jar cvfm monappli.jar MANIFEST.MF .
j'ai obtenu :
manifest ajoutÚ
ajout : ConnexionBD.class (entrÚe 1430) (sortie 1187) (16% compressÚs)
ajout : MANIFEST.MF (entrÚe 159) (sortie 139) (12% compressÚs)
mais le probléme persiste .
le contenu du fichier MANIFEST.MF est:
Manifest-Version: 1.0
Created-By: 1.4.1_01 (Sun Microsystems Inc.)
Main-Class: ConnexionBD.class
Class-Path: C:\mysql-connector-java-3.0.17-ga-bin.jar
cordialement
28 juil. 2008 à 17:23
28 juil. 2008 à 17:22
28 juil. 2008 à 17:19
http://java.developpez.com/faq/java/?page=execution
------------
Tout d'abord, il convient de créer un fichier Manifest.
Ce fichier contiendra le nom de la classe à exécuter ainsi que les archives à mettre dans le CLASSPATH.
Manifest-Version: 1.0
Created-By: 1.4.1_01 (Sun Microsystems Inc.)
Main-Class: Start
Class-Path: .\archive1.jar .\archive2.jar
Attention : il est nécessaire de terminer le fichier manifest par un saut de ligne.
Nous appellerons le fichier MANIFEST.MF et il sera placé dans un répertoire META-INF en racine de l'application (par exemple).
Les archives jar du classpath ne seront pas inclues dans ce jar mais seront situées par la suite dans le même répertoire que nous allons créer (ou dans un path bien défini).
Si l'on veut qu'elles soient rangées dans un répertoire il suffira de donner le path:
Class-Path: path1\archive1.jar path2\archive2.jar
Pour créer le jar il faut déjà supprimer tous les .java
L'idéal étant de copier tous les .class (avec leur arborescence s'ils sont packagés) dans un répertoire temporaire pour créer le jar dans ce répertoire. On peut aussi copier les fichiers qui seront accessibles dans le jar (images) s'il y en a.
La commande permettant de créer un fichier .jar est la suivante :
jar cvfm fichier-jar fichier-manifeste fichiers...
Voilà la signification des différents paramètres :
* fichier-jar : est le nom du jar à créer
* fichier-manifeste : fichier MANIFEST.MF
* fichiers : fichiers à ajouter à l'archive. Si un des fichiers est un répertoire, celui-ci est traité récursivement.
Dans le répertoire des .class, on exécutera donc la commande suivante :
jar cvfm monappli.jar META-INF/MANIFEST.MF .
Cela va nous créer un .jar éxécutable nommé monappli.jar avec le fichier MANIFEST.MF présent dans le répertoire META/INF. Ce jar se voit ajouter les fichiers du répertoire courant (spécifié par le caractère '.').
Le programme jar reconstruira le fichier Manifest et affichera sur la sortie standard les résultats (ça permet de vérifier qu'il est codé correctement).
On exécute ensuite le jar de la façon suivante :
java -jar monappli.jar
Les archives indiquées dans le Class-Path du Manifest seront recherchées selon leurs chemin relatif par rapport au fichier Jar principal.
28 juil. 2008 à 17:17
j'obtiens seulement le fichier connbd.jar
il n'y a pas de fichier manifest
est ce qu'il y a une commande pour le créer ?
merci d'expliquer davantage
cordialement
28 juil. 2008 à 16:33
28 juil. 2008 à 16:31
je travaille en java ,je génére un fihier .jar dont la fonction et de faire une requte mysql et afficher le resultat ,
probleme rencontré :
au lancement du fichier.jar avec la commande java -jar fichier.jar
j'obtiens l'erreur suivante:
Failed to load Main-Class manifest attribute from
fichier.jar
cordialement
10 juil. 2008 à 13:39
10 juil. 2008 à 11:11
Et une recherche dans Google?
10 juil. 2008 à 10:32
j'ai fait des test en LAN avec des adresses internes (sous lotus notes) mais le probleme c'est que le message ne passe pas et me donne la méme erreur que ja'i déjà signalé?
cordialement.
10 juil. 2008 à 09:56
Quel type de serveur? MS Windows ? Linux? Unix?
Je parle dans gMail, il faut activer une case dans "paramètre", "Transfert et POP/IMAP" et "Activer le protocole POP pour tous les messages"!
10 juil. 2008 à 09:51
merci pour toutes les réponses ,
s'il est possible veuillez précisez de quelle case vous parlez GillesWebmaster ?
sachant que je travaille sur un réseau local d'une entreprise et j'ai fait le test avec des adresses internes et je trouve le meme problème.
cordialement
9 juil. 2008 à 18:07
Je m'en rappelle: c'est comme pour le POP3; il faut cocher une case
9 juil. 2008 à 18:04
9 juil. 2008 à 17:53
9 juil. 2008 à 17:00
oui bien sur j'ai lu tous les commentaires mais ile ne traitent pas l'exception que j'ai obtenu à savoir:
Exception in thread "main" com.sun.mail.smtp.SMTPSendFailedException: 554 Mail from expediteur@gmail.com rejected for policy reasons.
sachant que je peut se connecter au serveur de messagerie, voilà ce que j'obtient lorsque je debuge mon programme
DEBUG: setDebug: JavaMail version 1.4.1
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "10.128.1.160", port 25, isSSL false
220 SRV01010304.meditel.int ESMTP Service (Lotus Domino Release 7.0.2FP2) ready at Wed, 9 Jul 2008 15:53:54 +0100
DEBUG SMTP: connected to host "10.128.1.160", port: 25
EHLO ST-SM-1719
250-SRV01010304.meditel.int Hello ST-SM-1719 ([10.128.54.241]), pleased to meet you
250-HELP
250-SIZE 30720000
250 PIPELINING
DEBUG SMTP: Found extension "HELP", arg ""
DEBUG SMTP: Found extension "SIZE", arg "30720000"
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: use8bit false
MAIL FROM:<expediteur@meditel.ma>
554 Mail from expediteur@meditel.ma rejected for policy reasons.
DEBUG SMTP: got response code 554, with response: 554 Mail from handset@meditel.ma rejected for policy reasons.
RSET
250 Reset state
com.sun.mail.smtp.SMTPSendFailedException: 554 Mail from expediteur@meditel.ma rejected for policy reasons.
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1515)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1054)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:634)
at javax.mail.Transport.send0(Transport.java:189)
at javax.mail.Transport.send(Transport.java:118)
at postMail.(postMail.java:64)
at postMail.main(postMail.java:70)
QUIT
221 SRV01010304.meditel.int SMTP Service closing transmission channel
Exception in thread "main" com.sun.mail.smtp.SMTPSendFailedException: 554 Mail from handset@meditel.ma rejected for policy reasons.
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1515)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1054)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:634)
at javax.mail.Transport.send0(Transport.java:189)
at javax.mail.Transport.send(Transport.java:118)
at postMail.(postMail.java:64)
at postMail.main(postMail.java:70)
9 juil. 2008 à 16:50
9 juil. 2008 à 14:28
je travaille sur eclipse et lorsque j'essaie d'envoyer un message avec java ,j'obtient l'erreur suivante:
Exception in thread "main" com.sun.mail.smtp.SMTPSendFailedException: 554 Mail from expediteur@gmail.com rejected for policy reasons.
8 juil. 2008 à 17:14
je travaille sur eclipse et lorsque j'essaie d'envoyer un message avec java ,j'obtient l'erreur suivante:
Exception in thread "main" com.sun.mail.smtp.SMTPSendFailedException: 554 Mail from expediteur@gmail.com rejected for policy reasons.
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1515)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1054)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:634)
at javax.mail.Transport.send0(Transport.java:189)
at javax.mail.Transport.send(Transport.java:118)
at postMail.(postMail.java:58)
at postMail.main(postMail.java:64)
-------------------------------
le code utilisé est le suivant:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
public class postMail {
/**
* @param args
*/
/* declaration des paramétres de connexion */
private static final String SMTP_HOST_NAME = "10.128.1.160";
private static final String emailMsgTxt = " ";
private static final String emailSubjectTxt = " ";
private static final String emailFromAddress = "expediteur@gmail.com";
private static final String[] emailList = {"desti1@yahoo.fr", "desti2@meditel.ma"};
public postMail( String recipients[ ], String subject, String message , String from) throws MessagingException
{
boolean debug = false;
//Set the host smtp address
Properties props = new Properties();
props.put("mail.smtp.host", SMTP_HOST_NAME);
// create some properties and get the default Session
Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug);
// create a message
Message msg = new MimeMessage(session);
// set the from and to address
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++)
{
addressTo[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
// Optional : You can also set your custom headers in the Email if you Want
msg.addHeader("MyHeaderName", "myHeaderValue");
// Setting the Subject and Content Type
msg.setSubject(subject);
// msg.setContent(message, "text/plain");
Transport.send(msg);
}
public static void main(String args[]) throws Exception
{
new postMail( emailList, emailSubjectTxt, emailMsgTxt, emailFromAddress);
System.out.println("Sucessfully Sent mail to All Users");
}
}
-------------------------
c'est trés urgent ,je suis bloqué
merci,
cordialement
4 juil. 2008 à 10:43
le probleme envoyer des emails à partir d'une application en java web ,
est ce que je dois pas changer le DNS de ma machine et entrer comme DNS l'adresse ip du serveur de messagerie.
cordialement .
3 juil. 2008 à 17:11
maintenant si je suis sur un réseau local et je veux envoyer des emails soit avec java ou HTML via Outlook et surtout via Lotus Notes ,les messages sont à envoyer à partir d'une application intranet via Lotus Notes 7
cordialement
3 juil. 2008 à 15:37
à moins de monter un petit serveur Linux domestique, je ne crois pas!?!
3 juil. 2008 à 15:33
si non si je veux envoyer des messages à partir de mon application sans utiliser le serveur SMTP est ce qu'il y a une solution pour le faire en java
cordialement
3 juil. 2008 à 15:02
Par contre ton FAI te fournit son serveur SMTP.
http://www.commentcamarche.net/faq/sujet-893-adresses-des-serveurs-pop-et-smtp-des-principaux-fai
Je ne crois pas qu'il existe des SMTP libres car ce serai la porte ouverte aux SPAMS et autres Pourriels (comme disent nos amis français)
@++
3 juil. 2008 à 14:43
est ce que vous pouvez me donner un exemple d'un fournisseur que je peux utiliser sans probleme,
est e qu'il y a pas d'anomalies das mon code
merci bien GillesWebmaster
cordialement
3 juil. 2008 à 14:05
3 juil. 2008 à 13:51
mais comment je peux trouver un FAI compaible SMTP?
sachant que je veux envoyer des emails à partir d'une application web et je suis sur un réseau local d'une société(opérateur télécom)
merci d'eclaircir un peu GillesWebmaster
et merci pour tous les membres du forum
3 juil. 2008 à 13:46
et merci pour m'aider d'avance
j'utilise l'api eclipse et je désire envoyer un email
voilà mon code :
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.StringTokenizer;
public class MailTo {
public MailTo() {
}
public static boolean sendMail(Socket sock, String localHost,
String Destinataire, String from, String subject, String message)
throws IOException {
//connection a la socket passe par param
out = new PrintWriter(sock.getOutputStream());
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
//on recoi la ligne qui nous dit que l'on est connecté
receive();
//on envoi la premiere ligne qui indique de qui elle provien
send("HELO " + localHost);
//on nous dit qu'elle a bien etait recu
receive();
//on envoi l'adresse de l'expediteur
send("MAIL FROM: <" + from + ">");
//on nous dit que ca c'est bien passe
receive();
//on envoi l'adresse du destinataire
send("RCPT TO: <" + Destinataire + ">");
//on recupere la reponse
receive();
//on passe au chose serieuse pour commencer l'envoi du corps
send("DATA");
//on verifie que le serveur soit pret
receive();
//on envoi plusieur balise utile
send("Subject: " + subject);
send("Date: " + new Date());
send("Reply-To:" + from);
send("To: " + Destinataire);
//on envoi cahque ligne separement en utilisant \n comme delimitateur
StringTokenizer tokenizer = new StringTokenizer(message, "\n");
//la ligne ci dessous se traduit par : tant qu'il y a encore des ligne
while (tokenizer.hasMoreTokens())
send(tokenizer.nextToken());
//pour finir l'envoi d'un mail il faut envoi sur une ligne un seul point
send(".");
//on verifie que le mail a etait accepte
receive();
//on quitte
send("QUIT");
//on nous dit que ca a bien quitter
receive();
//on ferme les flux
in.close();
out.close();
sock.close();
return true;
}
//methode qui recoit les information du servveur
private static void receive() throws IOException {
String line = in.readLine();
if (line != null) {
System.out.println(line);
System.out.println("\n");
}
}
//methode qui envoi des infos au serveur
private static void send(String s) {
System.out.print(s);
System.out.print("\r\n");
System.out.flush();
out.print(s);
out.print("\r\n");
out.flush();
}
private static BufferedReader in;
private static PrintWriter out;
public static void main(String[] args) throws UnknownHostException, IOException {
// TODO Auto-generated method stub
try{
Socket sock= new Socket("stmp.hotmail", 25);
MailTo.sendMail(sock, "localHost", "lahrizi-zt@hotmail.com", "lahrizi-zt@hotmail.com", "salut", "salut ça marche");
}catch(Exception e){
e.printStackTrace();
}
}
}
probléme:
j'ai toujours l'exception suivante:
java.net.UnknownHostException: stmp.hotmail
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.(Unknown Source)
at java.net.Socket.(Unknown Source)
at MailTo.main(MailTo.java:83)
je pense que c'est un probléme de smtp.
c'est quelqu'un peut m'aider je serais trés reconnaissant
3 juil. 2008 à 12:05
2) les serveurs comme hotmail et autres ne sont pas compatible (volontairement) avec POP/SMTP puisque tu dois recourir à LEUR boite mail...
3) ton problème est un problème de connection au Serveur; Trouve un FAI compatible SMTP!
3 juil. 2008 à 11:35
j'utilise le code suivant:
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.StringTokenizer;
public class MailTo {
public MailTo() {
}
public static boolean sendMail(Socket sock, String localHost,
String Destinataire, String from, String subject, String message)
throws IOException {
//connection a la socket passe par param
out = new PrintWriter(sock.getOutputStream());
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
//on recoi la ligne qui nous dit que l'on est connecté
receive();
//on envoi la premiere ligne qui indique de qui elle provien
send("HELO " + localHost);
//on nous dit qu'elle a bien etait recu
receive();
//on envoi l'adresse de l'expediteur
send("MAIL FROM: <" + from + ">");
//on nous dit que ca c'est bien passe
receive();
//on envoi l'adresse du destinataire
send("RCPT TO: <" + Destinataire + ">");
//on recupere la reponse
receive();
//on passe au chose serieuse pour commencer l'envoi du corps
send("DATA");
//on verifie que le serveur soit pret
receive();
//on envoi plusieur balise utile
send("Subject: " + subject);
send("Date: " + new Date());
send("Reply-To:" + from);
send("To: " + Destinataire);
//on envoi cahque ligne separement en utilisant \n comme delimitateur
StringTokenizer tokenizer = new StringTokenizer(message, "\n");
//la ligne ci dessous se traduit par : tant qu'il y a encore des ligne
while (tokenizer.hasMoreTokens())
send(tokenizer.nextToken());
//pour finir l'envoi d'un mail il faut envoi sur une ligne un seul point
send(".");
//on verifie que le mail a etait accepte
receive();
//on quitte
send("QUIT");
//on nous dit que ca a bien quitter
receive();
//on ferme les flux
in.close();
out.close();
sock.close();
return true;
}
//methode qui recoit les information du servveur
private static void receive() throws IOException {
String line = in.readLine();
if (line != null) {
System.out.println(line);
System.out.println("\n");
}
}
//methode qui envoi des infos au serveur
private static void send(String s) {
System.out.print(s);
System.out.print("\r\n");
System.out.flush();
out.print(s);
out.print("\r\n");
out.flush();
}
private static BufferedReader in;
private static PrintWriter out;
public static void main(String[] args) throws UnknownHostException, IOException {
// TODO Auto-generated method stub
try{
Socket sock= new Socket("stmp.hotmail", 25);
MailTo.sendMail(sock, "localHost", "lahrizi-zt@hotmail.com", "lahrizi-zt@hotmail.com", "salut", "salut ça marche");
}catch(Exception e){
e.printStackTrace();
}
}
}
le probléme c'est que j'ai toujours cette erreur:
java.net.UnknownHostException: stmp.hotmail
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.(Unknown Source)
at java.net.Socket.(Unknown Source)
at MailTo.main(MailTo.java:83)
et méme si je change "smtp.hotmail" par "smtp.hotmail.com" ou "smtp.yahoo.fr"
de plus je sais pas comment utliser le serveur smtp ???!
comment l'activer ou juste l'utiliser ???
a l'attente d'une reponse je serais trés trés reconnaissant!!
merci d'avance
8 mars 2008 à 16:05
Mais bon, le document word que j'envoie fait toujours 0 Octet.
++
8 mars 2008 à 12:04
Tout d'abord, merci à toi SHEOROGATH pour ce script.
Je voudrais juste revenir sur le commentaire de JGRIM où il explique comment rajouter une pièce jointe dans le mail.
Serait-il possible d'avoir un soupçon plus d'explications car je vois pas que sont les _NextPart_000_0000_01C83B43.03187040, de plus lorsque j'envoie une pièce jointe celle-ci fait O octet :/.
Dans la pièce jointe en question, j'ai testé une image avec l'objet Image puis ensuite un File, je pense que c'est une autre manière de faire mais je vois pas.
Merci d'avance pour vos réponses.
30 déc. 2007 à 00:04
29 déc. 2007 à 23:57
29 déc. 2007 à 23:49
502 5.5.1 Unrecognized command e20sm10486922fga.1
QUIT
502 5.5.1 Unrecognized command e20sm10486922fga.1
il reconnais pas les commandes c'est tout ... je connais pas les specifications smtp pour gmail
28 déc. 2007 à 21:15
220 mx.google.com ESMTP e20sm10486922fga.1
HELO localHost
250 mx.google.com at your service
MAIL FROM: <*******@gmail.com>
530 5.7.0 Must issue a STARTTLS command first e20sm10486922fga.1
RCPT TO: <******@hotmail.com>
530 5.7.0 Must issue a STARTTLS command first e20sm10486922fga.1
DATA
530 5.7.0 Must issue a STARTTLS command first e20sm10486922fga.1
Subject: salut
Date: Fri Dec 28 09:03:19 GMT-12:00 2007
Reply-To:****@gmail.com
To: ******@hotmail.com
Content-Type: text/plain; charset="us-ascii"
salu ça marche
.
502 5.5.1 Unrecognized command e20sm10486922fga.1
QUIT
502 5.5.1 Unrecognized command e20sm10486922fga.1
alors j'ai reçu comme message, kece ke je fais stp ?
28 déc. 2007 à 20:05
java.net.UnknownHostException: hotmail.smtp
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.(Unknown Source)
at java.net.Socket.(Unknown Source)
at mail.main(mail.java:7)
merci de me repondre stp.
28 déc. 2007 à 19:19
http://www.commentcamarche.net/java/javaexc.php3
autrement dis : try{
Socket sock= new Socket("smtp.hotmail", 25);
Envoie.sendMail(sock, "localHost", "mail1", "mail2", "salut", "salut ça marche");
}catch(Exception e){
e.printStackTrace();
}
28 déc. 2007 à 15:18
j'ai ajouté la classe de rception avec ce code
import java.net.Socket;
public class mail {
public static void main (String[] args){
Socket sock= new Socket("smtp.hotmail", 25);
Envoie.sendMail(sock, "localHost", "mail1", "mail2", "salut", "salut ça marche");
}
mais je vois ke j'ai cette erreur :Unhandled exception type IOException
aidez moi svp, je sais je crois ke le probleme est dans le serveur aidez plzzzzzzz
}
21 déc. 2007 à 15:05
Pour ce qui de l'envoi de pièces jointes, il faut jouer sur les MIME
Pour cela j'ai du enlever le send("Content-Type: text/plain; charset="us-ascii"\r\n"); de ma Classe MailTo pour l'inclure directement dans le message. Ensuite on utilise un Content/type Multipart/mixed.
Exemple :
Socket soc = new Socket(server_messagerie, 25);
String localHost = localHostname();
String _from = "compte@DPI-pmu.fr";
String _to = "autre_compte@mail.fr";
String _subject = "Mise a jour alpha de " + nom_fichier_modifie;
// ATTENTION ==> la constittion du message ne fonctionne qu'a la condition d'avoir mis
// les \r\n et \n au bonne endroit dans les TAG.
String message = "Content-Type: multipart/mixed;" +
"boundary="----=_NextPart_000_0000_01C83B43.03187040"\r\n" +
"------=_NextPart_000_0000_01C83B43.03187040\n" +
"Content-Type: text/plain;\n" +
"charset="iso-8859-1" \n" +
" Content-Transfer-Encoding: quoted-printable \r\n" +
" \r\n" +
"Original : " + nom_fichier_original_cour + "\r\n" +
"Modifié : " + nom_fichier_modifie_cour + "\r\n" +
" \n" +
"------=_NextPart_000_0000_01C83B43.03187040\n" +
"Content-Type: text/plain;\n" +
" name=" + nom_fichier_original_cour + "\n" +
"Content-Transfer-Encoding: quoted-printable " +
"Content-Disposition: attachment;\n" +
" filename=" + nom_fichier_original_cour + "\r\n" +
contenu_nom_fichier_original + "\r\n" +
" \r\n" +
" \n" +
"------=_NextPart_000_0000_01C83B43.03187040\n" +
"Content-Type: text/plain;\n" +
" name=" + nom_fichier_modifie_cour + "\n" +
"Content-Transfer-Encoding: quoted-printable " +
"Content-Disposition: attachment;\n" +
" filename=" + nom_fichier_modifie_cour + "\r\n" +
contenu_nom_fichier_modifie + "\r\n" +
" \r\n" +
" \n" +
"------=_NextPart_000_0000_01C83B43.03187040 \n";
MailTo.sendMail(soc, localHost, user_base64, mdp_base64, _to, _from, _subject, message);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Bon c'est juste un exemple et le contenu de ma pièce jointe et dans le String contenu_nom_fichier_original et la deuxième pièce jointe et dans contenu_nom_fichier_modifie.
J'ai aussi fais le test pour une image et ça fonctionne en editant l'image comme un texte et en l'ajoutant au message.
Bon Fête à tout le monde en espérant que j'en ai aidé certain par ce message.
30 nov. 2007 à 16:56
30 nov. 2007 à 16:27
j'ai regarde pour une implementation j'ai pas le temps actuellement
sinon quant a l'implementation je pense pas quelle soit tres complique
30 nov. 2007 à 12:26
super code pour se simplifier la vie!
Est-il possible d'envoyer une pièce jointe en modifiant un peu? Je suppose que oui, mais je ne connais pas le format...
Merci!
22 oct. 2007 à 17:02
22 oct. 2007 à 13:28
merci pour la precision et je suis content que ca ai pu etre utile
22 oct. 2007 à 11:42
Ben je craiganis que multiplication des send RCPT TO et des TO ne fasse planté le bignou. En fait, ça passe tres bien.
Là il accepte toutes les adresses.
Par contre j'avais fait une erreur : J'avais doublé le tokenizer et le while, un pour le RCPT TO, un pour le TO. Dans ce cas le mail part bien comme il faut, mais aucune adresse n'apparait dans destinataire dans le mail reçu.
=> Il faut faire le StringTokenizer et le while que sur le RCPT TO et laissé la chaine d'adresses normale pour le TO.
Là tout se passe tres bien, chaque adresse est prise en compte, et on a bien toutes les adresses qui apparaissent en destinataires, bref un vrai mail quoi ;o).
Merci bcp.
21 oct. 2007 à 04:01
Tu utilises un StringTokenizer
java.util.StringTokenizer st=new java.util.StringTokenizer(f.getTo().trim(),";");
while(st.hasMoreTokens()){}
"f" est le formulaire qui recupère le string de To
19 oct. 2007 à 18:49
ou alors peut etre qu'il y a une commande smtp qui redirige le mail vers plusieur destinataires ...
19 oct. 2007 à 13:28
Ce script correspond pil poil à mon besoin. ;o)
Il marche très bien avec une seule adresse mail pour le destinataire, mais ne reconnait pas un String contenant plusieurs adresses séparées par des ";".
Y a-t-il une ruse ?
Merci
3 oct. 2007 à 14:48
3 oct. 2007 à 14:28
3 oct. 2007 à 07:29
il faut que sur 10.3.0.3 tu ai un serveur smtp qui tourne
test.sendMail(sock,localhost,f.getDestinataire(),f.getFrom(),f.getSubject(),f.getMessage());
if (test.sendMail(sock,localhost,f.getDestinataire(),f.getFrom(),f.getSubject(),f.getMessage())==true)
=>
boolean b = test.sendMail(sock,localhost,f.getDestinataire(),f.getFrom(),f.getSubject(),f.getMessage());
if (b)
2 oct. 2007 à 12:09
Bon voici le code :
public class TestMail {
public TestMail() {
}
public static boolean sendMail(Socket sock, String localHost,
String Destinataire, String from, String subject, String message)
throws IOException {
//connection a la socket passe par param
out = new PrintWriter(sock.getOutputStream());
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
//on recoi la ligne qui nous dit que l'on est connecté
receive();
//on envoi la premiere ligne qui indique de qui elle provien
send("HELO " + localHost);
//on nous dit qu'elle a bien etait recu
receive();
//on envoi l'adresse de l'expediteur
send("MAIL FROM: <" + from + ">");
//on nous dit que ca c'est bien passe
receive();
//on envoi l'adresse du destinataire
send("RCPT TO: <" + Destinataire + ">");
//on recupere la reponse
receive();
//on passe au chose serieuse pour commencer l'envoi du corps
send("DATA");
//on verifie que le serveur soit pret
receive();
//on envoi plusieur balise utile
send("Subject: " + subject);
send("Date: " + new Date());
send("Reply-To:" + from);
send("To: " + Destinataire);
//on envoi cahque ligne separement en utilisant \n comme delimitateur
StringTokenizer tokenizer = new StringTokenizer(message, "\n");
//la ligne ci dessous se traduit par : tant qu'il y a encore des ligne
while (tokenizer.hasMoreTokens())
send(tokenizer.nextToken());
//pour finir l'envoi d'un mail il faut envoi sur une ligne un seul point
send(".");
//on verifie que le mail a etait accepte
receive();
//on quitte
send("QUIT");
//on nous dit que ca a bien quitter
receive();
//on ferme les flux
in.close();
out.close();
sock.close();
return true;
}
//methode qui recoit les information du servveur
private static void receive() throws IOException {
String line = in.readLine();
if (line != null) {
System.out.println(line);
System.out.println("\n");
}
}
//methode qui envoi des infos au serveur
private static void send(String s) {
System.out.print(s);
System.out.print("\r\n");
System.out.flush();
out.print(s);
out.print("\r\n");
out.flush();
}
private static BufferedReader in;
private static PrintWriter out;
}
Ensuite L'action :
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
TestMailForm f=(TestMailForm)form ;
String result=new String("go");
TestMail test=new TestMail();
Socket sock = new Socket("10.3.0.3",25);
String localhost=new String("localhost");
test.sendMail(sock,localhost,f.getDestinataire(),f.getFrom(),f.getSubject(),f.getMessage());
if (test.sendMail(sock,localhost,f.getDestinataire(),f.getFrom(),f.getSubject(),f.getMessage())==true)
request.setAttribute("resultat","succes");
else
request.setAttribute("resultat","echec");
return mapping.findForward(result);
}
}
Puis dans la page Jsp je recupère From , destinataire ,subject et message
27 juil. 2007 à 19:54
out = new PrintWriter(sock.getOutputStream());
En :
out = new PrintWriter ( new OutputStreamWriter (sock.getOutputStream(), "UTF8" ) );
26 juil. 2007 à 11:10
En fait je voudrais savoir la bonne syntaxe pour modifier l'encodage des caractères dans le mail j'ai vu plus haut :
send("Content-Type: text/plain; charset="us-ascii"\r\n");
Je l'ai modifier pour mes besoin en :
"send("Content-Type: text/html; charset=UTF-8");"
car je voudrait encoder mes caractères en utf-8 est ce que c'est bien comme ça que je dois le noter car cela ne change pas.
Merci
2 juil. 2007 à 23:55
2 juil. 2007 à 23:50
Je cherchais justement un code pour ne pas utiliser javamail.
C'est tout bête, mais ça fonctionne au poil.
Merci encore !
27 juin 2007 à 18:45
smtp.topnet.tn c'est protocole de communication vers ton serveur qui est chargé d'envoyer ton e-mail; Si tu possèdes un nom de domaine, renseigne toi auprès de ton hebergeur, sinon utilise le SMTP de ton FAI, si celui-ci autorise les envois anonymes de mails!
25 juin 2007 à 20:23
je suis débutante en Java ,je developpe une application J2EE j'utilise Struts ,mon probléme c'est que je veux envoiyer un mail à partir de mon application ,et dans le code fourni ya beaucoups de trucs qu j'ai pas bien saisi
comme par exemple:Socket sock = new Socket("smtp.topnet.tn",25);le nom "smtp.topnet.tn",comment il a etait détérminé???j'ai téléchatgé un serveur SMTP mais pour le nom je coince
MERCI A VOUSSS
24 mai 2007 à 16:59
c'est important car ta démarche pourrait aider quelqu'un!
24 mai 2007 à 15:45
24 mai 2007 à 10:41
22 mai 2007 à 20:33
22 mai 2007 à 18:16
Socket sock = new
Socket("serveur smtp",25);
MailIo.sendMail(sock,Host,from,mail,subject,message);
22 mai 2007 à 17:43
22 mai 2007 à 12:37
public ActionForward envoyer(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws UnknownHostException, IOException {
EnvoieMailForm envoieMailForm = (EnvoieMailForm) form;// TODO Auto-generated method stub
Email email=new Email();
Socket sock = new Socket("smtp.topnet.tn",25);
email.sendMail(sock,"localhost", "sana_ensi@yahoo.fr","sana_barboura@yahoo.fr","validationde commande","commande validé");
return (mapping.findForward("mailenvoie"));
}
22 mai 2007 à 12:36
java.net.ConnectException: Connection timed out: connect
java.net.PlainSocketImpl.socketConnect(Native Method)
java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
java.net.Socket.connect(Socket.java:516)
java.net.Socket.connect(Socket.java:466)
java.net.Socket.(Socket.java:366)
java.net.Socket.(Socket.java:179)
com.positif.struts.mail.EnvoieMailAction.envoyer(EnvoieMailAction.java:46)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
merci de m'aider
18 mai 2007 à 11:49
18 mai 2007 à 11:44
18 mai 2007 à 11:35
18 mai 2007 à 11:22
merci
18 mai 2007 à 11:19
18 mai 2007 à 11:14
merci pour l'aide
14 mai 2007 à 18:34
14 mai 2007 à 12:13
merci d'avance de m'aider au plus tôt possible
8 avril 2007 à 19:35
22 mars 2007 à 19:49
les variables s'initialisent dés le debut apres la declaration de la methode:
string message="hello etc...";
ex:
# public class MailIo {
# public static string message="ton text";
etc..
# public MailIo() {
#
# }
surtout veille bien à respecter l'ecriture...si tu comprends toujous pas n'hesite ps à demander!
amateur
22 mars 2007 à 11:44
Je comprend pas très bien ou est-ce que tu met
String message = "";
...
Socket soc = new Socket("nom du serveur smtp",25);
MailIo.sendMail(....);
??
19 déc. 2005 à 18:10
...
Socket soc = new Socket("nom du serveur smtp",25);
MailIo.sendMail(....);
tout simplement
si ta d'autre probleme n'hesite pas ;)
19 déc. 2005 à 15:53
car je n'arrive pas a atuliser ta source
27 nov. 2005 à 10:59
27 nov. 2005 à 10:29
27 nov. 2005 à 09:40
send("Content-Type: text/plain; charset="us-ascii"\r\n");
avant
StringTokenizer tokenizer = new StringTokenizer(message, "\n");
Sinon des logiciels comme Outlook bloquent l'affichage du message...
Bonne journée
26 nov. 2005 à 23:27
Moi je modifierais ceci
"public static boolean sendMail(Socket sock, String localHost,String Destinataire, String from, String subject, String message)"
par ceci"public static boolean sendMail(Socket sock, String localHost, String from, String nomFrom, String Destinataire, String subject, String message) "
et ajouterais ceci "send("From:""+nomFrom+""<" + from+">");"
juste après "send("To: " + Destinataire); "
voilà j'espère que c'est plus lisible...
Enfaite le reply-to n'est pas la meme chose que le from car le from s'affiches dans l'entête du message (testé sous MS Outlook 2003)...
Je ne comprends pas " le corps du message s'affiche dans la console a l'envoi" merci de m'expliquer
26 nov. 2005 à 23:17
apres c vrai que c pas tres ordonne au niveau des constructeur !! sinon pour le from c un peu comme le reply to !!
sinon dsl pour les fautes
Ps : tu pourrai essayez d'aerer ton prochain post car je ne suis pas sur de tout avoir saisie !!!
26 nov. 2005 à 23:11
String Destinataire, String from, String subject, String message)" par ceci"public static boolean sendMail(Socket sock, String localHost,
String from, String nomFrom, String Destinataire, String subject, String message) " et ajouterais ceci "send("From:""+nomFrom+""<" + from+">");" juste après "send("To: " + Destinataire); "...
Bonne soirée
31 oct. 2005 à 14:42
merci pour le com
++
31 oct. 2005 à 14:39
Tu devrais englober tes flux dans des blocs try finally. Au cas ou une exception se leverait pendant l'execution de ton code ça fermerait quand même les flux...