Ajuda com E-mail

Pessoal, eu gostaria de apreender como faz pra mim conseguir manda um e-mail a partir de um formulário !
Tipo
Eu tenho dois campos De e Para sendo q o para é o e-mail da pessoa q eu vou enviar, um campo onde o Remetente digitara um assumto e um campo onde a pessoa digitara o corpo da mensagem !

Eu gostaria que o Destinatário recebe-se o E-mail, o Assunto e a Mensagem no seu e-mail

Exemplo.

De: Moska(moska@moska.com.br)
Para: Java(java@java.com.br)
Assunto: Apreendendo
Corpo:
Estou tentando apreender !

No E-mail do Java apareceria assim:
Assunto: Apreendendo
Corpo:
Estou tentando apreender.

SE alguem soube como fazer, ou algum tutorial q ensine passo a passo !
Postem ai vlw !

Eu fazia da seguinte maneira … mas tem várias variações desse código dependendo do tipo de autenticação e etc.

[code]package controle;

import dominio.Autenticar;
import java.io.IOException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class EnviaEmailServlet extends HttpServlet {

/** 
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, AddressException, MessagingException {

    String nome = request.getParameter("nome");
    String email = request.getParameter("email");
    String assunto = request.getParameter("assunto");
    String mensagem = request.getParameter("mensagem");


    Properties props = new Properties();
    //props.put("mail.smtp.host", "smtp.mail.yahoo.com.br");
    props.put("mail.smtp.host", <endereco servidor smtp>);
    props.put("mail.smtp.auth", "true");

    Session s = Session.getDefaultInstance(props, new Autenticar(<seu email>, <senha>));

    MimeMessage message = new MimeMessage(s);

    InternetAddress from = new InternetAddress(<email d qm esta enviando>);

    message.setFrom(from);
    InternetAddress to = new InternetAddress(<email destinatário>);

    message.addRecipient(Message.RecipientType.TO, to);
    message.setSubject("ENVIADO PELO SITE - " + assunto); //assunto

    StringBuffer sb = new StringBuffer();
    sb.append("Nome: ").append(nome)
            .append("\n")
            .append("E-mail: ").append(email).append("\n\n")
            .append("Mensagem: ").append("\n").append(mensagem);

    message.setText(sb.toString());

    Transport.send(message);

    request.setAttribute("mensagem", "A mensagem foi enviada com sucesso!");
    RequestDispatcher dispatcher = request.getRequestDispatcher("./creditos.jsp"); //seta endereço de resposta
    dispatcher.forward(request, response);
    
} 


}[/code]

Opa, aqui, vou postar um exemplo muito simples, mas não sei se vai servir pra vc, mas tá aí.

No caso, faça uma página JSP

e a classe que faz a configuração do e-mail:


package mail;

import java.io.IOException;
import java.io.PrintStream;
import javax.swing.JOptionPane;
import sun.net.smtp.SmtpClient;

/**
 *
 * @author xjunior
 */
public class EnviarEmail {
    private String _text;
    private String _to;
    private String _from;
    private String _smtpClient;
    private String _assunto;
    public EnviarEmail setMessage(String text){
       this._text = text;
       return this;
   }
   public EnviarEmail setTo(String to){
       this._to = to;
       return this;
   }
   public EnviarEmail setFrom(String from){
       this._from = from;
       return this;
   }
   public EnviarEmail setSmtpClient(String smtpClient){
       this._smtpClient = smtpClient;
       return this;
   }
   public EnviarEmail setAssunto(String assunto){
       this._assunto = assunto;
       return this;
   }
   public void sendEmail() {
      try {         
         SmtpClient client = new SmtpClient(this._smtpClient);
         client.from(this._from);
         client.to(this._to);
         client.getMailHost();
         PrintStream msg = client.startMessage();
         msg.println("from:" + this._from);
         msg.println("to:" + this._to);
         msg.println("Subject:"+this._assunto+"\r\n\n");
         msg.println(this._text);
         client.closeServer();
      } catch (IOException e) {
         JOptionPane.showMessageDialog(null,"Is ocurred error: " + e);
      }

   }
   
}

Agora, não sei se está certo, pois o smtp da empresa aqui recusou a conexão, e não tenho acesso externo pela empresa, mas tentei fazer um exemplo em java se, se num puder, calma gente, não desosse muito …kkkkkkkkkkkk…
bom, mas tenho boa vontade de ajudar, se for o caso, rodar só com jsp, favor postar aqui, bom que aprendo mais…

assim, lá vai o código:

package mail;

import javax.swing.JOptionPane;

/**
 *
 * @author xjunior
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String text;
        String to;
        String from;
        String smtpClient;
        String assunto;

        smtpClient = JOptionPane.showInputDialog("Insira o SMTP Cliente: ");
        from = JOptionPane.showInputDialog("Insira endereço de e-mail do Cliente: ");
        to = JOptionPane.showInputDialog("Insira endereço de e-mail do Destinatário: ");
        assunto = JOptionPane.showInputDialog("Insira o assunto do e-mail: ");
        text = JOptionPane.showInputDialog("Insira o conteúdo do e-mail: ");
        EnviarEmail mail = new EnviarEmail();
        mail.setTo(to).setFrom(from).setSmtpClient(smtpClient).setAssunto(assunto).setMessage(text).sendEmail();
    }

}

Seguinte, terias como explicar como funciona cada um desses parametros?

Aqui eu testei e não ta funcionando. Provavelmente por causa do proxy aqui da empresa também hehe

Seria em relação ao meu código?

sim!

Eu executei aqui mas não sei direito que valores passar em cada parametro.

OK, vamos lá então:::

A classe que envia o e-mail:

package mail;

import java.io.IOException;
import java.io.PrintStream;
import javax.swing.JOptionPane;
import sun.net.smtp.SmtpClient;

/**
 *
 * @author xjunior
 */
public class EnviarEmail {
    private String _text;
    private String _to;
    private String _from;
    private String _smtpClient;
    private String _assunto;
    /**
     * Setar a mensagem
     * @param text
     * @return EnviarEmail
     */
    public EnviarEmail setMessage(String text){
       this._text = text;
       return this;
   }
   /**
    * Setar quem está enviando
    * @param to
    * @return EnviarEmail
    */
   public EnviarEmail setTo(String to){
       this._to = to;
       return this;
   }
   /**
    * setar o destinatário
    * @param from
    * @return EnviarEmail
    */
   public EnviarEmail setFrom(String from){
       this._from = from;
       return this;
   }
   /**
    * setar o endereço do smtp cliente
    * @param smtpClient
    * @return EnviarEmail
    */
   public EnviarEmail setSmtpClient(String smtpClient){
       this._smtpClient = smtpClient;
       return this;
   }
   /**
    * setar o assunto do email
    * @param assunto
    * @return EnviarEmail
    */
   public EnviarEmail setAssunto(String assunto){
       this._assunto = assunto;
       return this;
   }
   /**
    * Trata o envio do e-mail
    */
   public void sendEmail() {
      try {
         /**
          * Instancia o objeto da classe SmtpClient setando o endereço smtp cliente
          */
         SmtpClient client = new SmtpClient(this._smtpClient);
         /**
          * seta quem está enviando
          */
         client.from(this._from);
         /**
          * seta o destinatário
          */
         client.to(this._to);
         /**
          * Aqui fixa a mensagem a ser enviada
          */
         PrintStream msg = client.startMessage();
         msg.println("from:" + this._from);
         msg.println("to:" + this._to);
         msg.println("Subject:"+this._assunto+"\r\n\n");
         msg.println(this._text);
         /**
          * Fecha a conexão com o servidor smtp
          */
         client.closeServer();
      } catch (IOException e) {
         /**
          * Mudar aqui para jsp tirando o JOptionPane se for o caso.....
          */
         JOptionPane.showMessageDialog(null,"Is ocurred error: " + e);
      }

   }
   
}

O main::

package mail;

import javax.swing.JOptionPane;

/**
 *
 * @author xjunior
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String text;
        String to;
        String from;
        String smtpClient;
        String assunto;

        /**
         * Insere o smtp cliente
         */
        smtpClient = JOptionPane.showInputDialog("Insira o SMTP Cliente: ");
        /**
         *  Quem está enviando
         */
        from = JOptionPane.showInputDialog("Insira endereço de e-mail do Cliente: ");
        /**
         * Destinatário
         */
        to = JOptionPane.showInputDialog("Insira endereço de e-mail do Destinatário: ");
        /**
         * Assunto
         */
        assunto = JOptionPane.showInputDialog("Insira o assunto do e-mail: ");
        /**
         * Conteúdo do e-mail
         */
        text = JOptionPane.showInputDialog("Insira o conteúdo do e-mail: ");
        /**
         * Instância a classe de enviar os e-mails
         */
        EnviarEmail mail = new EnviarEmail();
        /**
         * seta os valores e chama o método de enviar o email
         */
        mail.setTo(to).setFrom(from).setSmtpClient(smtpClient).setAssunto(assunto).setMessage(text).sendEmail();
    }

}

o smtp Cliente eu preencho com que valor?

pode ser o ip ou o endereço mesmo tipo: smtp.yahoo.com ou 192.168.100.10, ok?

Oks então.
Vou tentar novamente em casa e ver se o problema é o proxy. Se não funcionar eu volto aqui.

Abraço!

Ok brother, flw então,