Smtp et mails

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

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.