Newsgroup: it.comp.java
Titolo: Problems with JavaMail

Hello to all,
I have found a problem with JavaMail when I have write this program from 
simple application (working) in applet. I have JSDK 1.4.01 and I can to 
compile every class (Application and applet) without error, but if I try 
to start my applet, it's don't work correctly because it can't find the 
Message class or Address class. I have insert mail.jar and 
activation.jar in the classpath and in home root of my webserver, but 
the applet continue not to work, while the application work correctly.
I have not understood why!
Thanx for your help and sorry for my English!
Applicativo Java:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.mail.*;
import javax.mail.Address;
import javax.mail.internet.InternetAddress;
import javax.mail.event.*;
import javax.mail.internet.*;
import javax.activation.*;
public class Applet_send_mail extends Applet {
 static String mailHost = "daniela-pc";
 Label toLabel = new Label("To:");
 Label fromLabel = new Label("From:");
 Label subjectLabel = new Label("Subject:");
 Label contentLabel = new Label("Content:");
 Label statusLabel = new Label("Status:");
 TextField destination = new TextField();
 TextField source = new TextField();
 TextField subject = new TextField();
 TextArea content = new TextArea();
 Button send = new Button("Send Message");
 TextArea status = new TextArea();
 
 
 
 public void init() {
 
  setup();
 
 
 }
 
 void setup() {
 
  layoutComponents();
  send.addActionListener(new ButtonHandler());
 }
 
 
 void layoutComponents() {
  int x = 10;
  int y = 50;
  // Set bounds
  toLabel.setBounds(x,y,50,25);
  destination.setBounds(x+70,y,300,25);
  fromLabel.setBounds(x,y+40,50,25);
  source.setBounds(x+70,y+40,300,25);
  subjectLabel.setBounds(x,y+80,50,25);
  subject.setBounds(x+70,y+80,300,25);
  contentLabel.setBounds(x,y+120,50,25);
  content.setBounds(x+70,y+120,300,100);
  statusLabel.setBounds(x,y+240,50,25);
  status.setBounds(x+70,y+240,300,100);
  send.setBounds(400,y,100,30);
  // Add components
  add(toLabel);
  add(destination);
  add(send);
  add(fromLabel);
  add(source);
  add(subjectLabel);
  add(subject);
  add(contentLabel);
  add(content);
  add(statusLabel);
  add(status);
  add(new Label(""));
 }
 
 void sendMessage() {
  Properties properties = new Properties();
  properties.put("mail.smtp.host",mailHost);
  properties.put("mail.from",source.getText());
  Session session = Session.getInstance(properties, null);
  try {
  Message message = new MimeMessage(session);
     InternetAddress[] address = 
    {new InternetAddress(destination.getText())};
   message.setRecipients(
Message.RecipientType.TO
,address);
   message.setFrom(new InternetAddress(source.getText()));
   message.setSubject(subject.getText());
   message.setContent(content.getText(),"text/plain");
   Transport transport = session.getTransport(address[0]);
   transport.addConnectionListener(new ConnectionHandler());
   transport.addTransportListener(new TransportHandler());
   transport.connect();
   transport.sendMessage(message,address);
  }catch(Exception e){
   status.setText(e.toString());
  }
 }
 class ConnectionHandler extends ConnectionAdapter {
  public void opened(ConnectionEvent e) {
   status.setText("Connection opened.");
  }
  public void disconnected(ConnectionEvent e) {
   status.setText("Connection disconnected.");  
  }
  public void closed(ConnectionEvent e) {
   status.setText("Connection closed.");  
  }
 }
 
 class TransportHandler extends TransportAdapter {
  public void messageDelivered(TransportEvent e) {
   status.setText("Message delivered.");  
  }
  public void messageNotDelivered(TransportEvent e) {
   status.setText("Message NOT delivered.");  
  }
  public void messagePartiallyDelivered(TransportEvent e) {
   status.setText("Message partially delivered.");  
  } 
 }
 class ButtonHandler implements ActionListener {
  public void actionPerformed(ActionEvent ev){
   String s=ev.getActionCommand();
   if(s.equals("Send Message")) sendMessage();
  }
 }
 }
-- 
EdoSCSIWebŽ

 Thanx for your help and sorry for my English!
Infatti, scrivi in italiano che è meglio. Sinceramente non ho voglia di
tradurmi il messaggio, non so gli altri. Comunque una cosa è una
applicazione che gira sul server (che ha il classpath a posto) e una altra
cosa è un'applet che viene scaricata sul browser - probabilmente non dotato
di javamail e activation. Apri un socket con il server e mandagli il
messaggio, così lo inoltrerà lui per te (e l'utente si evita di doversi
scaricare altri jar).
Ciao,
 Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------

 scaricare altri jar).
Se devo essere sincero questo post è stato inviato per errore a questo 
n.g. comunque avevo già postato in italiano. 
Ti ringrazio per avermi risposto, ma l'applet e la servlet girano 
entrambe sullo stesso server che carica i vari package .Jar 
correttamente nella classpath. Il mio problema nasce nel momento che 
voglio offrire un servizio di webmail con Java su internet o intranet. 
L'applicativo compilato come mail client (rudimentale) funziona 
(ovviamente testato sul server). Per aprire un socket verso il server 
necessito sempre di un mail client, ma a quel punto non offro più un 
servizio di WebMail ma semplicemente un servizio di Remailer.
Grazie comunque per la partecipazione!
-- 
EdoSCSIWeb®