Le Applet invia e-mail

« Older   Newer »
  Share  
view post Posted on 7/5/2010, 21:55

Group:
,,,..--::|| AMMINISTRATORE ||::--..,,,
Posts:
1,602
Location:
Scheda di rete

Status:


Per poter inviare una email grazie all'interfaccia grafica disponibile con le Applet bisogna utilizzare il Package java.net che include la possibilitą di dialogare con un Socket in internet, pił precisamente aprire il Socket sulla porta 25 (di default) che si preoccupa di inviare i mesasggi di posta elettronica, la porta 25 o meglio il protocollo SMTP deve ricevere comandi SMTP (Simple Mail Transfer Protocol) in modo da creare ed inviare una struttura email perfettamente compatibile da tutti i client per leggere la posta.

Entriamo subito nella pratica e cominciamo a scrivere il codice necessario:

import java.applet.*;
import java.io.*;
import java.net.*;

class InviaMail extends Applet
{
public void init()
{
super.init(); // necessario per inizializzare la classe
EMail = getParameter("email");
setLayout(null);
resize(346, 227);
group1= new CheckboxGroup();
label1=new Label("Applet FormMail", Label.CENTER);
add(label1);
label1.reshape(40,8,266,15);
label2=new Label("Nome:");
add(label2);
label2.reshape(14,53,70,15);
label3=new Label("Cognome:");
add(label3);
label3.reshape(14,90,70,15);
label4=new Label("Etą:");
add(label4);
label4.reshape(14,135,70,15);
LavSi=new Checkbox("Si",group1, false);
add(LavSi); LavSi.reshape(280,62,35,19);
LavNo=new Checkbox("No",group1, false);
add(LavNo);
LavNo.reshape(280,83,35,22);
Nome=new TextField(27);
add(Nome);
Nome.reshape(14,69,226,21);
Cognome=new TextField(27);
add(Cognome);
Cognome.reshape(14,105,226,23);
Eta=new TextField(7);
add(Eta);
Eta.reshape(14,150,63,23);
label5=new Label("Lavora?",Label.CENTER);
add(label5);
label5.reshape(266,45,56,15);
spedisci=new Button("Spedisci");
add(spedisci);
spedisci.reshape(14,189,88,27);
azzera=new Button("Azzera");
add(azzera);
azzera.reshape(235,189,87,27);
LavNo.setState(false);
LavSi.setState(true);
}

public boolean handleEvent(Event event)
{
if (event.id== Event.ACTION_EVENT && event.target == spedisci)
{
aschito.net", 25);
PrintStream os = new PrintStream(mailSocket.getOutputStream());
int l,k,i;
String User,Host;
User="";
Host="";
for (l=i=0; i<email.length();i++)
if(EMail.charAt(i)!='@')
if(l==0) User+=EMail.charAt(i);
else Host+=EMail.charAt(i);
else l=1;
os.println("HELO "+Host);
os.println("MAIL FROM: [email protected]");
os.println("RCPT TO: "+User+"@"+Host);
os.println("DATA");
os.println("SUBJECT: Campi della Form");
os.println("Nome: "+Nome.getText());
os.println("Cognome: "+Cognome.getText());
os.println("Eta: "+Eta.getText());
if(LavSi.getState())
os.println("Lavora");
else
os.println("Non lavora");
os.println(".");
os.println("QUIT");
os.close();
mailSocket.close();
}
CheckboxGroup group1;
Label label1;
Label label2;
Label label3;
Label label4;
Checkbox LavSi;
Checkbox LavNo;
TextField Nome;
TextField Cognome;
TextField Eta;
Label label5;
Button spedisci;
Button azzera;
String EMail;
}

Una volta terminata la Classe, non ci resta che compilarla e inserire il codice HTML, necessario per la visualizzazione dell'Applet.

Abbiamo aggiunto un dall'esterno, l'indirizzo email del mittente. Parametro che viene catturato dal metodo getParameters().

Per impostare il codice HTML con dei parametri osservate l'esempio seguente:

<applet code="InviaMail.class" width="400" height="300">

</applet>

Non vi rimane che prendere carta e matita per progettare prima su carta e poi in codice tutte le vostr idee che avete per praticare questo fantastico linguaggio di programmazione che non ci finisce mai di stupire.

Benvenuti nel mondo di Java!
 
Web     Top
0 replies since 7/5/2010, 21:55   154 views
  Share