E-mail

Oi pessoal,

Vcs sabem como mandar e-mails atraves de um programa em java??? :idea:

…fazendo uso da API JavaMail do J2EE :slight_smile: , em casa eu tenho um helloworld disso em JSP…, só tenho q vasculhar hehehe

voce tambem pode fazer isso via Sockets :idea:

ai voce nao precisa instalar outra API… :wink:

se voce quizer tenho um codigo de exemplo disso

no site do guj (guj.com.br), na área de artigos, tem um tutorial sobre como enviar emails usando a API JavaMail

[quote=“denis_arruda”]voce tambem pode fazer isso via Sockets :idea:

ai voce nao precisa instalar outra API… :wink:

se voce quizer tenho um codigo de exemplo disso[/quote]

Sim.quero dar uma olhada no seu código. Vc pode disponibiliza-lo para mim?

Obrigado!! :lol:

ta ai, tirei do jspbrasil, página jsp onde tu coloca os dados pro e-mail:

[code]<html>
<body>

<form action="enviaremail.jsp" method"post">
<table border="0" align="center" bgcolor="tan">
<tr>
<td><b>Para…:</b></td>
<td><input type="Text" name="para"</td>
</tr>
<tr>
<td><b>De…:</b></td>
<td><input type="Text" name="de"</td>
</tr>
<tr>
<td><b>Assunnto…:</b></td>
<td><input type="Text" name="assunto"</td>
</tr>
<tr>
<td colspan="2">
<textarea name="mensagem" rows=10 cols=45></textarea>
</td>
</tr>
</table>
<center> <input type="Submit" value="Enviar Email"></center>
</form>

</body>
</html>[/code]

…ai segue o código da página jsp (enviaremail.jsp) com a lógica de programação responsável por criar e enviar o mail:

[code]<html>
<body>
<%@ page import="jspbrasil.Email" %>
<jsp:useBean id="email" scope="session" class="jspbrasil.Email"/>
<%
try {

String mailServer = "mail.seumailserver.com.br"
String assunto = request.getParameter("assunto")
String para = { request.getParameter("para") };
String de = request.getParameter("de");
String mensagem =request.getParameter("mensagem");
email.sendSimpleMail(mailServer, assunto, para, de, mensagem);
%>
<p>Email enviado com Sucesso !!!</p>
<%
}
catch (AdressException e) { %>
<p>Endereço de Email inválido</p>
<%}%>
<%
catch (MessagingException e) { %>
<p>Impossível enviar o email.</p>
<%}%>

</body>
</html>[/code]

agora a classe responsável por enviar o mail:

[code]package jspbrasil;

import javax.mail.;
import javax.mail.internet.
;
import.java.util.*;

public class Email {

public void sendSimpleMail (String mailServer, String subject,
String to,String from, String mensagem )
throws AddressException, MessageException
{

  Properties mailProps = new Properties&#40;&#41;;
  //definição do mailserver

  mailProps.put&#40;&quot;mail.smtp.host&quot;, mailServer&#41;

  Session mailSession = Session.getDefaultInstance&#40;mailProps, null&#41;;

  //As duas linhas seguintes de código, colocam no
  //formato de endereços, 
  //supostamente válidos, de email os dados 
  //passados pelos parâmetros to e from.
  InternetAdress destinatario = new InternetAdress &#40;to&#41;;
  InternetAdress remetente = new InternetAdress &#40;from&#41;;

  //As duas linhas de código a seguir, são 
  //responsáveis por setar os atributos e 
  //propriedas necessárias do objeto message 
  //para que o email seja enviado.
  //inicialização do objeto Message 
  Message message = new MimeMessage &#40;mailSession&#41;;

  //Definição de quem está enviando o email
  message.setFrom&#40;remetente&#41;;

  //define o&#40;s&#41; destinatário&#40;s&#41; e qual o tipo do 
  //destinatário.
  //os possíveis tipos de destinatário&#58; TO, CC, BCC

  message.setRecipient&#40; Message.RecipientType.TO, destinatário &#41;;
  //definição do assunto do email
	
  message.setSubject &#40;subject&#41;;
  //definição do conteúdo da mesnagem e do 
  //tipo da mensagem

  message.setContent &#40;mensagem.toString&#40;&#41;, &quot;text/plain&quot;&#41;;
  //a linha de código seguinte é a responsável 
  //pelo envio do email

  Transport.send &#40;message&#41;;

}

}[/code]

aqui está:

/**
 * @version 1.00 1999-08-27
 * @author Cay Horstmann
 */

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.net.*;
import java.io.*;
import javax.swing.*;

public class MailTest
&#123;  public static void main&#40;String&#91;&#93; args&#41;
   &#123;  JFrame frame = new MailTestFrame&#40;&#41;;
      frame.show&#40;&#41;;
   &#125;
&#125;

class MailTestFrame extends JFrame
   implements ActionListener
