Como enviar email com anexo de imagem no android

11 respostas
java
V

Olá, utilizei o seguinte exemplo como base: http://crunchify.com/how-send-email-using-java-mailapi-with-large-image-attachment/

Ok, no desktop rodou normalmente, mas quando fui implementar no android, simplesmente não funciona, fiz as alterações necessárias e tudo, porém não funcionou. Creio que o problema seja em anexar a imagem, pois retirei a parte do código que faz o anexo e o email foi enviado (sem o anexo, claro). Como posso resolver isso? Obrigado.

11 Respostas

Diego_Melo

No android você precisa enviar um intent informando que haverá um anexo de determinado tipo.

de uma olhada nesse link

V

Eu já tinha dado uma olhada neste artigo, inclusive implementei ele e es permissões, porém meu programa não deve abrir o aplicativo do Gmail ou outro. O anexo é uma imagem na pasta raiz do usuário que será enviada junto com uma mensagem para outro email. Aguardo respostas.

Diego_Melo

Certo, nesse caso esse processo deve ocorrer no lado do servidor, não no dispositivo.

Eu faria da seguinte maneira:
Enviaria o arquivo da imagem e os dados do email para meu server e então lá
faria todo o processo de envio de email.

V

Ok, quero deixar esse processo simples. Irei passar o código que estou usando para enviar o email, omiti o restante, pois é apenas para configuração.

`MimeMessage msg = new MimeMessage(s);

msg.addHeader(Content-type, text/HTML; charset=UTF-8);

msg.addHeader(format, flowed);

msg.addHeader(Content-Transfer-Encoding, 8bit);
msg.setFrom(new InternetAddress(<a>"[email removido]</a>"));

msg.setReplyTo(InternetAddress.parse(<a>"[email removido]</a>", false));

msg.setSubject(Assunto, UTF-8);

msg.setSentDate(new Date());

msg.setRecipients(<a href="http://Message.RecipientType.TO">Message.RecipientType.TO</a>,

InternetAddress.parse(<a>"[email removido]</a>", false));

BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(“texto…”, “text/plain”);

Multipart multipart = new MimeMultipart();

multipart.addBodyPart(messageBodyPart);

messageBodyPart = new MimeBodyPart();
String filename = Environmsgt.getExternalStorageDirectory() + Imagem.png;

DataSource source = new FileDataSource(filename);

messageBodyPart.setDataHandler(new DataHandler(source));

messageBodyPart.setFileName(filename);

messageBodyPart.setHeader(“Content-ID”, “image_id”);
multipart.addBodyPart(messageBodyPart);

messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(“

IMAGEM:


+ “”, “text/html”);
multipart.addBodyPart(messageBodyPart);
msg.setContent(multipart);

Transport.send(msg);`

V

O que eu acho estranho é que o email é enviado normalmente quando eu apago o código que anexa a imagem.

Diego_Melo

vamos la então: ocorre algum erro quando vc anexa o arquivo?

V

Não

Diego_Melo

mas o email chega a ser enviado?

V

Não, como eu disse, apenas se eu apagar a parte do código que faz o anexo. ???

J

der uma olhada na classe intent man vai lhe ajudar muito.

J

estude ela .

Criado 7 de janeiro de 2016
Ultima resposta 28 de jan. de 2016
Respostas 11
Participantes 3