begin process at 2012 02 10 19:44:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Reseaux et Internet

 > SMTP ET MAILS

SMTP ET MAILS


 Information sur la source

Note :
9,75 / 10 - par 4 personnes
9,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Reseaux et Internet Classé sous :mail, smtp, protocole, serveur Niveau :Initié Date de création :20/05/2002 Date de mise à jour :20/05/2002 01:22:43 Vu :17 187

Auteur : Gaelle

Ecrire un message privé
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

 Description

Ce prog gère l'envoi de mail à travers le protocole SMTP. Il fonctionne mais il faut disposer d'un serveur SMTP...

Source

  • /**************************************************************
  • * Applet pour l'envoi de mail à un destinataire unique
  • * s'intègre dans une page html
  • *
  • * Nom programme: CommunicationMail
  • * Version: 1.0
  • * Auteur: Gaëlle P.
  • * E-mail: me_gaelle@yahoo.fr
  • * Date: 13/05/2002
  • *
  • */
  • import java.awt.*;
  • import java.applet.*;
  • import java.net.*;
  • import java.util.*;
  • import java.net.URL;
  • import java.awt.event.*;
  • import java.io.*;
  • import java.lang.*;
  • import java.security.*;
  • public class CommunicationMail extends Applet
  • {
  • Button boutonEnvoyer;
  • Button boutonAnnuler;
  • TextArea zoneMessage;
  • TextField zoneSujet;
  • TextField zoneExpediteur;
  • Panel panneau1, panneau2, panneau3, panneau4;
  • URL url;
  • String expediteur;
  • String sujet;
  • String message;
  • String serveurMail = "smtp.serveur.fr"; //Le serveur SMTP sur lequel on a des autorisations
  • String date;
  • Socket socket;
  • int port = 25; //Port standard pour SMTP
  • PrintWriter fluxSortie;
  • public void init()
  • {
  • //Definition des panneaux
  • panneau1 = new Panel();
  • panneau2 = new Panel();
  • panneau3 = new Panel();
  • panneau4 = new Panel();
  • //Definition des zones Sujet et expéditeur (TextField)
  • zoneExpediteur = new TextField(25);
  • zoneSujet = new TextField(25);
  • //Definition de la zone message (TextArea)
  • zoneMessage = new TextArea();
  • //Definition des boutons
  • boutonEnvoyer = new Button("Envoyer");
  • boutonAnnuler = new Button("Annuler");
  • //Définition des actions des boutons
  • boutonEnvoyer.addActionListener(
  • new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • Envoyer();
  • }
  • });
  • boutonAnnuler.addActionListener(
  • new ActionListener()
  • {
  • public void actionPerformed(ActionEvent e)
  • {
  • Annuler();
  • }
  • });
  • //Ajout de la zoneExpediteur au panneau1
  • panneau1.add(zoneExpediteur);
  • add("South", panneau1);
  • //Ajout de la zoneSujet au panneau2
  • panneau2.add(zoneSujet);
  • add("South", panneau2);
  • //Ajout de la zoneMessage au panneau3
  • panneau3.add(zoneMessage);
  • add("South", panneau3);
  • //Ajout des boutons au panneau4
  • panneau4.add(boutonEnvoyer);
  • panneau4.add(boutonAnnuler);
  • add("South", panneau4);
  • }
  • void Envoyer()
  • {
  • PrintWriter to;
  • BufferedReader from;
  • expediteur = zoneExpediteur.getText();
  • sujet = zoneSujet.getText();
  • message = zoneMessage.getText();
  • try
  • {
  • //Ouverture d'une connexion sur le port 25 du serveur
  • socket = new Socket(serveurMail, port);
  • //Récupération du flux de sortie vers le serveur
  • fluxSortie = new PrintWriter(new
  • OutputStreamWriter(socket.getOutputStream()),true);
  • //Envoi de la requête précisant le compte d'envoi
  • fluxSortie.println("USER "+"moncompte"+"\r");
  • //Envoi de la requête précisant le mot de passe du compte
  • fluxSortie.println("PASS "+"motdepasse"+"\r");
  • //Envoi de la requête précisant l'expéditeur
  • fluxSortie.println("mail from: "+expediteur);
  • //Envoi de la requête précisant le destinataire
  • fluxSortie.println("rcpt to: destinataire@serveur.com");
  • //Envoi de la requête précisant l'envoi du message
  • fluxSortie.println("data");
  • //Envoi du message
  • date = (new Date()).toString();
  • fluxSortie.println(date + sujet +"\n"+ message);
  • //Terminaison du message
  • fluxSortie.println(".");
  • //Envoi de la requête de terminaison de session SMTP
  • fluxSortie.println("QUIT");
  • }
  • catch(NullPointerException e){}
  • catch(AccessControlException e)
  • {
  • Annuler();
  • zoneMessage.append("***** ERREUR **** ERREUR ****\n");
  • zoneMessage.append("Connexion impossible: accès refusé !");
  • System.exit(1);
  • }
  • catch(UnknownHostException e)
  • {
  • Annuler();
  • zoneMessage.append("***** ERREUR **** ERREUR ****\n");
  • zoneMessage.append("Hôte inconnu: connexion impossible !");
  • System.exit(1);
  • }
  • catch(IOException e)
  • {
  • Annuler();
  • zoneMessage.append("***** ERREUR **** ERREUR ****\n");
  • zoneMessage.append("Pas d'E/S pour la connexion avec l'hôte !");
  • System.exit(1);
  • }
  • catch(Exception e){}
  • finally
  • {
  • try
  • {
  • fluxSortie.close();
  • socket.close();
  • }
  • catch(IOException e){}
  • catch(NullPointerException e){}
  • }
  • }
  • public void Annuler()
  • {
  • zoneMessage.setText("");
  • zoneExpediteur.setText("");
  • zoneSujet.setText("");
  • }
  • public void paint(Graphics g)
  • {
  • g.drawString("Expéditeur", 35, 30);
  • g.drawString("Sujet", 35, 60);
  • panneau1.setLocation(105, 10);
  • panneau2.setLocation(105,40);
  • panneau3.setLocation(25, 80);
  • panneau4.setLocation(30, 255);
  • }
  • }
