[RESOLVIDO][ANDROID] Enviar EMAIL com ANEXO

Pessoal,

Alguém sabe aonde posso ler a respeito de como enviar um email com um anexo através da API javax? Estou conseguindo enviar, receber, tudo mais, só que quero adicionar neste envio um anexo que está contido no SD CARD, seja imagem, som, pdf, arquivo…

Alguém tem idéia?
Abraço

Pessoal,

Consegui fazer com que ele enviasse um arquivo que está no meu sdcard! :wink:
Segue código:

[code]package br.com.i2mobile.Javamail.service;

import java.io.IOException;
import java.io.OutputStream;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Flags;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

import android.os.Environment;
import android.util.Log;
import br.com.i2mobile.Javamail.util.UtilEmail;
import br.com.i2mobile.api.Conta;

public class EnviarEmails {

public boolean enviarEmailImap(String from, String toEmails[],String ccEmails[], String bccEmails[],String assunto, String mensagem,Session session) throws Exception { 
    Message msg = new MimeMessage(session);
    InternetAddress addressFrom = new InternetAddress(from);

    msg.setFrom(addressFrom);   

    InternetAddress[] addressTo = new InternetAddress[toEmails.length];   
    for (int i = 0; i < toEmails.length; i++){   
        addressTo[i] = new InternetAddress(toEmails[i]);   
    }         
    msg.setRecipients(Message.RecipientType.TO, addressTo);          

    if(ccEmails != null && ccEmails.length > 0){
        InternetAddress[] endsCc = new InternetAddress[ccEmails.length];   
        for (int i = 0; i < ccEmails.length; i++){   
            endsCc[i] = new InternetAddress(ccEmails[i]);   

        }
        msg.setRecipients(Message.RecipientType.CC, endsCc);
    }

    if(bccEmails != null && bccEmails.length > 0){
        InternetAddress[] endsBCc = new InternetAddress[bccEmails.length];   
        for (int i = 0; i < bccEmails.length; i++){   
            endsBCc[i] = new InternetAddress(bccEmails[i]);   

        }
        msg.setRecipients(Message.RecipientType.BCC, endsBCc);
    }
    
    MimeBodyPart anexo = new MimeBodyPart();
    FileDataSource source = new FileDataSource(Environment.getExternalStorageDirectory().getAbsolutePath() + "/acessofacil_license.txt");
    anexo.setDataHandler(new DataHandler(source));
    anexo.setFileName("acessofacil_license.txt");
    
    MimeBodyPart messagePart = new MimeBodyPart();
    messagePart.setContent(mensagem, "text/plain");
    
    Multipart multi = new MimeMultipart();
    multi.addBodyPart(messagePart);
    multi.addBodyPart(anexo);
    
    msg.setSubject(assunto);           
    msg.setContent(multi);  

    msg.setFlag(Flags.Flag.SEEN, true);

    Transport transport = session.getTransport("smtps"); 
    transport.connect("smtp.gmail.com", 465, Conta.getSingleConta().getLogin(), Conta.getSingleConta().getSenha());

    transport.sendMessage(msg, msg.getAllRecipients());   
    transport.close(); 

    return true; 

}

}

[/code]

Blz cara, to com a mesma duvida, vou usar sua resolução!

Abraços

Olá amigos, estou tentando enviar um email com uma imagem em anexo, e utilizei o codigo acima, mas ao rodar no momento do transport.sendMessage(msg, msg.getAllRecipients()); o erro abaixo ocorre.

Sabe me dizer o que estou fazendo errado?

Obrigado!

11-01 11:12:53.787: W/System.err(2641): javax.mail.MessagingException: IOException while sending message;
11-01 11:12:53.787: W/System.err(2641):   nested exception is:
11-01 11:12:53.797: W/System.err(2641): 	javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed; 
11-01 11:12:53.797: W/System.err(2641): 	boundary="----=_Part_2_1095789224.1351768344322"
11-01 11:12:53.827: W/System.err(2641): 	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:676)
11-01 11:12:53.827: W/System.err(2641): 	at com.example.exemplo4.MainActivity.enviarEmailImap(MainActivity.java:206)
11-01 11:12:53.883: W/System.err(2641): 	at com.example.exemplo4.MainActivity.onClick(MainActivity.java:98)
11-01 11:12:53.887: W/System.err(2641): 	at android.view.View.performClick(View.java:3480)
11-01 11:12:53.967: W/System.err(2641): 	at android.view.View$PerformClick.run(View.java:13983)
11-01 11:12:53.977: W/System.err(2641): 	at android.os.Handler.handleCallback(Handler.java:605)
11-01 11:12:54.078: W/System.err(2641): 	at android.os.Handler.dispatchMessage(Handler.java:92)
11-01 11:12:54.107: W/System.err(2641): 	at android.os.Looper.loop(Looper.java:137)
11-01 11:12:54.129: W/System.err(2641): 	at android.app.ActivityThread.main(ActivityThread.java:4340)
11-01 11:12:54.157: W/System.err(2641): 	at java.lang.reflect.Method.invokeNative(Native Method)
11-01 11:12:54.207: W/System.err(2641): 	at java.lang.reflect.Method.invoke(Method.java:511)
11-01 11:12:54.217: W/System.err(2641): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-01 11:12:54.247: W/System.err(2641): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-01 11:12:54.277: W/System.err(2641): 	at dalvik.system.NativeStart.main(Native Method)
11-01 11:12:54.314: W/System.err(2641): Caused by: javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed; 
11-01 11:12:54.314: W/System.err(2641): 	boundary="----=_Part_2_1095789224.1351768344322"
11-01 11:12:54.337: W/System.err(2641): 	at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:905)
11-01 11:12:54.366: W/System.err(2641): 	at javax.activation.DataHandler.writeTo(DataHandler.java:330)
11-01 11:12:54.376: W/System.err(2641): 	at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1403)
11-01 11:12:54.387: W/System.err(2641): 	at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1745)
11-01 11:12:54.407: W/System.err(2641): 	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:636)
11-01 11:12:54.407: W/System.err(2641): 	... 13 more

O que seria o parametro do tipo Session. Qual objetivo, como montá-lo e pra que serve?