Envoyer un mail sans utiliser javamail

Soyez le premier à donner votre avis sur cette source.

Snippet vu 44 175 fois - Téléchargée 31 fois

Contenu du snippet

ce code envoi un mail sans utiliser javamail , ce qui est quand meme plus leger et simple je trouve
je n'en dirai pas tant pour la reception lol
on la lance comme ceci :
Socket sock = new
Socket("serveur smtp",25);
MailIo.sendMail(sock,Host,from,mail,subject,message);
bon voici la source :

Source / Exemple :


import java.io.*;
import java.net.Socket;
import java.util.Date;
import java.util.StringTokenizer;

public class MailIo {

	public MailIo() {

	}

	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;
}

A voir également

Ajouter un commentaire

Commentaires

begueradj
Messages postés
291
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
25 août 2014
1 -
sans javamail ? est-ce que javamail est une méchante API ?
luque19
Messages postés
11
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
16 juin 2010
-
bonsoir

svp est ce qu'on aura pas besoin d'un jar pour l'envoi de mail ??

merci d'avance
liquideshark
Messages postés
35
Date d'inscription
mercredi 2 août 2006
Statut
Membre
Dernière intervention
29 mai 2007
-
Super cool ton post merci infiniment;

une question le send("Reply-To:" + from); il fait quoi ?

Merci ;)
rimh
Messages postés
34
Date d'inscription
samedi 17 avril 2010
Statut
Membre
Dernière intervention
16 juin 2010
-
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és
16
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
2 mai 2012
-
Bonjour sheorogath,
Et si j'ai besoin de m'authentifier au niveau de mon serveur, je fais quoi?

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.