1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
| import java.net.*;
import java.io.*;
public class ClientSMTPConsole{
String fin ="FINMESSAGE";
String CRLF ="\r\n";
StringBuffer message = new StringBuffer();
String phrase;
StringBuffer entete, entete2;
String nom_serveur, adresse_desti, adresse_expe, objet;
int port_server = 25;
Socket socketC = null;
String messageR =null;
InputStream is = null;
PrintWriter fluxSortie = null;
BufferedReader fluxEntree = null;
StringBuffer msgAenvoyer;
PrintWriter PW = null;
String message_recu = null;
public ClientSMTPConsole(){
this.saisieArgs();
this.constrEntete();
this.saisieCorpsMsg();
this.lancerEchange();
}
public void saisieArgs(){
nom_serveur = "10.47.0.8";
adresse_expe = "test@centralys.com";
adresse_desti = "test@centralys.com";
objet = "MISE A JOUR CONNEXION";
}
public void constrEntete(){
entete=new StringBuffer("");
entete.append("Content-Type: multipart/mixed; boundary=\"didondinaditondelosdudosdodudundodudindon\"\r\n");
entete.append("--didondinaditondelosdudosdodudundodudindon\r\n");
entete.append("From:"+adresse_expe+CRLF);
entete.append("To:"+adresse_desti+CRLF);
entete.append("Subject:"+objet+CRLF);
entete.append("MIME-Version: 1.0"+CRLF);
entete.append("Content-Type: text/plain; charset=iso-8859-1"+CRLF);
entete.append("Content-Transfer-Encoding: 8bit"+CRLF);
entete.append("--didondinaditondelosdudosdodudundodudindon\r\n");
entete.append("Content-Type: application/octet-stream; name=\"torcy.rdp\"\r\n\r\n");
entete.append("Content-Transfer-Encoding: base64\r\n");
entete.append("Content-Disposition: attachment; filename=\"torcy.rdp\"\r\n\r\n");
entete.append("--didondinaditondelosdudosdodudundodudindon\r\n");
}
public void saisieCorpsMsg(){
while(!(phrase="FINMESSAGE").startsWith(fin)){
message.append(phrase);
}
message.append("\r\n.");
}
public void lancerEchange(){
try{
socketC = new Socket(nom_serveur, port_server);
}
catch(UnknownHostException excep1){
System.out.println("Erreur de création du socket"+excep1);
}
catch(IOException excep2){
System.out.println("Erreur de création du socket"+excep2);
}
try{
fluxSortie = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socketC.getOutputStream())),true);
}
catch( IOException excep5){
System.out.println("erreur pr os");
System.exit(0);
}
try{
fluxEntree = new BufferedReader(new InputStreamReader(socketC.getInputStream()));
}
catch(IOException excep4){
System.out.println("erreur");
}
String nom_hote_local=null;
try{
nom_hote_local= InetAddress.getLocalHost().getHostName();
}
catch(IOException excep4){
System.out.println("erreur");
}
this.lireReponse("220");
fluxSortie.println("HELO "+nom_hote_local);
this.lireReponse("250");
fluxSortie.println("MAIL FROM: <"+adresse_expe+">");
this.lireReponse("250");
fluxSortie.println("RCPT TO: <"+adresse_desti+">");
this.lireReponse("250");
fluxSortie.println("DATA");
this.lireReponse("354");
fluxSortie.println(entete.toString());
fluxSortie.println(message.toString());
this.lireReponse("250");
fluxSortie.println("QUIT");
this.lireReponse("221");
}
public void lireReponse(String codeErreur){
try{
messageR = fluxEntree.readLine();
}
catch( IOException excep6){
System.out.println("erreur ");
System.exit(0);
}
if(messageR.startsWith(codeErreur)==true){
System.out.println(messageR);
}
else{
System.exit(0);
}
}
public static void main(String[]args){
ClientSMTPConsole client = new ClientSMTPConsole();
}
} |
Partager