Smtp et mails

Soyez le premier à donner votre avis sur cette source.

Snippet vu 19 939 fois - Téléchargée 28 fois

Contenu du snippet

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

Source / Exemple :


/**************************************************************

  • 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 !

A voir également

Ajouter un commentaire Commentaires
Messages postés
41
Date d'inscription
lundi 1 avril 2002
Statut
Membre
Dernière intervention
7 mars 2004

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
Messages postés
2
Date d'inscription
samedi 16 avril 2011
Statut
Membre
Dernière intervention
16 avril 2011

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
Messages postés
1
Date d'inscription
dimanche 22 février 2009
Statut
Membre
Dernière intervention
18 janvier 2011

JE VEUT SAVOIR COMMENT C'EST POSSIBLE D'ENVOYER UN MAIL AVEC PIECE JOINTE MERCI D'AVANCE
Messages postés
6
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
29 décembre 2007

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 ??
Messages postés
6
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
29 décembre 2007

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.