Newsgroup: it.comp.java
Titolo: JavaMail 1.1.1

Sto provando a scrivere un metodo prendendo spunto dagli esempi forniti
col JavaMail
Dovrei inviare un messaggio e provo il seguente spezzone di codice:
Properties props = new Properties();
props.put("mail.smtp.host", "
mbox.pnet.it
");
Session session = Session.getDefaultInstance(props, null);
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("
sba...@mbox.pnet.it
"));
InternetAddress[] address = {new
InternetAddress("
paol...@mbox.pnet.it
")};
msg.setRecipients(
Message.RecipientType.TO
, address);
msg.setSubject("Ordine di Antico Pomario");
msg.setSentDate(new java.util.Date());
msg.setText(msgText); // msgText è definito prima
Transport.send(msg);
Ottengo un'eccezione:
javax.mail.SendFailedException: Sending failed;
  nested exception is:
        javax.mail.MessagingException: 501 helo requires domain address
        at javax.mail.Transport.send0(Transport.java:204)
        at javax.mail.Transport.send(Transport.java:73)
        at AnticoPomario.Ascoltatore.run(Ascoltatore.java)
Che cosa ho sbagliato? Chi può aiutarmi?
Grazie in anticipo
Paolo (
paol...@mbox.pnet.it
)

 col JavaMail
prova a connetterti direttamente al server di posta senza javamail:
      // Establish a network connection for sending mail
      URL u = new URL("mailto:" + to);      // Create a mailto: URL
      URLConnection c = u.openConnection(); // Create a URLConnection for it
      c.setDoInput(false);                  // Specify no input from this URL
      c.setDoOutput(true);                  // Specify we'll do output
      System.out.println("Connecting...");  // Tell the user what's happening
      System.out.flush();                   // Tell them right now
      c.connect();                          // Connect to mail host
      PrintWriter out =                     // Get output stream to mail host
        new PrintWriter(new OutputStreamWriter(c.getOutputStream()));
      // Write out mail headers.  Don't let users fake the From address
      out.println("From: \"" + from + "\" <" +
                  System.getProperty("
user.name
") + "@" +
                  InetAddress.getLocalHost().getHostName() + ">");
      out.println("To: " + to);
      out.println("Subject: " + subject);
      out.println();  // blank line to end the list of headers
      // Now ask the user to enter the body of the message
      System.out.println("Enter the message. " +
                         "End with a '.' on a line by itself.");
      // Read message line by line and send it out.
      String line;
      for(;;) {
        line = in.readLine();
        if ((line == null) || line.equals(".")) break;
        out.println(line);
      }
      // Close the stream to terminate the message
      out.close();
      // Tell the user it was successfully sent.
      System.out.println("Message sent.");
      System.out.flush();
Greetings, Alessandro
http://www.esalab.it
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own    

Ringrazio tutti coloro che mi hanno aiutato, anche via e-mail.
Alla fine la mia soluzione č la seguente:
/**
 * Avvia l'applicazione.
 * Invio tutti i parametri senza aspettare le risposte del server.
 * @param args un array di argomenti della riga comandi
 */
public static void main(java.lang.String[] args) throws UnknownHostException,
IOException
{
 Socket serverPosta = new Socket("
mbox.pnet.it
", 25);
 OutputStreamWriter fuori = new
OutputStreamWriter(serverPosta.getOutputStream());
 BufferedReader dentro = new BufferedReader(new
InputStreamReader(serverPosta.getInputStream()));
 String ricevuto;
 while (!dentro.ready())
 {
 }
 ricevuto = dentro.readLine();
 System.out.println(ricevuto);
 fuori.write("HELO 
mbox.pnet.it
\n");
 fuori.flush();
 while (!dentro.ready())
 {
 }
 ricevuto = dentro.readLine();
 System.out.println(ricevuto);
 fuori.write("MAIL FROM: 
paol...@mbox.pnet.it
\n");
 fuori.flush();
 while (!dentro.ready())
 {
 }
 ricevuto = dentro.readLine();
 System.out.println(ricevuto);
 fuori.write("RCPT TO: destinatario@dominio\n");
 fuori.flush();
 while (!dentro.ready())
 {
 }
 ricevuto = dentro.readLine();
 System.out.println(ricevuto);
 fuori.write("DATA\n");
 fuori.flush();
 while (!dentro.ready())
 {
 }
 ricevuto = dentro.readLine();
 System.out.println(ricevuto);
 fuori.write("Subject: Ordine di Antico Pomario\n");
 fuori.flush();
 fuori.write("From: 
paol...@mbox.pnet.it
\n");
 fuori.flush();
 fuori.write("To: 
paol...@mbox.pnet.it
\n");
 fuori.flush();
 fuori.write("\n");
 fuori.flush();
 fuori.write("Questa č la prima riga\n");
 fuori.flush();
 fuori.write("Questa č la seconda riga\n");
 fuori.flush();
 fuori.write(".\n");
 fuori.flush();
 while (!dentro.ready())
 {
 }
 ricevuto = dentro.readLine();
 System.out.println(ricevuto);
 fuori.write("QUIT"); // dopo non leggere la risposta
 fuori.flush();
 fuori.close();
 dentro.close();
 serverPosta.close();
}

        at AnticoPomario.Ascoltatore.run(Ascoltatore.java)
Ti manca la parte dell'inizializzazione del Transport:
Transport transport = session.getTransport("smtp");
transport.send(msg);
Ma soprattutto credo che dovresti sostituire l'inizializzazione del
props con questa:
Properties props = System.getProperties();
E' questa la causa dell'exception.
Ciao
---
Nhan NGO DINH
e-mail: 
nngo...@tiscalinet.it
web site: 
http://www.tiscalinet.it/nngodinh
Do you want an e-mail client that runs on every platform with any OS?
Download JMail from my website. JMail, the JAVA mail client.