&#123;  public MailTestFrame&#40;&#41;
   &#123;  setTitle&#40;&quot;MailTest&quot;&#41;;
      setSize&#40;300, 300&#41;;
      addWindowListener&#40;new WindowAdapter&#40;&#41;
         &#123;  public void windowClosing&#40;WindowEvent e&#41;
            &#123;  System.exit&#40;0&#41;;
            &#125;
         &#125; &#41;;

      getContentPane&#40;&#41;.setLayout&#40;new GridBagLayout&#40;&#41;&#41;;

      GridBagConstraints gbc = new GridBagConstraints&#40;&#41;;
      gbc.fill = GridBagConstraints.HORIZONTAL;
      gbc.weightx = 0;
      gbc.weighty = 0;

      gbc.weightx = 0;
      add&#40;new JLabel&#40;&quot;From&#58;&quot;&#41;, gbc, 0, 0, 1, 1&#41;;
      gbc.weightx = 100;
      from = new JTextField&#40;20&#41;;
      add&#40;from, gbc, 1, 0, 1, 1&#41;;

      gbc.weightx = 0;
      add&#40;new JLabel&#40;&quot;To&#58;&quot;&#41;, gbc, 0, 1, 1, 1&#41;;
      gbc.weightx = 100;
      to = new JTextField&#40;20&#41;;
      add&#40;to, gbc, 1, 1, 1, 1&#41;;

      gbc.weightx = 0;
      add&#40;new JLabel&#40;&quot;SMTP server&#58;&quot;&#41;, gbc, 0, 2, 1, 1&#41;;
      gbc.weightx = 100;
      smtpServer = new JTextField&#40;20&#41;;
      add&#40;smtpServer, gbc, 1, 2, 1, 1&#41;;

      gbc.fill = GridBagConstraints.BOTH;
      gbc.weighty = 100;
      message = new JTextArea&#40;&#41;;
      add&#40;new JScrollPane&#40;message&#41;, gbc, 0, 3, 2, 1&#41;;

      response = new JTextArea&#40;&#41;;
      add&#40;new JScrollPane&#40;response&#41;, gbc, 0, 4, 2, 1&#41;;

      gbc.weighty = 0;
      JButton sendButton = new JButton&#40;&quot;Send&quot;&#41;;
      sendButton.addActionListener&#40;this&#41;;
      JPanel buttonPanel = new JPanel&#40;&#41;;
      buttonPanel.add&#40;sendButton&#41;;
      add&#40;buttonPanel, gbc, 0, 5, 2, 1&#41;;
   &#125;

   private void add&#40;Component c, GridBagConstraints gbc,
      int x, int y, int w, int h&#41;
   &#123;  gbc.gridx = x;
      gbc.gridy = y;
      gbc.gridwidth = w;
      gbc.gridheight = h;
      getContentPane&#40;&#41;.add&#40;c, gbc&#41;;
   &#125;

   public void actionPerformed&#40;ActionEvent evt&#41;
   &#123;  SwingUtilities.invokeLater&#40;new Runnable&#40;&#41;
        &#123;  public void run&#40;&#41;
           &#123;   sendMail&#40;&#41;;
           &#125;
        &#125;&#41;;
   &#125;

   public void sendMail&#40;&#41;
   &#123;  try
      &#123;  Socket s = new Socket&#40;smtpServer.getText&#40;&#41;, 25&#41;;

         out = new PrintWriter&#40;s.getOutputStream&#40;&#41;&#41;;
         in = new BufferedReader&#40;new
            InputStreamReader&#40;s.getInputStream&#40;&#41;&#41;&#41;;

         String hostName
            = InetAddress.getLocalHost&#40;&#41;.getHostName&#40;&#41;;

         send&#40;null&#41;;
         send&#40;&quot;HELO &quot; + hostName&#41;;
         send&#40;&quot;MAIL FROM&#58; &quot; + from.getText&#40;&#41;&#41;;
         send&#40;&quot;RCPT TO&#58; &quot; + to.getText&#40;&#41;&#41;;
         send&#40;&quot;DATA&quot;&#41;;
         out.println&#40;message.getText&#40;&#41;+&quot;\r&quot;&#41;;
         send&#40;&quot;.&quot;&#41;;
         s.close&#40;&#41;;
      &#125;
      catch &#40;IOException exception&#41;
      &#123;  response.append&#40;&quot;Error&#58; &quot; + exception&#41;;
      &#125;
   &#125;

   public void send&#40;String s&#41; throws IOException
   &#123;  if &#40;s != null&#41;
      &#123;  response.append&#40;s + &quot;\n&quot;&#41;;
         out.println&#40;s+&quot;\r&quot;&#41;;
         out.flush&#40;&#41;;
      &#125;
      String line;
      if &#40;&#40;line = in.readLine&#40;&#41;&#41; != null&#41;
         response.append&#40;line + &quot;\n&quot;&#41;;
   &#125;

   private BufferedReader in;
   private PrintWriter out;
   private JTextField from;
   private JTextField to;
   private JTextField smtpServer;
   private JTextArea message;
   private JTextArea response;
&#125;

Obrigado Denis e Matheus pela ajuda!!