Problemas para enviar email!

5 respostas
cristianonasciment

Galera fiz essa classe para mandar email

import java.security.Security;
import java.util.Properties;
import java.util.StringTokenizer;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.swing.JOptionPane;
import schweb.Email;

public class MandaEmail {
    
    private String nomeServidor = "smtp.gmail.com";
    private String porta = "465";
    private String msgTxt, assunto, emailFrom;
    private String ssl_factory = "javax.net.ssl.SSLSocketFactory";
    private String senha;
    private String destinatario;
    
    public MandaEmail( Email email ){
        
        Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
        msgTxt = email.getMsgTexto();
        assunto = email.getMsgAssunto();
        emailFrom = email.getMsgFrom();
        destinatario = email.getRecipients();
        senha = email.getSenha();
        try{
            mandaMsgUsandoSSL(destinatario, assunto, msgTxt, emailFrom);
        }catch( javax.mail.MessagingException ex ){
            ex.printStackTrace();
        }  
        JOptionPane.showMessageDialog( null, "Solicitação Reserva enviado com sucesso !" );
    }
    
    public void mandaMsgUsandoSSL(String recipients, String assunto, String mensagem, String origem) throws MessagingException {
        boolean debug = true;
        
        Properties props = new Properties();
        props.put("mail.smtp.host", nomeServidor);
        props.put("mail.smtp.auth", "true" );
        props.put("mail.debug", "true" );
        props.put("mail.smtp.port", porta);
        props.put("mail.smtp.socketFactory.port", porta);
        props.put("mail.smtp.socketFactory.class", ssl_factory);
        props.put("mail.smtp.socketFactory.fallback", "false" );
        
        
        Session session = Session.getDefaultInstance(props,
                new javax.mail.Authenticator() {
            
            protected PasswordAuthentication getPasswordAuthentication() {
                StringTokenizer token = new StringTokenizer( emailFrom, "@" );
                return new PasswordAuthentication(token.nextToken(), senha );
            }
        });
        
        session.setDebug(debug);
        
        Message msg = new MimeMessage(session);
        InternetAddress addressFrom = new InternetAddress(origem);
        msg.setFrom(addressFrom); 
        msg.setSubject(assunto);
        msg.setContent(mensagem, "text/plain" );
        
        Transport.send(msg);
    }
}
//no evento do botão
Email email = new Email();
        email.setSenha("ddffsdfd");
        email.setMsgAssunto("Solicitação de Reserva");
        email.setMsgFrom("[email removido]");
        email.setMsgTexto("Tipo Unidade:");
        email.setRecipients("[email removido]");
        try{
            MandaEmail mandaEmail = new MandaEmail( email );
        }catch( Exception e ){
            JOptionPane.showMessageDialog(null, e.getMessage() );
        }
        return null;

erro: HTTP Status 500 The server encountered an internal error () that prevented it from fulfilling this request.

se alguem puder me dar uma luz, ficarei muitíssimo grato

5 Respostas

furutani

Olá

Posta o stacktrace, por que só com essas informações não dá nem pra dar uma dica.

A

Cara sua o framework da commons, bem mais simples…
da uma olhada ai…
http://jakarta.apache.org/commons/email/

flw!!!

Ismaels

Cara, eu não entendo muito de e-mail com java mas gostei da dica do Alisson, vou estudar melhor esse Framework da Jakarta Commons.
Valeu Alisson.

R

Olá!!

Cara, eu fiz um projeto esse semestre pra faculdade, no qual eu precisei implementar um Cliente SMTP. Eu fiz algo quase parecido com o que vc fez, com a diferença que todos os dados para o envio do email estão em um arquivo txt. Eu consegui mandar vários emails inclusive com anexo, usando o mesmo o cliente de email que vc usou mas eu não usei a porta “465” e sim a “25” que é a do próprio protocolo SMTP e funcionou muito bem. Sempre que usava essa primeira não acontecia nada e o email não era enviado.

cristianonasciment

opa, vlw pelas dicas ai galera !!
vou testar a porta 25 !!!
se não der certo eu posto o stacktrace !!!
vlw ai.
se der certo, eu volto falando !!!
abraços !!

Criado 15 de junho de 2007
Ultima resposta 18 de jun. de 2007
Respostas 5
Participantes 5