/**************************************************************
 * Applet pour l'envoi de mail à un destinataire unique
 * s'intègre dans une page html
 * 
 * Nom programme:	CommunicationMail	
 * Version: 		1.0
 * Auteur:  		Gaëlle P.
 * E-mail:          me_gaelle@yahoo.fr
 * Date:			13/05/2002
 *
 */

import java.awt.*;
import java.applet.*;
import java.net.*;
import java.util.*;
import java.net.URL;
import java.awt.event.*;
import java.io.*;
import java.lang.*;
import java.security.*;


public class CommunicationMail extends Applet
{
	Button 		boutonEnvoyer;
	Button		boutonAnnuler;
	TextArea 	zoneMessage;
	TextField  	zoneSujet;
	TextField	zoneExpediteur;
	Panel		panneau1, panneau2, panneau3, panneau4;
	URL			url;
	String		expediteur;
	String		sujet;
	String		message;
	String 		serveurMail = "smtp.serveur.fr"; //Le serveur SMTP sur lequel on a des autorisations
	String		date;
	Socket		socket;
	int			port = 25; //Port standard pour SMTP
	PrintWriter	fluxSortie;
	
	
	public void init()
	{
				
		//Definition des panneaux
		panneau1 = new Panel();
		panneau2 = new Panel(); 
		panneau3 = new Panel();
		panneau4 = new Panel(); 


		//Definition des zones Sujet et expéditeur (TextField)
		zoneExpediteur 	= new TextField(25);
		zoneSujet		= new TextField(25);
		
		//Definition de la zone message (TextArea)
		zoneMessage		= new TextArea();
		
		//Definition des boutons
		boutonEnvoyer 	= new Button("Envoyer");
		boutonAnnuler	= new Button("Annuler");
		
		//Définition des actions des boutons
		boutonEnvoyer.addActionListener(
			new ActionListener()
			{
				public void actionPerformed(ActionEvent e)
				{
					Envoyer();
				}  
			});
			
		boutonAnnuler.addActionListener(
			new ActionListener()
			{
				public void actionPerformed(ActionEvent e)
				{
					Annuler();
				}  
			});

		//Ajout de la zoneExpediteur au panneau1
		panneau1.add(zoneExpediteur);
		add("South", panneau1);
		
		//Ajout de la zoneSujet au panneau2
		panneau2.add(zoneSujet);
		add("South", panneau2);		
		
		//Ajout de la zoneMessage au panneau3
		panneau3.add(zoneMessage);
		add("South", panneau3);
		
		//Ajout des boutons au panneau4
		panneau4.add(boutonEnvoyer);
		panneau4.add(boutonAnnuler);
		add("South", panneau4);
		
		
	}
	

