Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SMTP ET MAILS


Information sur la source

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 : 14 157

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (11)
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 !
 

Commentaires et avis

signaler à un administrateur
Commentaire de freeezer le 06/09/2002 00:17:21

C'est joli ce programme Gaelle :o)

Bravo!

signaler à un administrateur
Commentaire de TontonLuc le 29/10/2002 12:18:19

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

signaler à un administrateur
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.

signaler à un administrateur
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 ;) ...

signaler à un administrateur
Commentaire de CyberP le 15/01/2003 14:46:01

Il manque la zone pour le destinataire

signaler à un administrateur
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?

signaler à un administrateur
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...

signaler à un administrateur
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.

signaler à un administrateur
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

signaler à un administrateur
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

signaler à un administrateur
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 ??

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 connection a un server mail via TLS [ par salim81 ] Bonjour a tous; il y a une semaine que je boucle sur un probleme de connection a un server mail en mode TLS et SSL mais sans resultas.j'arrive pas a Envoi mail avec java [ par mariembhk ] slt tout le monde,je suis entrain d'implémenter une application en java dont l'une des taches est l'envoi de mail.j'ai trouvé beaucoup de codes sur in java mail [ par josefblgh ] salut pour tous mon problem c'est que j'essai d'envoyer un e-mail avec java mail mais j'arive pas svp qlq1 peu m'aider?mon code est le suivants:import serveur smtp [ par houcinegh1 ] salut mes amies svp je veux un exemple d'un serveur SMTP.il y a des application demende cet information pour envoyer un email. et comment desposer de Probleme envoi mail javaxmail [ par ermenault ] Je souhaiterais envoyer un message mail, mais je ne comprends pas, j'ai tt le temps la même erreur.javax.mail.MessagingException: Could not connect to erreur serveur smtp [ par salim81 ] bonjour; je m'excuse de reposer mon probleme.c'est juste pour bien l'expliquer . j'ai une fonction java qui me permet d'envoyer un mail.cette fonction connection en mode TLS [ par salim81 ] Bonjour; j'ai un code qui me permet de se connecter au server mail via SSL.mais server mail suporte juste le mode TSL.pourrier vous m'aider pour chang SMTP problème d'envoi de Mail [ par salim81 ] Bonjour; Je vous explique mon problème. En effet je suis capable d'envoyer des mails avec des adresses de meme domaine Mais si j'envoi un mail à mon a


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.