Email com anexo

7 respostas
M

Pessoal,

estou desenvolvendo uma aplicação que requer que eu baixa e-mails de um determinado provedor. Achei alguns códigos em que tentei me basear, porém todos eu só consigo pegar o conteúdo do corpo do e-mail, o que eu preciso é do conteúdo do arquivo em anexo. Preciso fazer o download do arquivo em anexo. Alguém pode me ajudar?

7 Respostas

aeciovc

nada melhor que isto:

http://www.guj.com.br/posts/list/106280.java

M

oi aeciovc,

Cara vou dar uma estudada melhor no commons mail. Mas no link do forum que você me mandou, só tem falando de como envia, pelo que eu vi. Preciso, fazer uma ratina em que ele receba o e-mail, em que ele conecte-se com o servidor pop3 e baixe os e-mails que estão na caixa de e-mail.
ele ajuda também? se sim, tem algum lugar, ou algum documento bom em que eu possa me basear?

fabricioempresa
Nada melhor que um código para ilustrar hahuahuhua
import java.io.File;
import java.util.Properties;
import javax.activation.CommandMap;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.activation.MailcapCommandMap;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;



public class SendMail {

    String server = TmpSend.getInstance().getsmtp();
    private String host = server; /* endereço do servidor smtp */


    public class SMTPAuthenticator extends Authenticator {

        @Override
        public PasswordAuthentication getPasswordAuthentication() {
            String username = usuariodoemail;
            String password = pwddousuario;
            return new PasswordAuthentication(username, password);
        }
    }


    public void EnviarEmailPara(String para, String assunto, String mensagem) throws Exception {
        Properties mailProps = System.getProperties();
        mailProps.put("mail.smtp.host", this.host);
        String fileAttachment = "";
        Authenticator auth = new SMTPAuthenticator();
        Session session = Session.getDefaultInstance(mailProps, auth);

        mailProps.put("mail.smtp.auth", "true");
        mailProps.put("mail.debug", "true");
        mailProps.put("mail.smtp.debug", "true");
        mailProps.put("mail.mime.charset", "ISO-8859-1");
        mailProps.put("mail.smtp.port", "25");
        
        MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap();
        mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
        mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
        mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
        mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
        mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
        CommandMap.setDefaultCommandMap(mc);

        // Definir mensagem
        MimeMessage message = new MimeMessage(session);
        String from = paraquemvaioemail

        message.setFrom(new InternetAddress(from));
        message.addRecipient(Message.RecipientType.TO,new InternetAddress(para));
        message.setSubject(assunto);
        //JOptionPane.showMessageDialog(null,message.getFrom()[0].toString() + " " + message.getAllRecipients()[0].toString());
        // Criar parte da mensagem
        MimeBodyPart messageBodyPart = new MimeBodyPart();

        // Texto da mensagem
        messageBodyPart.setText(mensagem);

        Multipart multipart = new MimeMultipart();
        multipart.addBodyPart(messageBodyPart);

        BodyPart bodyPart = new MimeBodyPart();

       
            FileDataSource fileDataSource = new FileDataSource(new File("nomedoarquivoaseranexadocomocaminho"));
            bodyPart.setDataHandler(new DataHandler(fileDataSource));
            bodyPart.setFileName("nomedoarquivoaseranexadocomocaminho");
            message.setFileName("nomedoarquivoaseranexadocomocaminho");
        } else {

          multipart.addBodyPart(bodyPart);
        // Enviar parte da mensagem
        message.setContent(multipart);

        //message.setContent(mensagem.toString());

        Transport.send(message);

        
        
    }
  
}
M

Oi fabricioempresa,

o código para envio de e-mails eu já fiz, o que preciso é do que recebe e-mails. Você não tem ele ai não? ou alguma documentação?

fabricioempresa

Bah cara não consegui entender o que você quer?

Valeu

M

Cara, esse código que você postou, serve para enviar e-mails, correto?
o que estou precisando é de um que receba e-mails. Por exemplo, se eu mandar um e-mail para um determinado e-mail, a aplicação estando conectado com o provedor de e-mail deve fazer o download do anexo que vai vim no e-mail.
entende?

fabricioempresa

HUM então não sei xD

Criado 12 de agosto de 2010
Ultima resposta 12 de ago. de 2010
Respostas 7
Participantes 3