	void Envoyer()
	{
		PrintWriter to;
        BufferedReader from;
      
		expediteur 	= zoneExpediteur.getText();
		sujet		= zoneSujet.getText();
		message		= zoneMessage.getText();
		
		try
		{
		
			//Ouverture d'une connexion sur le port 25 du serveur
			socket = new Socket(serveurMail, port);
				
			//Récupération du flux de sortie vers le serveur
			fluxSortie = new PrintWriter(new 
			OutputStreamWriter(socket.getOutputStream()),true);
			
			//Envoi de la requête précisant le compte d'envoi
			fluxSortie.println("USER "+"moncompte"+"\r");
			
			//Envoi de la requête précisant le mot de passe du compte
			fluxSortie.println("PASS "+"motdepasse"+"\r");
					
			//Envoi de la requête précisant l'expéditeur
			fluxSortie.println("mail from: "+expediteur);
			
			//Envoi de la requête précisant le destinataire
			fluxSortie.println("rcpt to: destinataire@serveur.com");
			
			//Envoi de la requête précisant l'envoi du message
			fluxSortie.println("data");
			
			//Envoi du message
			date = (new Date()).toString();
			fluxSortie.println(date + sujet +"\n"+ message);
			
			//Terminaison du message
			fluxSortie.println(".");
			
			//Envoi de la requête de terminaison de session SMTP
			fluxSortie.println("QUIT");
		}
		catch(NullPointerException e){}
		catch(AccessControlException e)
		{
			Annuler();
			zoneMessage.append("***** ERREUR **** ERREUR ****\n");
			zoneMessage.append("Connexion impossible: accès refusé !");
			System.exit(1);	
		}
		catch(UnknownHostException e)
		{	
			Annuler();
			zoneMessage.append("***** ERREUR **** ERREUR ****\n");
			zoneMessage.append("Hôte inconnu: connexion impossible !");
			System.exit(1);
		}
		catch(IOException e)
		{
			Annuler();
			zoneMessage.append("***** ERREUR **** ERREUR ****\n");
			zoneMessage.append("Pas d'E/S pour la connexion avec l'hôte !");
			System.exit(1);
		}
		catch(Exception e){}
		finally
		{
			try
			{
				fluxSortie.close();
				socket.close();
			}
			catch(IOException e){}
			catch(NullPointerException e){}
		}
				
	}
	
	public void Annuler()
	{
		zoneMessage.setText("");
		zoneExpediteur.setText("");
		zoneSujet.setText("");
	}


	public void paint(Graphics g)
	{
		g.drawString("Expéditeur", 35, 30);
		g.drawString("Sujet", 35, 60);
		panneau1.setLocation(105, 10);
		panneau2.setLocation(105,40);
		panneau3.setLocation(25, 80);
		panneau4.setLocation(30, 255);
		
	}

}
 

 Conclusion

Normalement le mot de passe n'est pas absolument nécessaire si vous êtes connectés sur le réseau du serveur !


 Sources du même auteur

CRYPTAGE AVEC MD5 ET COMPARAISON
APPLET DÉCOMPTE DU TEMPS

 Sources de la même categorie

Source avec Zip Source avec une capture SERVEUR D'OBJET ET EXEMPLE D UTILISATION : SERVER CHAT ET SO... par GodConan
Source avec Zip Source avec une capture RÉCUPÉRER CHEMIN DOSSIER DEPUIS POSTE DISTANT VIA SOCKET. par Dariumis
Source avec Zip Source avec une capture LOCALISATEUR D'HOTE (IL SUFFIT D'ENTRE L'ADRESSE ET LE PROG ... par amateur_java
Source avec Zip COMPTEUR DE TEMPS DE CONNEXION A L'INTERNET EN RESEAU. par Tiger076
Source avec Zip SERVEUR GENERIQUE par pacifikateur

 Sources en rapport avec celle ci

Source avec Zip CLIENT ET SERVEUR DE MESSAGERIES par lemout
Source avec Zip Source avec une capture SERVEUR D'OBJET ET EXEMPLE D UTILISATION : SERVER CHAT ET SO... par GodConan
Source avec Zip Source avec une capture C.E.T.E.C MANAGER par jantelboy
Source avec Zip LOGICIEL MESSAGERIE par layeure
ENVOYER UN MAIL SANS UTILISER JAVAMAIL par sheorogath

Commentaires et avis

Commentaire de freeezer le 06/09/2002 00:17:21

C'est joli ce programme Gaelle :o)

Bravo!

Commentaire de TontonLuc le 29/10/2002 12:18:19

Qu'entends-tu par "Le serveur SMTP sur lequel on a des autorisations" ???

Commentaire de Gaelle le 30/10/2002 23:50:12

Par ex: si tu as ton propre serveur SMTP pas de prob. Sur un LAN l'administrateur devra avoir autorisé l'utilisation du serveur. De même sur un prestataire : yahoo par ex. n'autorise pas l'utilisation de son serveur SMTP : il s'agit d'une prestation payante et donc il bloque l'accès. Bref pour l'envoi de mail rien de mieux que de se configurer son propre serveur SMTP. Un serveur est fourni par défaut ds XP Pro mais il faut l'installer car il n'e s'installe pas par défaut. Après c'est une histoire de configuration. Voilà j'espère t'avoir répondu. Bonne prog, Gaëlle.

Commentaire de aKheNathOn le 27/11/2002 09:08:43

sublime ragatza .

Parcontre y'à juste une chose qui me chifonne ... c'est que tu ne gére pas les réponses server ?

