Como enviar e-mail usando java2se 1.4 ?
Alguem tem exemplo simples ?
Obrigado.
Como enviar e-mail usando java2se 1.4 ?
Alguem tem exemplo simples ?
Obrigado.
Você precisa usar a API do JAVAMail que pode ser encontrada em http://java.sun.com/products/javamail/index.html, e já faz parte do J2EE. Quanto ao tutorial há um aqui no GUJ na sessão de Tutoriais, só dar uma procuradinha…
Gustavo Guilherme BacK
Exemplo básico:
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
public class Mail
{
public static final String DEFAULT_MAIL_SERVER = "IP_DO_SERVIDOR";
public static final String DEFAULT_FROM = "[email removido]";
public boolean sendSimpleMail(String to, String subject, String mensagem)
{
return sendSimpleMail(DEFAULT_MAIL_SERVER, DEFAULT_FROM, to, subject, mensagem);
}
public boolean sendSimpleMail(String mailServer, String from,
String to, String subject, String mensagem)
{
boolean retorno = false;
try
{
Properties mailProps = new Properties();
mailProps.put("mail.smtp.host", mailServer);
Session mailSession = Session.getDefaultInstance(mailProps, null);
InternetAddress destinatario = new InternetAddress(to);
InternetAddress remetente = new InternetAddress(from);
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(remetente);
message.setRecipient( Message.RecipientType.TO, destinatario );
message.setSubject(subject);
message.setSentDate(new Date());
message.setText(mensagem, "iso-8859-1");
Transport.send (message);
retorno = true;
}
catch(AddressException e)
{
System.out.println("Endereço de e-mail inválido.");
}
catch(MessagingException e)
{
System.out.println("Não foi possível enviar a mensagem.");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return retorno;
}
}
public class EnviarEmail
{
Mail mail = new Mail();
String mensagem = "Teste de email";
mail.sendSimpleMail("[email removido]","Assunto", mensagem);
}
Existe um .jar chamado javamail.jar …
Você precisa dele …
Falow.
Tentei utilizar o javamail, porém quando tento enviar aponta erro no mimesession que nao pode ser criado.
Pensei em enviar por socket, criando uma conexao com o smtp direto:
alguem ja fez este procedimento ?
como utilizo espera no stream ?
como recupero mensagens do input ?
package socket;
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
public class Application1 {
public static void main(String[] args) {
//Declaro o socket cliente
Socket s = null;
//Declaro a Stream de saida de dados
PrintStream ps = null;
java.io.InputStream pe = null;
try{
//Cria o socket com o recurso desejado na porta especificada
s = new Socket("ip do servidor",25);
//Cria a Stream de saida de dados
ps = new PrintStream(s.getOutputStream());
pe = s.getInputStream();
//Imprime uma linha para a stream de saída de dados
ps.println("helo ");
ps.println("MAIL FROM: [email removido]");
ps.println("RCPT TO: [email removido]");
ps.println("DATA mensagem de teste para envio de email");
ps.println(".");
ps.println("QUIT");
//Trata possíveis exceções
}catch(IOException e){
System.out.println("Algum problema ocorreu ao criar ou enviar dados pelo socket.");
}finally{
try{
//Encerra o socket cliente
s.getInputStream();
s.getOutputStream();
s.close();
}catch(IOException e){}
}
}
}