back to top

Un esempio di applet: inviare una mail

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 parametro dall’esterno, cioè 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">
<param name="email" VALUE="[email protected]">
</applet>

Pubblicitร 
Articolo precedente