J'aimerais bien aprendre tout ça ... alors ça le ferais des cours particulier ;) ...

Commentaire de CyberP le 15/01/2003 14:46:01

Il manque la zone pour le destinataire

Commentaire de argzoygt le 27/03/2003 17:49:59

Je sens que je vais passer pour le casse burne de service mais, pour être complet ne faudrait il pas ajouter l'envoi de pièce jointes?

Commentaire de jeremyM le 08/06/2003 01:10:12

euh pour les pièces jointes argzoygt c plus du SMTP c'est du MIME...

Commentaire de argzoygt le 08/06/2003 01:36:18

Peut importe ce que c'est, moi quand j'envoie un message, ce que je vois, c'est que celui ci peut CONTENIR une pièce jointe. Ce qui m'intéresse c'est précisément la pièce jointe. Je sais que grace au TYPE MIME je peux dire que cette pièce jointe est une IMAGE, un fichier XML, ... Je voudrai savoir comment inclure une pièce jointe dans un message pour pouvoir l'envoyer ensuite sur un serveur SMTP.

Commentaire de Bruto le 12/09/2003 16:38:14

Prob : l'envoi ne marche qu'une seule fois
Peux-tu éclairer ce problème ?

Merci

Commentaire de rafikconstantine le 29/12/2007 03:53:04

Stp je veux plus de détaille sur configuration de mon propre serveur, j'ai XP pack 2

Commentaire de rafikconstantine le 29/12/2007 16:55:22

salut, j'ai configuré mon serveur smtp avec gmail, mais ça marche pas .
SVp aidez moi, lorsque je clik sur envoyer, comme C rien a passé comme traitement ??

Commentaire de bellotcha le 18/01/2011 11:13:22

JE VEUT SAVOIR COMMENT C'EST POSSIBLE D'ENVOYER UN MAIL AVEC PIECE JOINTE MERCI D'AVANCE

Commentaire de toona88 le 16/04/2011 15:58:07

bonjour
je suis débutante en java je travail sur un projet de conception d'une application qui necessite d'envoyer et de recevoir  des mails(Gmail) a partir de l'application.
   je sollicite votre aide.

   merci d'avance

Commentaire de Gaelle le 19/04/2011 11:45:42

Bonjour,

Ce petit code source avait pour but de présenter le protocole SMTP, ça démontre son utilisation de la façon la plus basique qui soit. On arrive au même résultat directement en ligne de commande.

En java des API puissantes existent, la très fameuse JavaMail de Oracle(Sun) notamment.
Je ne saurais que vous conseiller de regarder la JavaDoc et les forum de cette API, facilement prenable en main pour gérer un client d'envoi de mail.

http://www.oracle.com/technetwork/java/javamail/index.html

Bonne journée,

Gaëlle

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

serveur smtp [ par salim81 ] bonjour a tous; dans une application d'envoi des mail j'ai une methode ou je declare le serveur smtp.l'application ça marche bien lors de l'execution Un client mail java et le protocole SMTP. [ par ptiniko ] Bonjour. J'aurai une petite question à propos du protocole SMTP et de java. J'ai lu un tuto et j'ai notament vu que SMTP ca ressemble à ca:[lecture][e SMTP [ par miss2010 ] Bonsoir, J'aime savoir comment je peux obtenir l'adresse du serveur SMTP. Et dans cette partie de code: Properties props = System.getProperties(); pr Java et les serveurs smtp [ par aminisana ] Salut tout le monde, J'ai plusieurs questions dans ce sujet concernant les principes d'envoi des mails en passant par un serveur SMTP ou faire direct Envoi de mail via java et javaMail [ par Vlatiss ] Bonjour,Tout d'abord notons que je suis novice en Java.J'ai réussi à trouver du code et à l'adapter à mon besoin pour l'envoi de mail via smtp.Le prob envoyer un email avec le serveur smtp.gmail.com et java [ par katty2009 ] voila j'ai utilisé le serveur de gmail pour envoyer des emails et biensur javamail, tout fonctionne bien , j arrive à anvoyer normalement à email mais serveur mail en reseau local [ par fillius ] bonjour tout le monde je cherche des informations sur les serveurs mail open source et ou sous license gpl afin de faire une application de messageri Javamail ; probleme d'envoi [ par ahmedbilal ] j'ai rencontré des prob ce qui concerne l'envoi de mail voile code et l'ereur ; public class SendMailUsingAuthentication { private static final S envoi email [ par medissamjava ] slt tout le monde. je veux crées une application qui permet d'envoyer un email mais j'ai reçu le message d'erreur suivant: [code=java] Exception in t envoi email [ par medissamjava ] slt tout le monde. je veux crées une application qui permet d'envoyer un email mais j'ai reçu le message d'erreur suivant: [code=java] Exception in t


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales